0Pricing
Learn AI with Python · 강의

이변량 및 다변량 분석

산점도, 쌍 그래프, 상관관계 히트맵, 그룹별 통계를 다룹니다.

이변량 및 다변량 분석은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

한 변수에서 여러 변수로

이변량 분석은 두 변수 사이의 관계를 연구하고, 다변량 분석은 여러 변수를 한 번에 살펴봅니다.

목표는 어떤 특성들이 함께 움직이는지 찾고, 상호작용을 발견하며, 어떤 변수가 예측 대상에 대한 예측력이 있는지 결정하는 것입니다.

plt.scatter로 산점도 그리기

산점도는 두 수치형 변수를 서로 비교해 표시하며, 각 점은 하나의 행을 나타냅니다. 산점도에서 추세, 군집, 이상치를 확인할 수 있습니다.

import matplotlib.pyplot as plt
import seaborn as sns

plt.scatter(df["height"], df["weight"], alpha=0.4)
plt.xlabel("Height")
plt.ylabel("Weight")
plt.show()

산점도 읽기

방향(위쪽 = 양의 관계, 아래쪽 = 음의 관계), 강도(좁은 띠 형태인지 흩어진 구름 형태인지), 모양(선형인지 곡선인지)을 살펴보세요.

sns.scatterplot에 hue를 추가하면 범주별로 점에 색을 지정하여 집단 구조를 확인할 수 있습니다.

sns.scatterplot(x="height", y="weight", hue="gender", data=df, alpha=0.5)
plt.show()

df.corr()로 상관관계 확인

df.corr()는 수치형 열 사이의 쌍별 피어슨 상관관계를 계산하며, 결과는 -1에서 +1 사이의 값입니다.

  • +1 → 완벽한 양의 선형 관계
  • 0 → 선형 관계 없음
  • -1 → 완벽한 음의 선형 관계
corr = df.corr(numeric_only=True)
print(corr["price"].sort_values(ascending=False))

상관관계 heatmap

상관관계 행렬은 heatmap으로 표현하면 더 쉽게 읽을 수 있습니다. 각 셀 안에 값을 표시하려면 annot=True를 전달하세요.

양의 상관관계와 음의 상관관계가 서로 다른 색으로 표시되도록 발산형 색상표(예: coolwarm)를 사용하세요.

corr = df.corr(numeric_only=True)
sns.heatmap(corr, annot=True, fmt=".2f", cmap="coolwarm", center=0)
plt.show()

다중공선성 찾기

두 특성의 상관관계가 매우 높으면(예: 0.9 초과) 서로 중복되는 정보를 담고 있는 것입니다. 이를 다중공선성이라고 하며, 선형 모델을 불안정하게 만들 수 있습니다.

heatmap을 사용하면 중복되는 쌍이 눈에 잘 띄므로 둘 중 하나를 삭제할 수 있습니다.

corr = df.corr(numeric_only=True).abs()
high = corr[(corr > 0.9) & (corr < 1.0)]
print(high.dropna(how="all"))

상관관계는 인과관계가 아닙니다

강한 상관관계가 있다고 해서 한 변수가 다른 변수를 원인으로 만든다는 뜻은 아닙니다. 두 변수 모두 숨겨진 세 번째 변수의 영향을 받거나, 그 관계가 우연일 수도 있습니다.

상관관계로 가설을 세운 다음, 해당 분야의 지식과 통제된 분석으로 검증하세요.

sns.pairplot으로 쌍별 그래프 그리기

sns.pairplot은 모든 수치형 열의 각 쌍에 대해 산점도 격자를 그리고, 대각선에는 히스토그램이나 KDE를 표시합니다.

모든 이변량 관계를 한 번에 빠르게 살펴볼 수 있는 방법입니다. 열의 개수에 따라 계산량이 제곱으로 늘어나므로 대규모 데이터 세트에서는 열을 제한하세요.

sns.pairplot(df[["height", "weight", "age", "income"]], hue="gender")
plt.show()

그룹별 상자 그림

수치형 변수를 범주형 변수와 비교하려면 상자 그림의 x축에 범주를 배치하세요. 집단별 분포를 즉시 비교할 수 있습니다.

sns.boxplot(x="city", y="income", data=df)
plt.xticks(rotation=45)
plt.show()

그룹별 집계

수치 정보는 그래프를 보완합니다. groupby와 agg를 함께 사용하면 범주별로 수치형 열을 요약할 수 있습니다.

이는 표 형태로 표현한 다변량 분석입니다. 평균, 중앙값, 개수를 나란히 비교할 수 있습니다.

summary = df.groupby("city")["income"].agg(["mean", "median", "count"])
print(summary.sort_values("mean", ascending=False))

인코딩을 사용한 다변량 그래프

시각적 인코딩을 사용하면 하나의 차트에 세 개 이상의 변수를 담을 수 있습니다. x, y, 색상(hue), 크기 등을 활용하는 방식입니다.

그래프를 여러 개로 나누지 않고도 세 번째 차원에 따라 관계가 어떻게 달라지는지 확인할 수 있습니다.

sns.scatterplot(x="height", y="weight", hue="age", size="income", data=df)
plt.show()

빠른 확인: 상관관계 범위

df.corr()를 실행했더니 두 특성 사이에서 -0.85라는 값이 나왔습니다.

복습: 이변량 및 다변량 분석

이제 변수 사이의 관계를 탐색할 수 있습니다.

  • 두 수치형 변수를 확인하는 plt.scatter / sns.scatterplot
  • 상관관계 행렬을 확인하는 df.corr() + sns.heatmap(annot=True)
  • 다중공선성을 나타내는 높은 상관관계(중복 특성 삭제)
  • 모든 쌍의 관계를 한눈에 확인하는 sns.pairplot
  • 수치형 변수와 범주형 변수를 비교하는 그룹별 상자 그림 및 groupby().agg()

다음에는 특성을 예측 대상과 직접 연결해 살펴봅니다.

자주 묻는 질문

“이변량 및 다변량 분석” 강의는 무료인가요?

네 — “이변량 및 다변량 분석” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“이변량 및 다변량 분석”에서 뭘 배우나요?

산점도, 쌍 그래프, 상관관계 히트맵, 그룹별 통계를 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“이변량 및 다변량 분석” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. EDA 작업 흐름과 데이터 프로파일링
  2. 단변량 분석
  3. 이변량 및 다변량 분석
  4. 특성 분포 및 목표값 분석
← Learn AI with Python(으)로 돌아가기