본문 바로가기

AI Theory/Visualization

[파이썬 캐글뽀개기] 상관관계 히트 맵

[파이썬 캐글뽀개기] 상관관계 히트 맵

상간관계 분석

두 개 이상 변수 간 상호 관련성 판단

상관 관계 분석의 종류: 피어슨, 스피어만, 켄달, 점이연, 이연 상관 계수

일반적인 상관관계 분석은 피어슨 상관관계 분석을 의미

R: 두 변수 간 선형적 관계의 강도

 

공분산(Covariance)과 상관 계수(Corelation)

수치형 변수 간 상관관계 나타내는 지표

 

공분산

  • X변수와 Y변수가 동시에 변하는 정도
  • X의 편차와 Y의 편차의 곱의 평균
  • *편차: 변량-평균
  • 방향성만 가짐
  • 결과값이 양수: 양의 선형 관계
  • 결과값이 음수: 음의 선형 관계

 

표준화작업 필수:

공분산의 크기는 단위의 영향을 받아 일정한 값을 가질 수 없으므로 표준화작업을 통해 척도에 상관없이 계산 가능하도록 함

 

예를 들어 몸무게 단위 KG 사용시 1~100 사이의 값 수집. 하지만 G을 사용하면 1000~100,000단위의 값이 수집된다. 즉 수집값에 따라 공분산의 값이 크게 변동된다. >> 표준화작업 >> 상관관계

 

 상관계수

  • 공분산을 표준화한 것
  • 공분산을 각각 X편차와 Y편차의 곱으로 나눈 것
  • -1~1사이의 값
  • +1, -1에 가까울수록 두 변수는 밀접하게 연관
  • 0: 두 변수간 관련 없음
  • +: 한 변수 증가시 다른 변수도 증가
  • -: 한 변수 증가시 다른 변수 감소

 

상관관계 시각화의 구현

# 상관관계를 기반으로 히트맵 그래프 작성. 숫자 없는 그래프 왼쪽, 숫자 있는 그래프 오른쪽 배치
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(16,5))

sns.heatmap(num_mpg.corr(), ax=ax[0])
ax[0].set_title('Basic correlation heatmap', pad=12)

sns.heatmap(num_mpg.corr(), vmin=-1, vmax=1, annot=True, ax=ax[1])
ax[1].set_title('Correlation heatmap with number', pad=12)

plt.show()

데이터분석
상관관계분석
corr()
output