Post

피어슨 상관 계수 (Pearson Correlation Coefficient)

상관계수(correlation coefficient)란 두 변수가 어떤 상관 관계를 가지는가?를 의미하는 수치다.

+1은 완벽한 양의 선형 상관 관계, 0은 선형 상관 관계 없음, -1은 완벽한 음의 선형 상관 관계를 의미한다.

https://otexts.com/fppkr/graphics-scatterplots.html

X와 Y 사이의 피어슨 상관 계수를 구하는 식은 다음과 같다

\[r_{XY} = \frac{ \sum^n_i (X_i - \bar{X})(Y_i - \bar{Y}) }{ \sqrt{\sum^n_i (X_i - \bar{X})^2} \sqrt{\sum^n_i (Y_i - \bar{Y})^2} } \]

여기서 X, Y는 vector인데 식을 조금 들여다보면 결국 다음과 같은 과정이다.

  1. 각 vector의 표본평균\(\bar{A}\)를 구해서 A의 0이 아닌 각 원소에 빼주어 normalization 하고,
  2. normalized 된 vector들 사이의 cosine similarity를 계산 한다.

피어슨 상관 계수는 다양한 상황에서 쓰이지만,

normalized된 cosine similarity를 계산하는 것이기 때문에 피어슨 상관 계수를 similarity로도 해석할 수 있다.

피어슨 상관 계수가 similarity로 쓰이는 예로는 추천 시스템이 있다.

추천 시스템에서 collaborative filtering 방식을 사용할 때는 User-user 간, 또는 Item-item 간 similarity를 계산해야 한다. 이 때 피어슨 상관 계수를 similarity로 사용하게 된다.

유저 A와 비슷하게 영화를 평가한 유저를 찾기 위해서 user A와 나머지 유저들의 similarity를 계산하려고 한다.

        
 movie 1m2m3m4m5m6m7
user A4  51  
user B554    
       

(평가하지 않은 항목은 0으로 집계되기 때문에 cosine similarity를 사용하게 되면 미평가 항목이 곧 안좋게 평가한 항목과 동일하게 간주된다는 문제가 있어 피어슨 상관 계수를 사용한다.)

피어슨 상관 계수를 계산해보면

\(\bar{A} = \frac{4+5+1}{3} = \frac{10}{3} \) \(\bar{B} = \frac{14}{3} \)

\(A - \bar{A} = [\frac{2}{3}, 0, 0, \frac{5}{3}, -\frac{7}{3}, 0, 0]\) \(B - \bar{B} = [\frac{1}{3}, \frac{1}{3}, -\frac{2}{3}, 0, 0, 0, 0]\)

이제 이 둘의 cosine similarity를 계산하면 피어슨 상관 계수가 되고, 이는 곧 sim(A, B)가 된다.

\(sim(A, B) = 0.092\)

상관계수를 해석할 때 주의할 점

상관계수(correlation coefficient)는 선형관계의 강도만 측정하기에, 종종 오해로 이어질 수 있습니다.
아래 그래프는 모두 0.82의 상관계수를 갖습니다만, 나타나는 관계는 아주 다릅니다. 이를 통해 상관계수값에만 의존하지 말고 데이터를 그려서 살펴보는 것이 얼마나 중요한지 알 수 있습니다.

https://otexts.com/fppkr/graphics-scatterplots.html

This post is licensed under CC BY 4.0 by the author.