상관관계(Correlation)는 두 변수 간의 선형적 관계의 강도와 방향을 나타내는 통계 개념입니다.
양의 상관관계: 한 변수가 증가하면 다른 변수도 증가하는 경향
음의 상관관계: 한 변수가 증가하면 다른 변수는 감소하는 경향
0에 가까움: 선형 관계가 거의 없음
대표적인 측정 지표: 피어슨 상관계수(Pearson Correlation Coefficient)
값 범위: -1 ~ +1
+1: 완전한 양의 선형 관계
-1: 완전한 음의 선형 관계
0: 선형 관계 없음
| 분야 | 활용 예시 |
|---|---|
| 마케팅 | 광고비와 매출 간의 관계 분석 |
| 인사(HR) | 직원 만족도와 이직률 간의 관계 파악 |
| 금융 | 금리와 주가 변동 간의 관계 분석 |
| 제조 | 온도와 불량률 간의 관계 분석 |
| 데이터 분석 | 변수 선택(Feature Selection) 시 상관성이 높은 변수 제거 |
피어슨 상관계수 공식
: 각 변수의 관측값
: 각 변수의 평균값
: 상관계수
장점
변수 간 관계를 빠르게 파악 가능
데이터 전처리 및 모델링에 유용
단점 / 주의사항
인과관계(Causation)와 혼동 금지 → 상관관계가 높다고 해서 원인-결과 관계가 있는 것은 아님
이상치(Outlier)에 민감 → 극단값이 상관계수를 왜곡할 수 있음
비선형 관계는 잘 포착하지 못함 → 스피어만(Spearman) 상관계수 등 다른 방법 고려
import pandas as pd
# 예시 데이터
data = pd.DataFrame({
'ad_spend': [100, 200, 300, 400, 500],
'sales': [20, 40, 60, 80, 100]
})
# 피어슨 상관계수 계산
corr = data['ad_spend'].corr(data['sales'], method='pearson')
print("피어슨 상관계수:", corr)
# 전체 상관행렬
corr_matrix = data.corr(method='pearson')
print("\n상관행렬:\n", corr_matrix)
출력 예시
피어슨 상관계수: 1.0
상관행렬:
ad_spend sales
ad_spend 1.0 1.0
sales 1.0 1.0
변수 선택: 상관계수가 0.8 이상인 변수는 중복 정보 가능성이 높으므로 하나만 사용
시각화: seaborn.heatmap()을 사용하면 상관행렬을 직관적으로 확인 가능
비선형 관계: spearman 또는 kendall 방법을 병행