본문 바로가기
컴퓨터/수학이랑

상관계수2

by adnoctum 2011. 8. 30.


   상관계수는 두 변수가 관계(association)을 갖고 있는지를 알 수 있는 하나의 수치이다. 일반적으로 피어슨 상관 계수(Pearson's correlation coefficient 또는 product-moment correlation coefficient)라고 하는 상관계수를 많이 사용하는데, non-parameteric correlation coefficient 인 Spearman Rank-order 상관 계수나 Kendall's Tau 역시 두 변수의 관계를 나타내는 수로 사용될 수 있다. 이 글에선 일단 Pearson's correlation coefficient (PCC) 에 관해 살펴 보고, 구해진 PCC에 대한 통계적 유의성(p-value)를 계산하는 원리를 살펴 보자. (실제로 구현하는 부분은 다음에 한다. 여기선 엑셀로 간단히 확인만 해본다)

(이 글은 NR 3판 745~747 쪽의 내용을 번역한 수준임을 미리 밝힌다.)

 일단 PCC는 다음과 같이 정의된다.


이 때, x 와 y 의 분포가 tail이 충분히 빠르게 작아 지는 모분포에서 나왔다는 가정이 성립하면, x 와  y 가 아무런 연관이 없다고 할 때는 N 이 충분히 크다면 (대략 500 이상)  r 의 분포는 다음과 같다.


따라서 p-value의 의미에 따라, 우리가 구한  r 이 0 이 아닐 것이란 p-value는 다음과 같다.



하지만 이것은 x 와 y 모두 binomial 처럼 tail 이 빠르게 감소하는 분포하는 경우에 적당한 값이다. 어쨌거나 이렇게 얻어진 값보다 조금 더 정교하게 p-value 를 얻기 위해선 다음과 같이 한다. 우선 N 이 그리 크지 않을 때는, r 로부터 만든 t 라는 변수



가 상관계수가 0 인 경우(이것이 귀무가설, null hypothesis)에는 N - 2 의 자유도(degree of freedom, dof) 를 갖는 Student's t-분포를 따르게 된다. 따라서 이 경우 p-value는 다음과 같이 구한다.



이처럼 구해진 p-value 는 N 이 커지면서 위에서 구한 식(3) 값으로 수렴을 하는데, 어쨌거나 이 값은 x 와 y 가 binomial 이라는 가정이 없어도 어느 정도는 맞게 된다.


만약 두 개의 상관계수를 측정했을 때, 이 두 값이 통계적으로 유의미하게 다른 상관계수인지 아닌지를 확인하기 위한 p-value는 다음과 같이 구한다. 우선 r 을 다음과 같이 변환시킨다(Fisher's z-transformation).


그러면 z 는 평균과 분산이 각각 아래와 같은 정규 분포를 '대략' 따른다.


따라서 두 상관계수 r1 과 r2 가 통계적으로 다르다는 값의 p-value는 다음과 같이 계산한다.


만약 이론적인 상관계수  r_true 을 알고 있고, 실험적으로 구한 값이 r 일 때, 이 값이 이론적인 값과 다른 것에 대한 p-value는 다음과 같이 계산된다.




이 때, z 는 실제로 구한 r 을 Fisher's z-transformation 한 값이고 \bar{z} 는 실제 (이론적인) r 로 식 (6) 을 이용해 구한 z 값이다. 여기서, 만약 실제로는 상관이 없는데 우연히 r 이 0 이 아니게 sampling 된 것이 아니라는 것에 대한 p-value 는 위에서 말한 식 (3) 대신 식 (11)의  \bar{z} 를 0 으로 해서 p-value 를 구하면 다음과 같이 된다.





이제, 정리를 해보자.
상관계수 공식은 다음과 같다.



주어진 상관계수가 0 이 아닌 것에 대한 통계적 유의성(p-value)는 다음과 같다.


(12)는 (3)보다 정교한 p-value 이다. 이 값이 작으면 p-value는 0 이 아니다.


이론적인 상관계수와 구해진 상관계수가 다르다는 것에 대한 p-value는 다음과 같다.


이 p-value 가 작으면 이론적인 상관계수와 실험적으로 구한 상관계수가 통계적으로 유의미하게 다른 것이다.



주어진 두 상관계수가 다르다는 것에 대한 p-value는 다음과 같다.


이 p-value 가 작으면 두 상관계수가 통계적으로 유의미하게 다른 것이다.


이 때, z 는 다음과 같은 변환을 거친다.




이 때, erf(x) 는 error function 으로, exp(-t^2) 을 0 부터 x 까지 적분한 값을 2/sqrt(pi) 를 곱한 값이고, erfc 는 complementary error function 으로 1.0 - erf(x) 로 정의된다. 곁가지로, 2/sqrt(pi) * exp(-t^2)를 0부터 무한대까지 적분한 값이 1이 된다. 이게 바로 표준정규분포인 가우시안 함수를 모든 구간에서 적분한 값이 통계에서 사용되는 것을 보여 주는 한 예인데, 모든 사건에 대한 확률이 1 이 되는 경우가 바로 1/sqrt(pi)를 곱해준 것. 즉, exp(-t^2) 를 모든 구간에서 적분하면 sqrt(pi) 가 되는 것이다. erf 나 erfc 는 엑셀과 C/C++ 에 모두 같은 이름의 함수로 제공된다.