Data Analysis & ML/Python을 활용한 통계분석

[통계분석] 상관분석 (피어슨, 스피어만, 켄달타우)

YSY^ 2020. 12. 19. 17:59

상관분석

해당 포스팅에서는 Python을 이용하여 상관분석을 하는 방법을 알아봅니다.

상관계수에 대한 설명은 아래 포스팅 참고 바랍니다

https://ysyblog.tistory.com/403

 

[기초통계학] 산포도와 상관계수, 그리고 상관관계

산포도와 상관계수(상관관계)산포도 (Scatter plot)두 변수 사이의 관계를 살펴보기 위해 산포도를 이용한다. 설명변수는 x로 표기하고 가로축에 표시 피설명변수는 y로 표기하고 세로축에 표시설

ysyblog.tistory.com

데이터 세팅

import seaborn as sns
titanic = sns.load_dataset("titanic")
titanic=titanic.iloc[:,0:7]

titanic.tail()

titanic.dropna(axis=0, inplace=True)

모수적 방법 & 비모수적 방법

  • 모수적 방법 (Paramentic method) : 모수를 특정 분포로 가정
    • 피어슨 상관분석
  • 비모수적 방법 (Non-Paramentic method) : 모집단의 특정분포를 가정하지 않음. 정규분포를 따르지 않거나 표본의 개수가 적을때 사용
    • 스피어만 상관분석
    • 켄달 타우 상관분석

피어슨 상관분석 (Pearson)

  • 두 변수 X와 Y간의 선형 상관 관계를 의미
  • 일반적인 상관관계는 피어슨 상관관계를 의미하는 상관계수
titanic.corr(method='pearson')

스피어만 상관분석 (Spearman)

  • 값에 순위를 매겨 순위에 대해 상관계수를 구함
  • 연속형 변수 뿐만 아니라 순위형 변수에도 상관계수를 구할 수 있음
titanic.corr(method='spearman')

켄달 타우 상관분석 (Kendall)

  • 순위 상관계수의 종류 중 하나.
  • 두 변수들 간의 순위를 비교하여 상관관계 계산
  • concordant pair :  각 변수들의 상하 관계가 같은 경우
    • 만약 A가 B보다 키/몸무게가 다 크면 " concordant pair"을 충족한다고 할 수 있지만, A가 B모다 키는 크지만 몸무게는 적다고 하면" concordant pair"를 충족하지 못함.
  • 샘플 사이즈가 작거나, 데이터의 크기가 비슷할 때 사용 ("concordant pair"를 충족하지 못할때 유리)
titanic.corr(method='kendall')

상관분석 시각화

corrr = titanic.corr(method='pearson')
sns.pairplot(data=corrr)
plt.show()

상관분석 검정

# survived와 pclass의 피어슨 상관분석하고 검정결과 해석
import scipy.stats as stats

# 피어슨 상관계수 검정
corr = stats.pearsonr(titanic.survived, titanic.pclass)
corr #(상관계수, p-value)
# (-0.35965268208684575, 3.1621035416647744e-23)
  • p-value가 0.05이하이므로 귀무가설을 기각하고 계산된 상관계수를 활용할 수 있음
  • 약한 음의 상관관계를 가지고 있다고 해석 가능
# 스피어만 상관계수 검정
rho = stats.spearmanr(titanic.survived, titanic.pclass)
rho 
# SpearmanrResult(correlation=-0.36065641974949025, pvalue=2.346106779238448e-23)
# 캔달 상관계수 검정

tau = stats.kendalltau(titanic.survived, titanic.pclass)
tau 
# KendalltauResult(correlation=-0.3421051759132117, pvalue=5.957314337487773e-22)

 

728x90
반응형