데이터분석/시각화
데이터 분석 - 상관관계 히트맵
2^7
2025. 2. 11. 21:00
상관관계 히트맵이란?
데이터를 분석할 때 변수들 간의 관계를 파악하는 것이 매우 중요함. 특히 하나의 변수가 다른 변수와 얼마나 관련이 있는지를 분석하기 위해서 주로 상관관계를 확인을 하며, 이를 좀 더 직관적으로 확인하기 위해 시각화한 것이 상관관계 히트맵.
1. 상관관계란?
상관관계는 두 변수 간의 선형적인 관계를 나타내는 값으로, 일반적으로 피어슨 상관계수(Pearson correlation coefficient) 를 사용하며 상관계수는 다음과 같은 범위를 가집니다:
- 1에 가까울수록: 강한 양의 상관관계 (한 변수가 증가하면 다른 변수도 증가)
- 양의 상관관계(Positive Correlation): 한 변수가 증가할 때 다른 변수도 증가
- 0에 가까울수록: 거의 상관이 없음
- -1에 가까울수록: 강한 음의 상관관계 (한 변수가 증가하면 다른 변수는 감소)
- 음의 상관관계(Negative Correlation): 한 변수가 증가할 때 다른 변수는 감소
2. 상관관계 히트맵
상관관계 히트맵은 여러 변수들 간의 상관관계를 색상으로 표현한 그래프
- 상관계수가 높을수록 (양의 상관관계) 보통 진한 빨간색으로 표현
- 상관계수가 낮을수록 (음의 상관관계) 보통 진한 파란색으로 표현
- 상관관계가 거의 없을 경우 흰색 또는 연한 색으로 표현
3. 상관관계 해석 시 주의점
- 상관관계는 인과관계가 아니다 : 두 변수가 높은 상관관계를 가진다고 해서 하나가 원인이 되어 다른 변수가 변한다는 뜻은 아님
- 변수의 범위를 고려해야 한다 : 특정 범위 내에서만 상관관계가 높을 수도 있음
- 이상치(outlier)가 많거나, 비선형 관계일 경우 피어슨 상관계수가 적절하지 않을 수 있음
- 다중공선성 문제 : 다중 회귀 분석에서 독립 변수들 간의 높은 상관관계는 모델 성능에 부정적인 영향을 줄 수 있음
■ python을 이용한 상관관계 히트맵 예제
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 샘플 데이터 생성
data = {
'공부시간': [5, 10, 3, 8, 7],
'출석률': [90, 80, 75, 95, 85],
'숙제 제출 횟수': [10, 7, 5, 9, 6],
'시험 점수': [85, 78, 65, 90, 80]
}
df = pd.DataFrame(data)
# 상관계수 계산
corr = df.corr()
# 히트맵 그리기
plt.figure(figsize=(6, 4))
sns.heatmap(corr, annot=True, cmap='coolwarm', fmt='.2f')
plt.title("상관관계 히트맵")
plt.show()
728x90