확률분포와 유의성검증 R

통계학에는 수많은 잘 알려진 확률분포들이 있는데, 기초통계에서 주로 사용되는 분포들은 이항분포, 카이제곱(카이스퀘어)분포, 정규분포, t분포, F분포가 있다. 이 외에도 음이항분포, 푸아송분포와 같이 필자도 잘 모르는 분포들이 많이 있는데, 기초통계에서는 잘 다루지 않는다. 이번 포스팅에서는 R에서 이러한 분포들을 다루는 방법에 대해 다루겠다. 확률의 기초이론에 대한 내용들은 장황해질 가능성이 높고, 수식의 입력이 힘드므로 깊이있게 다루지는 않을 것이다.

R에서는 제공하는 확률분포 관련 함수들 중 기본적인 네 가지를 소개하려 한다. 그것들은 d, p, q, r 의 네 가지이다. 이들을 실제로 사용할 때에는 이들 알파벳 뒤에 분포의 이름을 붙여서 사용한다. 예를 들어 정규분포인 경우에는 dnrom, pnorm, qnorm, rnorm의 네 가지가 있을 것이다. 이들이 의미하는 것은 다음과 같다.

d : density의 약자이며, 확률밀도를 나타낸다. 이 값은 확률값이 아님에 유의하자.
p : probability의 약자이며, 누적확률을 나타낸다.
q : quantile의 약자이며, p의 역함수이다. 자세한 것은 뒤에서 설명할 것이다.
r : random의 약자이며, 특정 분포에서 난수를 생성하는 기능을 한다.

R에서 정규분포는 norm, 이항분포는 binom, 카이제곱분포는 chisq, t분포와 f분포는 이름 그대로 쓰면 된다. 참고로 f는 소문자로 입력해야 한다. 이들 분포들과 앞의 알파벳들을 조합하여 명령어를 만들 수 있다. 예를 들어 F분포의 확률밀도를 알고 싶다면 df()함수를, 정규분포의 누적확률을 알고 싶다면 pnorm()함수를 사용하면 된다. 괄호 안에는 (숫자, 파라미터) 의 형태로 입력해주면 된다. 여기서 파라미터란 특정 확률분포의 형태를 결정해 주는 숫자를 말한다. 이를테면 정규분포는 평균과 분산에 의해 완전히 결정되며, t분포는 자유도에 의해 완전히 결정된다. 몇 가지 예를 통해 보도록 하자.

첫 번째 명령은 N(5,4)인 분포에서 5의 확률밀도를 구하는 명령어이다. (2는 표준편차이므로 제곱해서 4로 썼다. 이글루스에서 위첨자를 입력하는 방법을 잘 몰라서...)만약 파라미터(평균, 표준편차)를 지정해주지 않으면 자동으로 표준정규분포를 이용해서 구한다. 확률밀도값은 0.1994711인데, 이것이 직접적으로 확률을 의미하는 것이 아님을 유념하자. 참고로 이 숫자는 정규분포의 우도함수(likelihood)에 5를 대입하여 얻은 숫자이다. 참고로 이 값을 반올림하고 싶으면 round()함수를 사용하면 된다. round()함수의 사용법은 다음과 같다.

round(숫자, digits=(나타낼 소숫점 자리수))

두 번째 명령어는 t분포에서 누적확률을 구하는 것인데, 0.9714045라는 출력값은, 구체적으로는 자유도 2인 t분포에서 (-∞,4) 구간을 적분한 값이다. 확률밀도함수는 정의상 특정 구간을 적분한 값이 곧 확률이 된다(예를 들어 확률밀도함수에서는 -1에서 1까지 적분한 값이 바로 그 구간, 즉 (-1,1)의 확률이 된다). 따라서 위 명령어는 자유도가 2인 t분포에서 하나의 표본을 뽑았을 때, 4 미만(사실 이하라고 해도 무방)의 값이 관측될 확률을 구하라는 것이다. 따라서 자유도가 2인 t분포에서 4 미만(이하)의 값이 관측될 확률은 약 97%가량 된다.

세 번째 명령어는 분자의 자유도가 2, 분모의 자유도가 100인 f분포에서, -∞부터 얼마까지 적분해야 0.6이 되는지를 구하라는 함수이다. p로 시작하는 함수가 -∞부터 어떤 값까지 적분했을 때의 확률값을 구하라는 것임을 생각해보면 이것은 q의 역함수라 할 수 있다. 이것을 이용하여 특정 유의수준에서의 임계치를 결정할 수 있다. 임계치란 영가설 기각여부를 결정하는 기준이 되는 값이다. 이를 위해 유의수준과 단측/양측검정의 차이에 대해 먼저 잠시 review를 하기로 하자.

우선 유의수준과 유의확률의 개념을 구분하지 못하는 학생들이 간혹 발견되는데, 이 둘은 서로 다른 개념이다. 유의수준은 1종 오류의 확률(영가설이 참인데 거짓이라고 기각할 확률)을 통제하기 위해 설정해놓은 값인데, 원칙적으로 이 값은 실험 전에 미리 설정되어야 함에 유의하자. 많이 쓰이는 유의수준인 .05나 .01은 각각 1종오류의 확률을 5%, 1%로 통제하겠다는 의미이다. 그리고 유의수준은 변하는 값이 아니라 고정된 값이다. 한편 유의확률(p-value)은 실험 후에 계산되는 값으로서,표본으로부터 계산된 통계량(t값, F값 등)보다 극단적인 값이 관측될 확률이 얼마인지를 나타내는 값이다. 특히 많은 학생들이 유의확률의 개념을 정확히 이해하지 못하고 있다. 많은 학생들이 유의확률을 "영가설이 참일 때, 획득된 통계치가 관측될 확률"을 나타낸다고 생각하고 있는데 이것은 완전히 잘못된 해석이다. 엄밀한 의미에서 영가설이 참일 때 획득된 통계치와 정확히 같은 값이 관측될 확률은 0이다(확률밀도함수의 개념으로부터). 가설검증에서는 유의확률이 유의수준보다 낮으면 영가설을 기각하도록 되어 있다. p<.05라는 말의 의미는, 유의확률이 유의수준인 .05보다 작기 때문에 영가설을 기각한다는 말이다. 다르게는 관측된 통계치보다 더 극단적인 값이 획득될 확률이 5%보다 작기 때문에 영가설을 기각한다는 말이다.

이제 유의수준에 대응되는 임계치(critical value)를 찾는 연습을 해 보자. 관측된 통계치가 임계치보다 더 극단적인 값이면, 즉 절대값이 더 크면 영가설을 기각하게 된다. (그런데 유의수준 .05에 대응되는 임계치는 95% 신뢰구간의 최대, 최소값과 일치한다. 사실 영가설이 기각되었다는 것은 통계치가 신뢰구간 안에 없다는 말과 같은 의미이다. 그 이유에 대해서는 통계 교과서를 참조하도록 하자.) 주의할 점은, 단방검증인 경우에는 임계치를 실제로 구할 때 유의수준을 반으로 나눌 필요가 없지만, 양방검증인 경우에는 이것을 반으로 나누어 줘야 한다는 것이다. 즉 유의수준 .05에서 단방검증인 경우에는 하위 5% 또는 상위 5%에 해당되는 값을 찾으면 되지만, 양방검증인 경우에는 하위 2.5%와 상위 2.5%에 해당되는 값을 찾아야 한다는 말이다.

예를 들어 자유도가 100인 t분포에서 유의수준 .05에 대응되는 임계치를 계산해 보자. 단방검증이고, 대안가설이 '더 크다' 인 경우에는 다음과 같이 계산할 수 있다.

약 1.66이 자유도 100인 t분포에서 유의수준 .05에 해당되는 임계치임을 알 수 있다. 따라서 t값이 1.66보다 크다면 영가설을 기각할 수 있다. 물론 대안가설이 '더 작다' 인 경우에는 다음과 같이 하면 된다.

위의 경우와 비교했을 때, 임계치의 절대값은 같고 부호만 다르다는 것을 알 수 있다. t분포는 대칭이기 때문에 당연한 소리다. 이제 양방검증인 경우의 임계치를 구해보도록 하자.

양방검증이기 때문에 유의수준을 반으로 나누었다. t값의 절대값이 1.983972보다 크면 영가설을 기각할 수 있다. 사실 t분포는 대칭이므로 두 번째 명령어는 굳이 시행할 필요 없이, 0.025인 경우의 부호만 바꿔줘도 상관없다. 이러한 방식은 대칭인 다른 확률분포들(ex. 정규분포)에 대해서도 사용할 수 있다.

F분포에 대해서도 같은 작업을 반복해 보자. 자유도가 (2,50)인 경우를 예로 들어 보겠다.

단방검증인 경우에는 임계치가 0.05134595 또는 3.18261이다. 양방검증인 경우에는 0.02533063과 3.974931이다. F분포는 대칭이 아니기 때문에 이렇게 나온다.

물론 구체적인 통계치를 획득한 경우에는 p로 시작하는 명령어를 써도 가설검증을 할 수 있다. 예를 들어 자유도가 100인 t분포에서 t값이 2였다고 해 보자. 다음의 화면을 보자.

단방검증, 대안가설이 '더 크다'인 경우에는 1에서 이 값을 뺀 것이 바로 p-value가 된다. 양방검증인 경우에는 이 값을 두 배를 해준것이 p값이 된다. 이것을 유의수준과 비교하여 가설검증을 할 수도 있다. 보통 구체적인 연구 맥락에서는 양방검증을 사용하는 경우가 많은데, 이것은 보통 연구의 목적이 '집단간 차이가 존재한다' 의 형식인 경우가 많기 때문이다. 그런데 똑같은 가설을 단방검증으로 검증할 때보다 양방검증으로 검증할 때 영가설을 기각하기 더 어렵게 된다(기각역이 영가설의 값으로부터 더 멀어지기 떄문이다). 그렇다고 단방검증이 양방검증보다 더 적합하다는 것은 아니고, 둘 중 어느것을 택할지는 원칙적으로는 연구가설에 따라 정해야 한다.

잡설이 길었는데, 본론으로 돌아가서 네 번째 명령어를 보자. 이 명령어는 자유도가 10인 카이제곱분포에서 다섯 개의 랜덤한 숫자를 추출하는 명령어이다. 참고로 카이제곱분포는 표준정규분포를 따르는 확률변수를 제곱한 것을 자유도의 수만큼 더한 통계치의 분포를 말한다. 자유도가 10이므로 이 분포는 10개의 서로 독립적며 표준정규분포를 따르는 확률변수를 추출하여, 각각을 제곱한 값을 모두 더한 값의 분포이다. (참고로 통계 책을 보다보면 iid라는 용어를 가끔 볼 수 있는데, 이것은 independent and identically distributed의 약자로서, 일련의 확률변수들이 독립적으로 추출되었으나 따르는 확률분포는 동일한 경우를 의미한다.) 카이제곱분포의 평균은 자유도와 같고, 분산은 자유도의 두 배이다. 자유도가 10이므로 기대값은 10, 분산은 20, 표준편차는 2곱하기 루트 5이니 약 5 정도 된다. 이 명령어를 이용해서 통계적 시뮬레이션을 하곤 한다. 이후 포스팅(t검정)에서는 for()문과 rnorm() 함수를 이용하여, 유의수준이 어떤 의미를 갖는지에 대해 시뮬레이션을 한 번 해보도록 하겠다.


트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://bayes.egloos.com/tb/2790469 [도움말]

덧글

  • 5454 2011/12/09 20:44 # 삭제 답글

    저 질문이있는데요 ㅜㅜ

    너무기초적인건데 제가 통계쪽 학부생이아닌데 통계를 쓰게되어 그렇습니다.

    제가 ANOVA와 Independent T - test를 하려고하는데 이는 정규분포를 하는집단에만 하는 통계로 알고 있습니다.

    그래서 방법이 정규분포검증을하던지, 비모수 통계법을 쓰라고 하시는데

    정규분포 검증은 어떤방법으로 하여야하며, ANOVA와 Independent T - test 에 해당하는 비모수 통계는
    어떤것이 있을까요?ㅠ
댓글 입력 영역