상관관계(Correlation)

calico·2025년 11월 25일

Artificial Intelligence

목록 보기
114/143

1. 상관관계(Correlation)


  • 상관관계(Correlation)는 두 변수 간의 선형적 관계의 강도와 방향을 나타내는 통계 개념입니다.

    • 양의 상관관계: 한 변수가 증가하면 다른 변수도 증가하는 경향

    • 음의 상관관계: 한 변수가 증가하면 다른 변수는 감소하는 경향

    • 0에 가까움: 선형 관계가 거의 없음

  • 대표적인 측정 지표: 피어슨 상관계수(Pearson Correlation Coefficient)

    • 값 범위: -1 ~ +1

    • +1: 완전한 양의 선형 관계

    • -1: 완전한 음의 선형 관계

    • 0: 선형 관계 없음



2. 실무 활용 사례


분야활용 예시
마케팅광고비와 매출 간의 관계 분석
인사(HR)직원 만족도와 이직률 간의 관계 파악
금융금리와 주가 변동 간의 관계 분석
제조온도와 불량률 간의 관계 분석
데이터 분석변수 선택(Feature Selection) 시 상관성이 높은 변수 제거



3. 계산 방법


피어슨 상관계수 공식

r=(xixˉ)(yiyˉ)(xixˉ)2(yiyˉ)2r = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2} \cdot \sqrt{\sum (y_i - \bar{y})^2}}
  • xi,yix_i, y_i: 각 변수의 관측값

  • xˉ,yˉ\bar{x}, \bar{y}: 각 변수의 평균값

  • rr: 상관계수



4. 장단점

장점

  • 변수 간 관계를 빠르게 파악 가능

  • 데이터 전처리 및 모델링에 유용

단점 / 주의사항

  • 인과관계(Causation)와 혼동 금지 → 상관관계가 높다고 해서 원인-결과 관계가 있는 것은 아님

  • 이상치(Outlier)에 민감 → 극단값이 상관계수를 왜곡할 수 있음

  • 비선형 관계는 잘 포착하지 못함 → 스피어만(Spearman) 상관계수 등 다른 방법 고려



5. Python 실무 예시


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



6. 실무 팁


  • 변수 선택: 상관계수가 0.8 이상인 변수는 중복 정보 가능성이 높으므로 하나만 사용

  • 시각화: seaborn.heatmap()을 사용하면 상관행렬을 직관적으로 확인 가능

  • 비선형 관계: spearman 또는 kendall 방법을 병행



profile
https://velog.io/@corone_hi/posts

0개의 댓글