상관분석이란? 두 변수 A,B간의 어떠한 선형적 관계가 있는지 파악
데이터의 형태에 따라 상관관계를 평가할 때 활용하는 분석 기법이 달라짐

r(상관계수 값)에 따라 크게 양의 상관관계 음의 상관관계로 나뉨
| 0.7 < r <1.0 | 매우 강한 양의 상관관계 |
|---|---|
| 0.3 < r < 0.7 | 강한 양의 상관관계 |
| 0.1 < r < 0.3 | 약한 양의 상관관계 |
| -0.1 < r < 0.1 | 상관 관계 없음 |
| -0.3 < r < -0.1 | 약한 음의 상관관계 |
| -0.7 < r < -0.3 | 강한 음의 상관관계 |
| -1.0 < r < -0.7 | 매우 강한 음의 상관관계 |
Positive Correlation: 두 변수 A,B가 함께 증가하는 경향
Negative Correlation: 두 변수 A,B가 반대로 증가하는 경향
데이터의 종류에 따라 상관계수를 분석하는 기법이 달라짐
대표적인 분석 기법
피어슨 상관계수: 연속형 - 연속형
from scipy import stats
stats.pearsonr(x, y).correlation
정규분포를 따르는 연속형 변수간의 상관성 분석
상관계수는 선형적인 관계를 측정하기 때문에 두 변수가 비선형적으로 함께 변하는 경우는 잘 측정하지 못함
스피어만 상관계수: 연속형 - 연속형(비모수적)
from scipy import stats
stats.spearmanr(x, y).correlation
두 변수가 정규성을 따르지 않는 경우 사용
스피어만 순위 상관계수는 값에 순위를 매겨 그 순위에 대해 상관계수 값을 구함
연속형 변수, 순위형 변수간의 상관성 분석
켄달 상관계수: 연속형 - 연속형(비모수적)
from scipy import stats
stats.kendalltau(x, y).correlation
연속형 변수, 순위형 변수간의 상관성 분석
표본의 크기가 작을 경우, 스피어만 상관계수보다 신뢰성이 높음
점이연 상관계수 (Point-biserial correlation)
from scipy import stats
stats.pointbiserialr(x, y)
하나가 연속형 변수, 다른 하나는 이분형 변수일 때 활용
이분변수를 0과 1로 코딩한 다음 Peason 상관계수로 구함
이연 상관계수 (Biserial correlation)
하나가 연속형 변수, 다른 하나는 이분형 변수(연속변수를 특정 값을 기준으로 두 개의 범주로 나누었을 때)일 때 활용
파이 상관계수 (Phi(φ) coefficient)
매튜 상관계수(Matthews Correlation Coefficient, MCC)라고도 불림
from sklearn.metrics import matthews_corrcoef
y_true = [+1, +1, +1, -1]
y_pred = [+1, -1, +1, +1]
matthews_corrcoef(y_true, y_pred)
두 변수가 범주형 변수일 경우 사용
각 변수를 0,1의 값으로 변환 후 피어슨 상관계수를 활용하여 계산
python에서 간단하게 분석 기법들을 사용하여 구할 수 있음
단순히 r값 만을 가지고 상관분석결과를 도출하는 것이 아니라
p-value값을 가지고 대립가설의 채택 여부를 판단하여 결정해야함
상관분석은 두 변수간의 추이를 나타낸 것이므로 절대 “인과관계를 설명하지 않는다”
인과관계를 분석하려면 “회귀분석"을 진행해야 함