카테고리 없음

[탐색적 데이터 분석] 연체와 관련된 변수는 무엇일까? – Give Me Some Credit 프로젝트

책다니엘 2025. 5. 15. 14:35

🎯 분석 목표

  • 연체 여부(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, 연체 횟수)들을 시각화함으로써
    연체와 관련된 변수들을 감으로 파악할 수 있었음
  • 상관관계 행렬을 통해 변수 간 중복 여부, 연관도도 확인