설찬범의 파라다이스
글쓰기와 닥터후, 엑셀, 통계학, 무료프로그램 배우기를 좋아하는 청년백수의 블로그
엑셀 (60)
엑셀로 통계하기 7 - 조건부 확률과 베이즈 정리
반응형





A라는 사건이 생길 확률을 P(A)라고 합시다.

 



AB가 같이 생길 확률은

P(AB)라고 합시다.

(결합확률)

 


B가 이미 일어났을 때

A가 생길 확률은 얼마일까요?

 

확률은 P(AB)/P(B)입니다.

학교에서 배우셨을지도 모르겠네요.



 

이걸 조건부확률(Conditional Probability)이라 하고

P(AB)라고 합니다.

 

 

베이즈 정리

 



우리 학교 야구부는

가끔 근처 두 학교와 대결합니다.


 

A학교와 붙을 확률은 70%,

B학교와 붙을 확률은 30%입니다.



 

A학교와 붙으면 승률은 20%,

B학교와 붙으면 승률은 60%입니다.

 



어느 날 우리 학교 야구부가 이겼다는 소식을 들었습니다.

어디 학교와 붙었는지는 모릅니다.

A학교와 붙었을 확률은 얼마일까요?

 



이겼는지 졌는지 모른다면,

A학교와 붙었을 확률은 당연히 70%입니다.

그러나 이젠 이겼다는 사실을 알게 되었습니다.

 



영국의 목사 토머스 베이즈가 만든 베이즈 정리Bayes’ Theorem

이처럼 이미 벌어진 사건이 있을 때

새로운 정보로 새로운 확률

(사후확률, Posterior Probability)

을 구하는 공식입니다.


 

, 차근차근 해 봅시다.

 



A학교와 붙는 사건을 A, B학교와 붙는 사건을 B라 부르고

이기는 사건은 W, 지는 사건은 L이라 부릅시다.

 

A와 붙게 되고 이기기까지 할 확률은

P(AW) = P(A) P(WA)입니다.

A와 붙어서 질 확률은

P(AL) = P(A) P(LA)입니다.


 

이런 식으로 네 가지 경우 확률이 나옵니다.

(A와 붙어서 이김/, B와 붙어서 이김/)



 

A, B를 만날 확률은 압니다.

A, B를 만났을 때 이기거나 질 확률도 압니다.

따라서 네 가지 경우 확률을 전부 구할 수 있습니다.



 

우리가 원하는 건 이겼을 때 A와 붙었을 확률,

P(AW)입니다.

 


공식에 따라 P(AW)/P(W)

= P(A) P(WA)/P(W) 으로 바꾸어 쓸 수 있습니다.

 


이길 확률은 A한테 이길 확률 + B한테 이길 확률입니다.

(AB 이외의 학교와는 안 붙는다고 가정한다면)


 

따라서 P(A) P(WA) / P(WA) + P(WB)이고

P(A) P(WA)/ P(A)P(WA) + P(B)P(WB)입니다.



 

이 식에 있는 네 값은 전부 압니다.

따라서 이겼을 때 A를 만났을 확률을 구할 수 있습니다.

 


베이즈 정리에 따라,

B라는 사건이 일어났을 때 A1이라는 사건이 벌어졌을 확률은

다음과 같습니다.



*베이즈 정리의 조건

1) A1, A2...는 서로 절대 겹치지 않습니다.(상호 배반)

2) A1, A2...들을 합친 것 이외의 경우는 없습니다.

(마치 두 학교 이외에는 붙지 않듯이)

 



베이즈 정리는 새로운 정보를 알고 난 후

이미 알아낸 확률을 수정하는 법을 제공합니다.

반응형
  Comments,     Trackbacks
엑셀로 통계하기 6 - 공분산과 상관계수
반응형





1학년 1반의 국어, 수학 성적입니다.

국어성적이 높으면 수학성적도 높을까요?



 

공분산, Covariance는 두 변수의 직선관계를 측정합니다.

 


각 변수의 편차곱 합을 자료크기로 나눈 값이죠.

 



공분산의 절댓값이 클수록

두 변수는 직선관계가 강합니다.

 



문제는 두 변수의 단위가 다를 수 있다는 점이죠.

국어, 수학 성적은 둘 다 단위가 이지만

 



예를 들어 키와 몸무게라면 어떨까요?

cmkg를 곱한 혼종이 공분산의 단위겠죠.




게다가 다른 자료는 mlb(파운드)라면요?

두 자료는 단위가 다르니 비교할 수 없죠.

 



지난 시간

표준 편차를 평균으로 나눠 무단위인 상관계수를 구했습니다.

이번에도 비슷합니다.



 

상관계수Correlation Coefficient, 그중

피어슨의 상관계수는 공분산을 두 변수의 표준편차 곱으로 나눈 값입니다.

 



상관계수가 1이면 두 변수는 완벽한 양의 직선관계입니다.

상관계수가 1이면 완벽한 음의 직선관계입니다.


 


엑셀 공분산 함수는

COVARIANCE.P(모집단)/COVARIANCE.S(표본),

CORREL 함수로 상관계수를 구합니다.

 



그러나 여기서 주의!

상관관계는 인과관계가 아닙니다.

상관관계가 크다고 한쪽이 어느 한쪽을 유발한다는 법은 없습니다.

두 변수는 우연히 상관관계일 수도 있고

둘을 조절하는 공통원인이 상관관계를 만들 수도 있습니다.

반응형
  Comments,     Trackbacks
엑셀로 통계하기 5 - Z값과 체비셰프 정리
반응형





학급 50미터 달리기 기록이

17초로 나왔습니다.

빠른 걸까요?

 



반 전체 평균을 보니 15초입니다.

평균보다 2초 느리군요.

나쁘진 않습니다.

 



그러나 분포도 중요하겠죠.

산포도가 크다면 조금 안심되지만

산포도가 작다면 평균에서 조금만 멀어져도

잘 못 달리게 되니까요.

 



Z(Z-score)

어떤 자료가 평균에서 상대적으로떨어진 거리로

자료에서 평균을 빼고 표준편차로 나눈 값입니다.

(표준점수, 표준값이라고도 합니다)

 

Z값이 2라면 그 자료는 평균보다 2s만큼 크고

-2라면 평균보다 2s만큼 작겠죠.




체비셰프의 정리

 


50미터 달리기로 돌아갑시다.

1학년 1반 평균은 15초였죠.

 

표준편차가 1초라고 하면,

13초와 17초 사이에는 몇 명이 있을까요?

 



러시아 수학자 파프누티 체비셰프는

Z값과 관련한 공식을 발견합니다.

바로 체비셰프의 정리Chebyshev’s Theorem입니다.

(체비셰프의 부등식이라고도 부릅니다)


 


예를 들어 평균과 ±2s 사이에는

최소 (1-1/4)=0.75, 75%의 자료가 존재합니다.

 



1학년 1반을 봅시다.

평균은 15. 표준편차는 1.

13초와 17초 사이는 2s이니까

학급의 최소 75%13초와 17초 사이에 있습니다.

(‘최소 75%’니까 그보다 많을 수도 있음을 명심하세요.)

반응형
  Comments,     Trackbacks
엑셀로 통계하기 4 - 왜도와 첨도
반응형





통계에는 왜도와 첨도가 있습니다.


 

왜도(비대칭도), Skewness는 자료가 쏠린 정도입니다. 

왜도를 구하는 공식도 대푯값, 산포도처럼 여러 가지입니다.

 

엑셀에는 왜도를 구하는 두 가지 함수가 있습니다.

SKEW.PSKEW입니다.



 

SKEW.P 함수와 SKEW 함수는

각각 이렇게 계산됩니다.



 

첨도Kurtosis는 자료 분포가 뾰족한 정도입니다.




 

첨도 역시 여러 공식이 있지만,

엑셀 KURT 함수의 계산식은 이렇습니다.

 

반응형
  Comments,     Trackbacks
엑셀로 통계하기 3 - 산포도
반응형






영희와 현숙의 과목별 점수입니다.

둘의 평균 점수는 같지만

현숙이 영희보다 점수가 더 흩어졌습니다.



 

이렇게 자료가 흩어진 정도를

산포도Dispersion라 합니다.

 



대푯값처럼 산포도를 측정하는 수치도 여러 가지 있습니다.

 



제일 단순한 것은 범위Range입니다.

범위는 최댓값과 최솟값을 뺀 값입니다.

 


당연히 두 값 사이에 어느 자료가 어떻게 있는지

알 수 없어서 산포도를 충분히 알긴 힘듭니다.

 



분산Variance표준편차Standard deviation

산포도 수치 중 제일 익숙할 겁니다.



 

편차제곱합을 자료 크기로 나눈 것이 분산인데

모집단 분산은 N으로, 포본 분산은 n-1로 나눕니다.



 

분산의 제곱근이 표준편차입니다.

분산은 제곱이라 단위도 제곱이 되는데,

표준편차는 자료와 단위가 같습니다.

 



그런데 여기가 시끄럽네요.

, 뭐가 문제죠?


 

저기 민호와 제가 자료를 분석했는데요.”

 



저긴 10단위고 저는 100단위라서

제 분산, 표준편차가 더 커요.”

 

제 자료는 원래 큼직해서

뒤에 0이 하나 더 붙었을 뿐인데

산포도가 다르면 불공평하죠!”

 


일리가 있습니다.

그래서 변동계수Coefficient of Variation

표준편차를 평균으로 나눕니다.

무단위라서 단위가 다른 자료와 비교도 가능합니다.


 

산포도를 나타내는 다른 수치는

사분위범위InterQuartile Range, IQR이 있습니다.

3사분위값에서 1사분위값을 뺀 수치로

중앙 50% 값의 범위입니다.






엑셀에서 산포도 구하기




엑셀에서 분산을 구하는 함수는

VAR.P(모집단)VAR.S(표본)입니다.


표준편차를 구하는 함수는

STDEV.P(모집단)STDEV.S(표본)입니다.




사분위범위를 구하는 함수는 없지만

사분위수를 구하는 함수를 이용할 수 있습니다.

사분위수를 구하는 함수는

QUARTILE.EXCQUARTILE.INC가 있습니다.



반응형
  Comments,     Trackbacks
엑셀로 통계하기 2 - 상자 수염 그림
반응형






이런 그래프. 어디선가 보셨을 겁니다.

 




이건 상자 수염 그림Box-and-whisker Plot,

일명 상자그림Box Plot입니다.

보시다시피 상자에 수염처럼 선이 위아래로 나 있군요.

 



상자 수염 그림은 데이터 분포를 나타내는 그래프입니다.

값이 어디에 쏠려 있는지, 흩어졌는지 알려주죠.

 



평균만 알면 되는 거 아냐?’

이렇게 생각하신 분 많으시겠죠.



 

이 데이터는 10명의 수치를 나타냅니다.

그런데 평균이 좀 이상하군요.

 




바로 수치가 아주 큰 김길동 씨 덕분입니다.

김길동 씨 때문에 10명이 고루 저만큼 가진 것처럼 보이네요.



 

이처럼 평균은 극단적인 값이 있으면

갈대처럼 요동쳐서 데이터를 잘 대표하지 못합니다.

 



상자 수염 그림은 어떻게 그릴까요?

상자 수염 그림엔 평균이 들어가지 않습니다.

차근차근 알아봅시다.

 



일단 최솟값과 최댓값이 필요합니다.

이건 쉽군요.

 



그리고 1, 2, 3사분위가 필요합니다.

이게 뭐냐고요?

 


간단히 말해 1사분위는 100명 중 75등 수치,

2사분위는 100명 중 50등 수치, 3사분위는 100명 중 25등 수치입니다.

 



이제 다섯 가지 수치를 알았으니

상자 수염 그림을 그려봅시다.

 


상자 수염 그림 속 직사각형이 있습니다.

직사각형 아랫변은 1사분위, 윗변은 3사분위입니다.

 



직사각형 안에 2사분위를 그읍시다.



 

사분위수 범위, IQR을 구합니다.

IQR은 3사분위 1사분위입니다.

 



3사분위보다 1.5IQR만큼 큰 수치를 구합시다.

그 수치보다 낮은 값 중 제일 큰 값에 선을 긋습니다.

 



1사분위보다 1.5IQR만큼 작은 수치를 구합시다.

그 수치보다 큰 값 중 제일 낮은 값에 선을 긋습니다.

 

두 선은 직사각형과 연결합니다.

 



제일 높은 선과 제일 낮은 선에도 끼지 못한 데이터들은

따로 점을 찍습니다.

‘1.5IQR이나 여유를 주었는데 거기에도 끼지 못하다니!’

이상치로 생각하는 것이죠.

(원하면 평균을 표시해도 좋습니다.)

 (아니면 그냥 최솟값과 최댓값까지 수염

그릴 수도 있습니다.)



 

엑셀로 상자 수염 그림 그리기

 

엑셀로 상자 수염을 그릴 수 있습니다.

(2016부터)



 

[삽입] - [차트]에서 히스토그램이 있는 곳을 누르고

[상자 수염 그림]을 선택합니다.

 



*"사분위수 계산에서 중앙값 포함/제외는 뭐죠?"

중앙값 포함을 선택하면 데이터 수가 홀수일 때 중앙값을 계산에 넣습니다. 중앙값 제외를 선택하면 제외고요.

 

*"사분위수를 엑셀로 계산할 수 있나요?"

엑셀엔 사분위수를 계산하는 함수가 있습니다.

QUARTILE 함수가 있었는데 2016부터는

QUARTILE.EXC 함수와 QUARTILE.INC 함수가 생겼습니다.

두 함수 모두 뒤에 데이터 배열과 구할 사분위수가 들어갑니다.


) QUARTILE.EXC(A1:A100, 1)

A1:A1001사분위수를 구합니다.


QUARTILE.EXCQUARTILE.INC는 거의 같은 함수입니다. 다만 QUALTILE.INC04를 넣을 수 있습니다. 0을 넣으면 최솟값, 4를 넣으면 최댓값을 구합니다.

 

 

*"상자 수염 그림은 완벽한가요?"


당연히 아닙니다. 상자 수염 그림이라고 모든 데이터 분포를 요약해주진 않습니다.

예를 들어 하나는 평범한 분포고 다른 하나는 양쪽으로 흩어진 분포여도 상자 수염 그림은 같게 나옵니다.

반응형
  Comments,     Trackbacks
엑셀로 통계하기 1 - 도수분포표, 히스토그램
반응형






한 명의 죽음은 비극이지만, 백만 명의 죽음은 통계다.’

스탈린이 남긴 말이라고 합니다.

 




숫자가 커질수록 우리는

현실을 수치로 정리합니다.

 



비겁하다고 생각할 수도 있지만,

이렇게라도 이해해야 하지 않겠습니까.

 



수많은 자료를 정리하는 방법 하나는

범위를 정하고 범위에 속하는 자료 수를 구하는 것입니다.

 



, 흔히 이걸 도수분포표Frequency Table라고 부르죠.

도수분포표의 범위는 계급Class라고 하고요.

 




엑셀에서 도수분포표, 히스토그램 만들기

 


도수분포표를 쓰려면 계급을 정하고,

그 계급에 속하는 데이터 수를 알아야 합니다.

 


FREQUENCY 함수를 이용할 수 있지만

저는 [데이터] - [데이터 분석]을 추천합니다.

 



[데이터 분석]이 없다고요?

[파일] - [옵션] - [추가 기능]에 들어갑니다.



 

아래 [이동]을 누르고 [분석 도구]를 선택한 다음

확인을 누릅니다.

 



[데이터 분석]을 누르고 여러 메뉴 중

[히스토그램]을 고릅니다.

기능 이름이 [히스토그램]이지

도수분포표도 만들 수 있습니다.

 



그럼 도수분포표부터 만들어 봅시다.

[입력 범위]에는 데이터 범위를 넣습니다.

 



[계급 구간]을 비우면 엑셀이 자동으로 계산합니다.

[계급 구간]에 자기가 만든 목록을 넣을 수 있습니다.

 

[계급 구간]미만이 아니라 이하로 계산합니다.

10, 20, 30이 있으면

‘10 이하’, ‘10 초과 20 이하’, ‘30 초과입니다.




 

맨 밑 [차트 출력]을 누르면

히스토그램을 만듭니다.

 



엑셀 히스토그램 차트도 있으니

더 멋지고 쉬운 것으로 고르시기 바랍니다.

 




(보너스)

히스토그램 계급 너비 고르기



여기 자료가 있습니다.

히스토그램을 그려 볼까요?



 


이런, 계급 너비가 너무 좁아서 들쑥날쑥하네요.

 



이건 계급 너비가 너무 넓어 값을 분류한 의미가 없습니다.

 



그럼 히스토그램 계급 너비는 어떻게 정할까요?

 



학자들은 자신만의 계급 개수 공식을 만들어왔습니다.

(계급 개수를 알면 계급 너비도 정해지므로 둘은 결국 같습니다.)

 


스털지스 공식Sturges' formula에 따르면

계급 개수는

 입니다. (n30 미만일 때는 부적합)

 

라이스 공식Rice rule에 따르면

계급 개수는

입니다.

 



물론 계급 개수, 너비에 정답은 없습니다.

데이터 분포를 잘 나타내는 값이라면 뭐든 좋겠지요.

반응형
  Comments,     Trackbacks
엑셀 할머니 27 - 엑셀 스파크라인 만들기
반응형





지난 이야기 : 스파크라인이란?




할머니, 스파크라인 만드는 법 좀

알려주세요!





[삽입] - 스파크라인 탭에서

원하는 스파크라인을 선택하렴

1) 꺽은선형

2) 열

3) 승패(양수와 음수)




창이 나타나면

데이터 범위와 위치 범위를 선택하고

확인을 누르렴




그럼 바로 스파크라인이 나타난단다.




음. 두께도 너무 가늘고

색깔도 바꾸고 싶은데...




그럼 스파크라인을 클릭하고

위에 있는 디자인 탭을 누르렴




[데이터 편집]에서는 데이터와 위치를 다시 정하거나, 빈 셀 처리법(생략하거나 0으로 간주)을 고를 수 있다.


[종류]에서는 스파크라인 종류를 바꾼다.


[표시]는 최고점이나 최저점에 점을 찍거나 색을 달리 하도록 선택할 수 있단다.




[스타일]에서는 색과 두께 등을 고를 수 있단다.




[축]에서는 축 옵션을 바꾸고..


스파크라인을 없애고 싶다면 [지우기] - [선택한 스파크라인 지우기]를 누르렴.





엑셀 스파크라인 예제.xlsx


여기 샘플 파일이 있으니

한번 보고 원하는 색과 모양을 비교해보렴.

반응형
  Comments,     Trackbacks
엑셀 할머니 외전 5 - 엑셀 데이터 유효성 검사
반응형





안녕하세요. 예전 엑셀 할머니 12화에서는 엑셀 데이터 유효성 검사로 목록 버튼을 만드는 법을 알아보았죠.






이번 시간에는 유효성 검사를 이용해 여러 쓸모있는 기능을 직접 연습해 봅시다.







1. 범위 제한하기



  미리 셀에 들어갈 숫자 범위를 지정해 두고, 범위를 벗어난 값을 쓰면 경고 메시지가 나오게 하고 싶다면 어떡해야 할까요?






1) 일단 원하는 범위를 선택하세요.




2) 데이터 유효성 검사를 켜세요.

제한 대상을 정수로 두고 최소값과 최대값을 입력하세요.





3) 설명 메시지 탭에서는 셀에 나타날 메모를, 오류 메시지에서는 범위를 초과한 값을 쓰면 나올 메시지를 입력할 수 있습니다.




4) 이제 여기에 범위에 벗어난 값을 쓰면 경고 메시지가 뜨게 되죠.





2. 중복 입력 막기



  목록을 채우다 똑같은 내용을 두 번 쓰는 일을 막고 싶으시다고요? 이번에도 데이터 유효성 검사를 이용합니다.





1) 원하는 범위를 선택하세요.





2) 데이터 유효성에 들어가 제한 대상을 '사용자 지정'으로 정하세요.





3) 그 다음 수식창에 이렇게 입력하세요.


=countif(범위 처음:범위 끝, 범위 처음)<2


*이때 앞 범위를 쓰는 두 셀 주소는 F4를 누르거나 $를 추가해서 절대참조로 바꿔야 합니다.


*방금 쓴 수식의 뜻은 '범위 내에서 앞으로 쓸 내용은 등장횟수가 2 미만이어야 한다'는 뜻입니다.





4) 실제로 범위에 같은 값을 입력하면 경고 메시지가 뜹니다.









3. 글자 수 제한하기



  주민등록번호, 제품 번호, 학번 등 긴 숫자들로 목록을 구성하다 보면 꼭 한 글자를 더 넣거나 덜 넣게 되죠. 이렇게 글자 수가 다를 때 엑셀에서 알려 준다면 얼마나 좋을까요?



1) 범위를 선택합니다.





2) 데이터 유효성 검사에 들어가 제한 대상을 '사용자 지정'으로 정합니다.





3) 수식을 입력합니다. 이때 범위에 최소한 하나라도 내용이 있어야 합니다.


=len(범위 시작 셀)=원하는 글자 수





4) 이제 글자수를 다르게 쓰면 경고창이 뜹니다.




4. 잘못된 데이터 찾기




  이미 목록을 완성했는데, 잘못 쓴 셀이 어디 있는지 알고 싶어도 유효성 검사를 사용할 수 있습니다.





1) 원하는 줄을 범위 선택합니다(위 사진은 기준목록에 없는 내용을 찾기 위함)






2) 데이터 유효성 검사에 들어가 원하는 기준(글자 수, 범위, 목록...)을 입력합니다.

(위 사진에서는 셀에 들어갈 목록을 입력했습니다)





3) 데이터 도구 - 데이터 유효성 검사 - 잘못된 데이터를 누릅니다.





4) 아까 설정한 기준에 맞지 않는 셀에 붉은 동그라미가 그려집니다. 내용을 기준에 맞게 고치거나 데이터 유효성 검사 - 유효성 표시 지우기를 누르면 원은 사라집니다.

반응형
  Comments,     Trackbacks
엑셀 할머니 25 - 엑셀 목표값 찾기
반응형





엥? 뭐야, 여기가 비었잖아!






민호야, 엑셀은 프로그램이다.

프로그램에 소리쳐 봤자란다.







여기 보세요.

원금과 지속 년수, 최종 금액까지 다 있는데

이자율만 없어서 계산을 못 해요.






이걸 풀려면 지수가 미지수인 방정식을 풀어야 하는데...







그러지 말고 목표값 찾기를 이용해 보면 어떻니?






목표값 찾기요?






목표값 찾기란 엑셀에서 제공하는

일종의 방정식 답 찾는 프로그램이란다.








식과 결과물이 있으면

'이 식으로 이 결과물이 나오려면 무슨 값이 필요할까?'를 구하는 거지.








지금 엑셀 표를 보니

금액을 구하는 식과 최종 금액은 나와 있구나.





데이터 리본에 들어가

가상 분석을 클릭해

'목표값 찾기'를 클릭하렴.








세 가지 값이 나왔어요.

수식 셀, 찾는 값, 값을 바꿀 셀이요.






자, 차근차근 해 보자.






수식 셀은 식을 적은 셀이야.








찾는 값은 수식 셀이 되어야 할 값이야.

우린 최종금액이 500만원이길 원한다고 하자.







값을 바꿀 셀은 우리가 알고 싶은 값이야.

바로 이자율이 있는 셀이지.










이 셋을 모두 입력하고 확인을 누르면

엑셀은 온갖 값을 넣으면서 최종금액이 500만이 되게 만든단다.









봐라. 금방 찾지 않았니.

이자율은 약 8.38%구나.


반응형
  Comments,     Trackbacks