결측 데이터 (Missing Data)¶
개요¶
결측 데이터(Missing Data)는 실제 데이터셋에서 거의 항상 존재하는 문제이다. 결측이 발생하는 메커니즘을 이해하고, 적절한 전략을 선택하는 것이 모델 성능과 분석의 신뢰성에 직접적인 영향을 미친다. 무작정 행을 삭제하거나 평균으로 대체하는 것은 심각한 편향이나 정보 손실을 유발할 수 있다.
핵심 개념¶
1. 결측 데이터 메커니즘¶
| 메커니즘 | 영문 | 정의 | 예시 | 처리 난이도 |
|---|---|---|---|---|
| MCAR | Missing Completely At Random | 결측이 완전히 랜덤 | 설문지 일부 페이지 누락 | 쉬움 |
| MAR | Missing At Random | 다른 관측 변수에 의존 | 남성이 체중을 덜 기입 | 중간 |
| MNAR | Missing Not At Random | 결측값 자체에 의존 | 고소득자가 소득 미기입 | 어려움 |
진단 방법: - Little's MCAR test: MCAR 여부 통계 검정 - 결측 패턴 시각화: missingno 라이브러리 - 결측 여부와 다른 변수 간 상관관계 분석
2. 대체 전략 (Imputation Strategies)¶
단순 대체 (Simple Imputation)¶
| 방법 | 적합한 경우 | 주의점 |
|---|---|---|
| 평균 (Mean) | MCAR, 정규 분포 | 분포의 분산 축소, 왜곡 |
| 중앙값 (Median) | 왜도 있는 분포, 이상치 | 분포 왜곡 |
| 최빈값 (Mode) | 범주형 변수 | 빈도 편향 |
| 상수 (0 또는 -999) | 결측 자체가 의미 | 모델이 특수값으로 학습 |
고급 대체¶
| 방법 | 원리 | 장점 | 단점 |
|---|---|---|---|
| KNN Imputation | k개 유사 샘플의 가중 평균 | 지역적 패턴 반영 | 계산 비용, 차원의 저주 |
| MICE (Iterative) | 각 변수를 다른 변수의 함수로 반복 대체 | 변수 간 관계 반영 | 수렴 불확실, 느림 |
| Model-based | 결측을 예측 문제로 접근 (RF, 회귀) | 비선형 관계 포착 | 구현 복잡 |
트리 모델의 내장 처리¶
XGBoost, LightGBM은 결측값을 직접 처리한다. 학습 중 결측이 있는 샘플을 왼쪽 또는 오른쪽 분기 중 최적 방향으로 보낸다.
3. 삭제 전략¶
행 삭제 (Listwise Deletion): - 결측이 있는 행을 제거 - MCAR에서만 편향 없음 - 데이터가 충분하고 결측 비율이 낮을 때만 적합
열 삭제: - 결측 비율이 매우 높은 특성 제거 (보통 80% 이상) - 남은 정보가 충분한지 확인
결측 지표 (Missingness Indicator): - 결측 여부 자체를 이진 특성(0/1)으로 추가 - "이 값이 결측이라는 사실" 자체가 예측에 유용할 수 있음
상세 내용¶
결측 처리 워크플로우¶
flowchart TD
A["결측 데이터 발견"] --> B["결측 패턴 분석<br>비율, 분포, 상관관계"]
B --> C{"결측 비율?"}
C -->|"< 5%"| D["단순 대체 또는 삭제"]
C -->|"5~30%"| E["고급 대체<br>(MICE, KNN)"]
C -->|"30~80%"| F["대체 + 결측 지표"]
C -->|"> 80%"| G["열 삭제 고려"]
D --> H{"모델 유형?"}
E --> H
F --> H
H -->|"트리 모델"| I["내장 처리 활용<br>결측 지표 추가"]
H -->|"선형/신경망"| J["반드시 대체 필요"] MICE (Multiple Imputation by Chained Equations) 상세¶
- 각 결측 변수에 초기값(예: 평균) 대입
- 변수 \(X_1\)의 결측을 나머지 변수로 예측 (회귀)
- 변수 \(X_2\)의 결측을 나머지 변수로 예측 (업데이트된 \(X_1\) 포함)
- 모든 변수에 대해 반복
- 수렴할 때까지 2~4 반복
핵심: 변수 간의 상관관계를 보존하면서 결측을 대체한다.
언제 사용하는가¶
| 상황 | 추천 전략 |
|---|---|
| 결측 < 5%, MCAR | 단순 대체 또는 삭제 |
| 결측 5~30%, 변수 간 관계 중요 | MICE, KNN Imputation |
| 트리 모델 사용 | 내장 처리 + 결측 지표 |
| MNAR 의심 | 도메인 전문가 상담, 결측 지표 필수 |
| 결측 자체가 정보 | 결측 지표 특성 추가 |
흔한 오해와 함정¶
-
Listwise deletion의 남용: 결측 비율이 높을 때 행을 무작정 삭제하면 데이터의 대량 손실과 편향이 발생한다. MAR/MNAR에서는 특히 위험하다.
-
평균 대체가 무해하다: 평균 대체는 분포의 분산을 축소하고, 변수 간 상관관계를 왜곡한다. 결측 비율이 높을수록 문제가 심각해진다.
-
결측 처리를 전체 데이터에서 수행: 대체 값(평균, KNN 등)을 전체 데이터에서 계산하면 데이터 누수가 발생한다. 학습 데이터에서만 계산해야 한다.
-
MCAR을 가정: 대부분의 실제 데이터에서 결측은 MCAR이 아니다. 결측 메커니즘을 검증하지 않으면 잘못된 처리가 편향된 결과를 초래한다.
-
결측의 정보적 가치 무시: "이 환자가 검사를 받지 않았다"는 사실 자체가 건강 상태에 대한 정보일 수 있다. 결측 지표 특성의 추가를 항상 고려하라.
다른 주제와의 연결¶
- 특성 공학: 결측 처리는 특성 공학의 첫 단계
- 데이터 누수: 결측 대체 시 학습/테스트 분리 필수
- ML 파이프라인 설계: 결측 처리를 파이프라인에 통합
- 흔한 실수: 부적절한 결측 처리
- 불균형 데이터: 결측과 불균형이 동시에 존재하는 경우