상관분석
해당 포스팅에서는 Python을 이용하여 상관분석을 하는 방법을 알아봅니다.
상관계수에 대한 설명은 아래 포스팅 참고 바랍니다
https://ysyblog.tistory.com/403
데이터 세팅
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
반응형
'Data Analysis & ML > Python을 활용한 통계분석' 카테고리의 다른 글
[통계분석] 탐색적 요인분석(EFA) (0) | 2020.12.24 |
---|---|
[통계분석] PCA(주성분분석) (0) | 2020.12.24 |
[통계분석] 분산분석(ANOVA), 이항검정 (0) | 2020.12.19 |
[통계분석] 교차분석(카이제곱 검정) (0) | 2020.12.19 |
[통계분석] 표본추출과 T-Test (0) | 2020.12.19 |