피어슨 상관계수란?
피어슨 상관계수(Pearson Correlation Coefficient, PCC)는 두 변수 간의 선형 관계의 강도와 방향을 측정하는 통계 지표다. 가장 널리 사용되는 상관계수로, 공분산을 각 변수의 표준편차로 나눈 값이다. 피어슨 상관계수는 -1에서 +1 사이의 값을 가진다.
피어슨 상관계수의 계산
피어슨 상관계수 $\gamma\;(gamma)$ 는 다음과 같은 수식으로 계산한다.
$$\gamma = \frac{Cov(X,Y)}{\sigma _X\sigma_Y}$$
- $Cov(X,Y)$: 두 변수의 $X$와 $Y$의 공분산
- $\sigma_X$와 $\sigma_Y$: $X$와 $Y$의 표준편차
피어슨 상관계수의 해석
피어슨 상관계수의 절대값이 클수록 두 변수 간의 선형 관계가 강하다는 것을 의미하며, 절대값이 1이 되면 동일한 비율로 증가한다고 해석할 수 있다.
- +1: 완벽한 양의 선형 관계 (두 변수가 동일한 비율로 증가)
- -1: 완벽한 음의 선형 관계 (한 변수가 증가할 때 다른 변수가 동일한 비율로 감소)
- 0: 선형 관계가 없음 (두 변수 간에 아무런 선형 상관관계가 없음)
피어슨 상관계수의 가정 및 사용에 주의할 점
연속형 데이터, 선형성
피어슨 상관계수는 연속형 데이터를 사용해야 하며, 두 변수간의 선형 관계를 측정하는 지표이기 때문에 선형성이 만족되어야 한다. 이를 확인하기 위해 먼저 산점도를 그려보는 것을 권장한다.
독립성
두 변수가 서로 독립적이어야 한다. 예를 들어, 어제의 기온와 오늘의 기온의 상관관계를 분석하는 경우 어제의 기온이 높았다면 일반적으로 오늘의 기온도 높기 때문에 상관계수의 값을 과대평가하게 된다.
표본 수가 적은 경우
표본의 수가 작은 경우 정규성, 등분산성의 가정을 추가로 확인해야 한다. 가정이 만족되지 않을 경우 상관계수의 값을 과대평가/과소평가하게 될 수 있기 때문이다. 가정을 만족하지 않는 경우 스피어만 상관계수와 같은 비모수적 방법을 사용하는 방법이 있다.
이상치가 있는 경우
이상치는 상관계수의 값을 크게 변화시킬 수 있는 가능성이 있다. 특히 표본의 수가 적을 때 더 크게 값을 변화시킬 수 있기 때문에 주의해야 한다.
피어슨 상관계수 계산 예제 (python)
파이썬을 사용하여 피어슨 상관계수를 계산해보았다. 키, 몸무게 데이터를 사용했다. 산점도와 회귀선을 그려 선형성을 시각적으로 확인하고, 피어슨 상관분석을 진행했다. (데이터 출처: Kaggle)
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import pingouin as pg
# 데이터 로드
data = pd.read_csv('C:/Users/rmstn/Desktop/블로깅/SOCR-HeightWeight.csv')
data.head()
# 두 변수 선택
x = data['Weight(Pounds)']
y = data['Height(Inches)']
# 산점도 및 회귀선 그리기 (선형성 확인)
plt.figure(figsize=(8, 6))
sns.regplot(x=x, y=y, ci=None, line_kws={"color": "red"})
plt.title('Scatter Plot of Weight(Pounds) vs. Height(Inches)')
plt.xlabel('Weight(Pounds)')
plt.ylabel('Height(Inches)')
plt.grid(True)
plt.show()
# 피어슨 상관계수 계산
display(pg.corr(x,y).round(3))
n | 𝑟 | CI95% | p-val | BF10 | power | |
pearson | 25000 | 0.503 | [0.49, 0.51] | 0.0 | inf | 1.0 |