노력에는 지름길이 없으니까요

5.1 피어슨 상관계수 본문

통계학

5.1 피어슨 상관계수

데건 2024. 8. 5. 13:35
728x90

상관계수를 상세히 공부하는 파트다.

 

가장 대표적으로 많이 사용하는 상관계수!

 

데이터가 선형적 관계가 존재하며, 데이터가 정규분포로 존재한다는 전제가 충족되어야 한다.

  • 가장 왼쪽 그래프가 피어슨 상관계수 그래프!
  • 첫 번째 그래프는 파란색 점들로 나타내었으며, X와 Y의 선형 관계를 보여줍니다.
  • 그래프에서 점들이 직선적으로 퍼져 있으며, 상관계수는 0.99로 매우 강한 양의 선형 관계를 나타냅니다.

피어슨 상관계수

  • 연속형 변수 간의 선형 관계를 측정하는 지표
  • -1에서 1 사이의 값을 가지며
  • 1은 완전한 양의 선형 관계
  • -1은 완전한 음의 선형 관계
  • 0은 선형 관계가 없음을 의미

순서(등급)형 데이터에 대해서는 연속형 변수라고 할 수 없다.

 

선형적인 관계가 예상 될 때

  • 공부 시간과 시험 점수 간의 상관관계 분석

맨 아랫줄은 선이 아닐 뿐 관계가 없다고 할 수는 없지만, 피어슨 상관계수로는 0이 나옴!!!

 

 


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import pearsonr

# 예시 데이터 생성
np.random.seed(0)
study_hours = np.random.rand(100) * 10
exam_scores = 3 * study_hours + np.random.randn(100) * 5

# 데이터프레임 생성
df = pd.DataFrame({'Study Hours': study_hours, 'Exam Scores': exam_scores})

# 피어슨 상관계수 계산
pearson_corr, _ = pearsonr(df['Study Hours'], df['Exam Scores'])
print(f"피어슨 상관계수: {pearson_corr}")

# 상관관계 히트맵 시각화
sns.heatmap(df.corr(), annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('pearson coefficient heatmap')
plt.show()
# 피어슨 상관계수 계산
pearson_corr, _ = pearsonr(df['Study Hours'], df['Exam Scores'])
print(f"피어슨 상관계수: {pearson_corr}")

# 상관관계 히트맵 시각화
sns.heatmap(df.corr(),
            annot=True, #represent the cell values with text
            linewidth=.5, #Add lines between cells
            cmap='crest', 
            vmin=-1, vmax=1 #Set the colormap norm (data values corresponding to minimum and maximum points):
            )
plt.title('pearson coefficient heatmap')
plt.show()

 

 

프로젝트 발표에서도 히트맵으로 상관계수 분석을 실시했었고, 상관계수뿐만 아니라 빈도분석에서도 사용될 수 있다고 한다. 히트맵 그리는 법은 잘 알아두는 게 좋을 듯.


팀프로젝트에서 사용했던 데이터에 있던 컬럼들의 상관계수를 알아보았다.

# 상관행렬 히트맵 시각화
# 대각선을 기준으로 대칭인 행렬이므로, 대각선을 기준으로 한 쪽만 표시
plt.figure(figsize=(15, 10))
sns.heatmap(corr_matrix, annot=True, cmap='crest', fmt='.2f', linewidth=.5, square = True)
plt.title('Correlation Matrix of Continuous Variables')
plt.show()

 

상관계수가 높은 변수가 다수 존재함을 알 수 있고,

PCA로 컬럼을 줄이는 방식을 진행해야 하며 우리 팀 프로젝트에서는 이미 선택한 방식이다! 

728x90
반응형

'통계학' 카테고리의 다른 글

5.3 상호정보 상관계수  (0) 2024.08.05
5.2 비모수 상관계수  (0) 2024.08.05
4.4 다항회귀, 스플라인 회귀  (0) 2024.08.05
4.3 범주형 변수  (0) 2024.08.05
4.2 다중선형회귀  (0) 2024.08.05