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


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()

데이터가 정규분포를 따르지 않을 때 사용하는 상관계수!

from scipy.stats import spearmanr, kendalltau
# 예시 데이터 생성
np.random.seed(0)
customer_satisfaction = np.random.rand(100)
repurchase_intent = 3 * customer_satisfaction + np.random.randn(100) * 0.5
# 데이터프레임 생성
df = pd.DataFrame({'Customer Satisfaction': customer_satisfaction, 'Repurchase Intent': repurchase_intent})
# 스피어만 상관계수 계산
spearman_corr, _ = spearmanr(df['Customer Satisfaction'], df['Repurchase Intent'])
print(f"스피어만 상관계수: {spearman_corr}")
# 켄달의 타우 상관계수 계산
kendall_corr, _ = kendalltau(df['Customer Satisfaction'], df['Repurchase Intent'])
print(f"켄달의 타우 상관계수: {kendall_corr}")
# 상관관계 히트맵 시각화
sns.heatmap(df.corr(method='spearman'), annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('spearman coefficient heatmap')
plt.show()

상호정보를 이용한 변수끼리의 상관계수 계산!

import numpy as np
from sklearn.metrics import mutual_info_score
# 범주형 예제 데이터
X = np.array(['cat', 'dog', 'cat', 'cat', 'dog', 'dog', 'cat', 'dog', 'dog', 'cat'])
Y = np.array(['high', 'low', 'high', 'high', 'low', 'low', 'high', 'low', 'low', 'high'])
# 상호 정보량 계산
mi = mutual_info_score(X, Y)
print(f"Mutual Information (categorical): {mi}")
피어슨 상관계수(Pearson correlation coefficient)의 의미를 설명하세요.
1) 두 변수 간의 비선형 관계를 측정한다.
2) 두 변수 간의 선형 관계를 측정한다.
3) 두 변수 간의 독립성을 측정한다.
4) 두 변수 간의 비모수 관계를 측정한다.
정답 및 해설
- 정답은 2번
- 피어슨 상관계수는 두 변수 간의 선형 관계를 측정하는 통계량입니다.
1) 피어슨 상관계수
2) 스피어만 상관계수
3) 켄달의 타우 상관계수
4) 정답 없음
정답 및 해설
- 정답은 1번
- 비모수 상관계수는 데이터의 분포에 대한 가정을 하지 않는 상관계수입니다. 스피어만 상관계수와 켄달의 타우 상관계수가 비모수 상관계수의 예입니다.
1) 두 변수 간의 선형 관계를 측정한다.
2) 두 변수 간의 비선형 관계를 측정한다.
3) 두 변수 간의 상호 정보를 측정한다.
4) 두 변수 간의 독립성을 측정한다.
정답 및 해설
- 정답은 2번, 3번
- 상호정보 상관계수는 두 변수 간의 비선형 관계를 측정하며, 상호 정보를 통해 두 변수 간의 상관성을 평가합니다.