🎯 분석 목표
- 연체 여부(SeriousDlqin2yrs)와 변수들 간의 관계를 시각적으로 탐색
- 어떤 변수들이 연체 가능성에 영향을 줄 수 있을지 감으로 파악
- 추후 모델링에 사용할 중요한 변수 후보군을 정리
📊 1. 타겟 변수 분포 확인
먼저, 우리가 예측하고자 하는 연체 여부(0 또는 1) 의 분포를 확인했습니다.
# 연체한 사람 vs 안 한 사람 비율은 어떻게 될까?
import seaborn as sns
import matplotlib.pyplot as plt
sns.countplot(x='SeriousDlqin2yrs', data=train_df)
plt.title("Target Distribution (0: 정상, 1: 연체)")
plt.show()

🔍 대부분의 샘플이 0 → 연체하지 않은 사람
→ 데이터 불균형 문제 존재
📈 2. 주요 수치형 변수들의 분포 & 연체 여부별 비교
다음으로는 소득, 연령, 부채 비율, 신용 사용률, 연체 횟수 등
주요 변수들이 연체 여부에 따라 어떻게 분포가 달라지는지 시각화해봤습니다.
num_cols = [
'RevolvingUtilizationOfUnsecuredLines', 'age', 'DebtRatio',
'MonthlyIncome', 'NumberOfOpenCreditLinesAndLoans',
'NumberOfTime30-59DaysPastDueNotWorse', 'NumberOfTimes90DaysLate',
'NumberOfTime60-89DaysPastDueNotWorse', 'NumberOfDependents'
]
for col in num_cols:
plt.figure(figsize=(8, 4))
sns.kdeplot(data=train_df, x=col, hue='SeriousDlqin2yrs', fill=True, common_norm=False)
plt.title(f"{col} vs SeriousDlqin2yrs")
plt.show()
예시 인사이트:
- MonthlyIncome: 연체한 그룹이 전반적으로 소득이 낮음
- RevolvingUtilizationOfUnsecuredLines: 높을수록 연체 확률 증가
- NumberOfTimes90DaysLate: 0 이상일 경우 연체 비율 급증



🧊 3. 상관관계 행렬
변수 간의 상관관계를 시각화한 heatmap을 통해,
중복되는 정보나 강한 연관성을 가진 변수들을 확인했습니다.

🔍 SeriousDlqin2yrs와 직접적인 상관계수는 낮지만,
연체 관련 컬럼들끼리는 서로 높은 상관성을 보이기도 합니다.
✅ 오늘의 요약 정리
| 항목 | 확인한 내용 |
| 타겟 분포 | 대부분이 비연체(0) → 불균형 데이터 |
| 변수별 시각화 | 소득, 연체횟수, 신용사용률 등이 차이를 보임 |
| 상관관계 | 개별 변수보다는 복합적인 영향이 있을 것으로 보임 |
🧠 오늘 배운 정리 요약
- EDA(탐색적 데이터 분석)은 모델링 전 데이터를 “눈으로” 이해하는 단계!
- 타겟 분포(SeriousDlqin2yrs) 확인 → 불균형 데이터임을 파악함
- 주요 변수(MonthlyIncome, DebtRatio, 연체 횟수)들을 시각화함으로써
→ 연체와 관련된 변수들을 감으로 파악할 수 있었음 - 상관관계 행렬을 통해 변수 간 중복 여부, 연관도도 확인