Data Engineering/데이터 분석

상관 분석

12.tka 2020. 9. 2. 14:59
728x90

정의

  • 연속 변수로 측정된 두 변수 간의 선형적 관계를 상관 계수로 표현하는 것입니다.
  • 두 변수 간의 연관된 정도를 나타낼 뿐 인과관계를 설명하는 것은 아닙니다.

순서

  1. 선형 관계를 갖는지 파악합니다.
  2. 선형 관계를 갖는다면 방향성을 파악합니다.
  3. 관계의 크기를 파악합니다.

1. 선형 관계 파악

선형 관계는 산점도를 통해 쉽게 파악할 수 있으며 아래는 iris 데이터의 산점도 그래프입니다.

 

import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams['figure.figsize'] = [10, 8]

iris = sns.load_dataset('iris')

plt.plot('petal_length',
         'petal_width',
         data=iris,
         linestyle='none',
         marker='o',
         color='red',
         alpha=0.5)

plt.title('Scatter Plot of iris by matplotlib', fontsize=20)
plt.xlabel('Petal Length', fontsize=10)
plt.ylabel('Petal Width', fontsize=10)
plt.show()

 

그래프를 통해서 Length 값이 증가하면 대체로 Width 값이 증가하는 선형 관계를 파악할 수 있습니다.

 

 

 

2. 방향성 파악

방향성은 양과 음으로 나뉩니다. 양의 관계는 하나의 값이 증가하면 다른 값도 증가하고, 음의 관계는 하나의 값이 증가하면 다른 값은 감소합니다. 왼쪽 그래프에서 초록색은 양의 관계, 빨간색은 음의 관계를 나타냅니다. iris 데이터에 왼쪽 그래프를 대입하면 Length와 Width는 양의 선형 관계로 해석할 수 있습니다.

 

 

3. 관계의 크기 파악

관계의 크기는 상관 계수를 통해 구할 수 있습니다. 상관 분석에 사용되는 상관 계수는 일반적으로 피어슨 상관 계수(Pearson correlation coefficient)를 말합니다. 물론 스피어만 상관 계수(Spearman correlation coefficient), 켄달 상관 계수(Kendall correlation coefficient)등의 분석방법을 사용하는 경우도 있습니다.

 

피어슨 상관 계수를 통해서 선형성이 얼마나 강한지 측정할 수 있습니다. 두 변수가 동시에 일정한 비율로 증가하거나 감소하는 것을 두고 양의 선형 관계가 존재한다고 말하며 반대의 경우는 음의 선형 관계가 존재한다고 말합니다. 강한 양의 선형 관계라면 1에 가까워지고, 강한 음의 선형 관계라면 -1에 가까워집니다. 0에 가깝다면 선형 상관성이 거의 없는 것입니다.

 

Python pandas에서 제공하는 함수를 통해 직접 구현하지 않아도 상관분석을 할 수 있습니다.

import pandas as pd
import seaborn as sns

iris = sns.load_dataset('iris')

df = pd.DataFrame(data=iris, columns=['petal_length', 'petal_width'])
corr = df.corr(method='pearson')  # pearson 상관 계수를 사용합니다.

# 상관 계수 결과값을 출력합니다.
print(corr)

 

  petal_length petal_width
petal_length 1.000000 0.962865
petal_width 0.962865 1.000000

 

추가적으로 스피어만, 켄달 상관 계수는 단조성을 판단하기 위해 사용됩니다. 선형 관계가 있는 경우에는 대부분 단조 관계를 가지지만, 단조 관계가 있다고 해서 무조건 선형 관계를 가진다고 말할 수 없기 때문에 피어슨 상관 계수를 주로 사용한다고 생각합니다.

 

728x90