여러 시계열 간의 관계 탐색

Python으로 시계열 데이터 시각화

Thomas Vincent

Head of Data Science, Getty Images

두 변수 간의 상관관계

  • 통계학에서 상관 계수는 두 변수 간의 관계 강도를 측정하는 지표입니다:
    • 피어슨 계수: 선형 관계로 가정되는 변수 간의 상관 계수 계산에 사용
    • 켄달 타우 또는 스피어만 순위: 비선형 관계로 가정되는 변수 간의 상관 계수 계산에 사용
Python으로 시계열 데이터 시각화

상관관계 계산

from scipy.stats.stats import pearsonr
from scipy.stats.stats import spearmanr
from scipy.stats.stats import kendalltau
x = [1, 2, 4, 7]
y = [1, 3, 4, 8]
pearsonr(x, y)
SpearmanrResult(correlation=0.9843, pvalue=0.01569)
spearmanr(x, y)
SpearmanrResult(correlation=1.0, pvalue=0.0)
kendalltau(x, y)
KendalltauResult(correlation=1.0, pvalue=0.0415)
Python으로 시계열 데이터 시각화

상관 행렬이란?

  • 세 개 이상의 변수 간 상관 계수를 계산하면 상관 행렬을 얻습니다
    • 범위: [-1, 1]
    • 0: 관계 없음
    • 1: 강한 양의 관계
    • -1: 강한 음의 관계
Python으로 시계열 데이터 시각화

상관 행렬이란?

  • 상관 행렬은 항상 "대칭" 형태입니다
  • 대각선 값은 항상 1입니다
   x     y     z
x  1.00 -0.46  0.49
y -0.46  1.00 -0.61
z  0.49 -0.61  1.00
Python으로 시계열 데이터 시각화

Pandas로 상관 행렬 계산하기

corr_p = meat[['beef', 'veal','turkey']].corr(method='pearson')
print(corr_p)
          beef     veal     turkey
beef      1.000   -0.829    0.738
veal     -0.829    1.000   -0.768
turkey    0.738   -0.768    1.000
corr_s = meat[['beef', 'veal','turkey']].corr(method='spearman')
print(corr_s)
          beef     veal     turkey
beef      1.000   -0.812    0.778
veal     -0.812    1.000   -0.829
turkey    0.778   -0.829    1.000
Python으로 시계열 데이터 시각화

Pandas로 상관 행렬 계산하기

corr_mat = meat.corr(method='pearson')
Python으로 시계열 데이터 시각화

히트맵

import seaborn as sns

sns.heatmap(corr_mat)
Python으로 시계열 데이터 시각화

히트맵

상관 행렬의 히트맵

Python으로 시계열 데이터 시각화

클러스터맵

sns.clustermap(corr_mat)
Python으로 시계열 데이터 시각화

상관 행렬의 클러스터맵

Python으로 시계열 데이터 시각화

연습해 봅시다!

Python으로 시계열 데이터 시각화

Preparing Video For Download...