안녕하세요.
오늘은 기본적인 데이터 분석 중 하나인 상관분석을 파이썬으로 하는 방법에 대해 알아보겠습니다.
파이썬 상관분석(Correlation Analysis)
▣ 상관분석이란?
두 연속 변수가 서로 상관(관련)이 있는지 검정하는 통계분석 기법
- 회귀분석(원인→결과)과는 다르며, 상관계수의 값은 -1부터 1까지의 값을 가고 0인 경우에는 선형의 상관관계가 없다고 보면 됨
- 상관분석의 경우, 빅데이터분석기사 실기 등 데이터 시험에서 자주 출제되는 유형
※ 과거 R로 포스팅한 글이 있으니, 관심 있으신 분들은 아래 글을 참조하시기 바랍니다.
2021.06.27 - [Programming/R] - [R] 통계 분석 및 가설 검정 (t 검정, 상관분석)
: 예시 데이터 iris
import seaborn as sns
import matplotlib.pyplot as plt
# iris 데이터 load
iris = sns.load_dataset("iris")
iris.describe()
1) 상관계수 시각화
# 상관관계 구하기
cor_matrix = iris.corr()
# heatmap 시각화
sns.heatmap(cor_matrix, cmap = 'coolwarm', annot = True, fmt =".2f")
plt.show()
- petal_length와 petal_width가 강한 양의 상관관계를 보이고 있고, 전반적으로 petal_length 지표가 다른 지표들과 유의미한 상관관계를 가짐
2) 상관분석 검정
- 파이썬에는 다양한 상관계수 검정함수가 있지만, 가장 유명한 scipy 패키지의 stats.pearson()을 활용
- 첫 번째 인수에는 상관계수 그리고 두 번째 인수에는 p-value 값이 결과로 출력
- 통상적으로, 많은 변수들(columns)이 있는 데이터프레임 특성상 특정 변수와 나머지 변수들의 상관계수를 구해야 하는 상황이 존재하기에 for문을 통해 petal_length와 그 외 변수들의 상관계수 검정을 실습
import scipy.stats as stats
Y = iris.petal_length
for i in iris.columns[:4]:
print(i)
X = iris[i].values
print('Correlation statistics: {:.2f}'.format(stats.pearsonr(X,Y)[0]))
print('P-value: {:.2f}'.format(stats.pearsonr(X,Y)[1]))
# 95% 신뢰도
if stats.pearsonr(X,Y)[1] > 0.05:
print('there is no Correaltion')
else:
print('there is a Correaltion')
: 결과 확인하기
[sepal_length]
Correlation statistics: 0.87
P-value: 0.00
there is a Correaltion
[sepal_width]
Correlation statistics: -0.43
P-value: 0.00
there is a Correaltion
[petal_length]
Correlation statistics: 1.00
P-value: 0.00
there is a Correaltion
[petal_width]
Correlation statistics: 0.96
P-value: 0.00
there is a Correaltion
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 텔레그램 API 발급 및 파이썬 환경 구축 (4) | 2024.01.22 |
---|---|
[Python] fileinput 파일 수정하기 (0) | 2024.01.21 |
[Python] fnmatch 폴더 및 파일명 찾기 (2) | 2024.01.02 |
[Python] textwrap 문자열 래핑하기 (2) | 2023.12.26 |
[Python] 최대, 최솟값 인덱스 구하기 (1) | 2023.12.22 |
댓글