개발로그필름
[데이터 TIL] Pair Plot에 대해 알아보자 본문
🎨 Pair Plot(페어 플롯)이란?
📌 여러 변수 간의 관계를 한눈에 확인할 수 있는 그래프!
Pair Plot(페어 플롯)은 서로 다른 변수들 간의 관계를 비교할 수 있도록 여러 개의 산점도를 한 번에 그린 그래프
보통 데이터에 포함된 모든 수치형 변수(숫자형 데이터)들의 조합을 한 번에 비교할 때 사용
🧐 Pair Plot이 왜 필요할까?
데이터 분석을 할 때 두 변수 간의 관계를 알고 싶을 때
예를 들면,
• 키와 몸무게가 관계가 있을까?
• 나이와 혈압이 연관이 있을까?
• 공부 시간과 시험 점수는 어떤 관계일까?
이런 관계를 하나하나 산점도(Scatter Plot)로 그리면 너무 많아서 헷갈린다
👉 그래서 Pair Plot을 사용하면 모든 변수 조합을 한 번에 비교할 수 있다
📊 Pair Plot을 쉽게 이해하는 예제
📌 예를 들어, 3개의 변수(키, 몸무게, 나이)가 있다고 해보자
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# 샘플 데이터 생성
data = {
"이름": ["철수", "영희", "민수", "지수", "태호", "혜진", "지훈", "나연", "도윤", "수아"],
"키(cm)": [170, 160, 175, 165, 180, 158, 172, 168, 177, 163],
"몸무게(kg)": [65, 50, 80, 55, 90, 48, 70, 60, 85, 52],
"나이(살)": [25, 22, 28, 24, 30, 21, 26, 23, 29, 22]
}
# 데이터프레임 변환
df = pd.DataFrame(data, )
# "이름" 컬럼은 필요 없으므로 삭제
df = df.drop(columns=["이름"])
# Pair Plot 그리기
sns.pairplot(df)
plt.show()
🔍 1. 변수 간의 관계 분석 (산점도 분석)
1️⃣ 키(cm) vs 몸무게(kg)
✔ 강한 양의 상관관계(Positive Correlation)
• 키가 증가할수록 몸무게도 증가하는 뚜렷한 패턴이 보임
• 거의 직선에 가까운 분포 → 키가 클수록 몸무게도 무거운 경향이 있음
• 즉, 키와 몸무게는 강한 정적 상관관계를 가진다.
💡 의미:
✔ 키가 크면 몸무게도 증가하는 자연스러운 관계
✔ 건강 데이터 분석 시 BMI(체질량지수)와 연계할 수 있는 중요한 변수
2️⃣ 키(cm) vs 나이(살)
✔ 약한 양의 상관관계 또는 거의 없음
• 나이가 증가할수록 키도 약간 증가하는 경향이 보이지만, 패턴이 뚜렷하지 않음
• 성장이 멈춘 성인 데이터를 다루고 있다면 나이에 따른 키 증가가 크지 않음
• 오른쪽 위로 올라가는 느낌의 산점도여도 완전히 직선적인 패턴이 아니기 때문에 관계가 거의 없음
💡 의미:
✔ 성장이 끝난 성인 데이터라면 키와 나이는 큰 관계가 없을 가능성이 높음
✔ 만약 청소년 데이터를 포함했다면 나이가 증가할수록 키가 자라는 패턴이 나타날 수 있음
3️⃣ 몸무게(kg) vs 나이(살)
✔ 약한 양의 상관관계(Positive Correlation)
• 나이가 많을수록 몸무게가 증가하는 경향이 있지만, 아주 뚜렷하지 않음
• 즉, 나이가 많을수록 체중이 증가할 가능성이 있지만 개별 차이가 큼
💡 의미:
✔ 나이가 증가하면 기초대사량이 낮아지고 운동량이 줄어들면서 체중이 증가할 가능성이 있음
✔ 하지만 개별 차이가 많기 때문에 단순한 관계로 해석하기 어렵고, 생활 습관 데이터를 함께 분석해야 더 정확한 인사이트를 얻을 수 있음
🔍 2. 변수들의 분포 분석 (히스토그램 분석)
각 변수의 대각선(diagonal)에는 히스토그램이 표시되어 있어 데이터의 분포를 확인할 수 있습니다.
1️⃣ 키(cm) 분포
✔ 특정 구간(160~180cm)에 균등하게 분포
✔ 극단적으로 작은 값(150cm 이하)이나 큰 값(190cm 이상)은 없음
✔ 데이터가 정규 분포에 가까운 균등한 형태
2️⃣ 몸무게(kg) 분포
✔ 50~90kg 사이에 넓게 분포하지만, 특정 구간(50kg)에서 데이터가 많이 집중됨
✔ 몇 개의 값이 많고 나머지는 고르게 분포 → 특정 그룹(예: 저체중 그룹)이 많을 가능성
3️⃣ 나이(살) 분포
✔ 22~30세 사이에 데이터가 넓게 퍼져 있음
✔ 특정 연령(22세, 25세 등)에 데이터가 몰려 있음
✔ 데이터가 특정 연령대에 편중될 가능성이 있음
🔹 키와 몸무게는 강한 상관관계를 가짐 → 키가 크면 몸무게도 클 확률이 높음
🔹 나이와 키는 별다른 관계 없음 → 성인 데이터이므로 성장이 끝났기 때문
🔹 나이가 많을수록 체중이 증가하는 경향이 있지만, 강한 패턴은 아님 → 생활 습관 분석이 필요
🔹 히스토그램을 보면 특정 연령(22세)과 체중(50kg)에 데이터가 집중됨 → 편향된 샘플일 가능성 고려해야 함
'데이터분석가 > 데이터 TIL' 카테고리의 다른 글
[데이터 TIL] import warnings warnings.simplefilter('ignore') (0) | 2025.02.10 |
---|---|
[데이터 TIL] pivot_table() (0) | 2025.02.07 |
[데이터 TIL] 히트맵을 알아보자 (1) | 2025.02.07 |
[데이터 TIL] 수치형 데이터와 범주형 데이터의 차이 (0) | 2025.02.07 |
[데이터 TIL] 칼럼별 결측치 비율 확인하기 (0) | 2025.02.06 |