결측 데이터 (Missing Data)
핵심 요약: 빠진 데이터를 어떻게 처리하느냐가 모델 성능을 좌우한다. 핵심은 왜 빠졌는지를 파악하는 것 — 무작위로 빠진 것과 의도적으로 빠진 것은 처리 방법이 완전히 다르다.
초보자를 위한 핵심 용어
섹션 제목: “초보자를 위한 핵심 용어”- 결측(Missing Data): 데이터셋에서 값이 비어 있는 셀. 엑셀에서 빈 칸, pandas에서 NaN으로 표시된다.
- MCAR / MAR / MNAR: 결측이 발생한 이유를 분류하는 세 가지 메커니즘. 완전 랜덤(MCAR), 다른 변수에 의존(MAR), 결측값 자체에 의존(MNAR).
- 대체(Imputation): 결측된 값을 추정하여 채워 넣는 것. 평균 대체, KNN 대체 등 다양한 방법이 있다.
- 결측 지표(Missingness Indicator): “이 값이 비어 있었다”는 사실 자체를 0/1로 기록한 새 특성. 결측 여부가 예측에 도움이 될 수 있다.
숫자로 보는 결측 처리의 차이
섹션 제목: “숫자로 보는 결측 처리의 차이”병원 데이터에서 “검사 수치” 열의 30%가 결측이라고 하자:
| 처리 방법 | 결과 |
|---|---|
| 행 삭제 (Listwise Deletion) | 학습 데이터 30% 손실 → 정확도 74% |
| 전체 평균으로 대체 | 분포 왜곡 → 정확도 79% |
| 성별/연령대별 중앙값 대체 | 그룹 특성 반영 → 정확도 84% |
| MICE (반복 다중 대체) | 변수 간 관계 보존 → 정확도 87% |
“검사를 받지 않았다”는 사실 자체가 건강 상태의 단서일 수 있으므로, 결측 지표를 추가하면 추가로 1~2%p 향상되는 경우가 많다.
결측 데이터(Missing Data)는 실제 데이터셋에서 거의 항상 존재하는 문제이다. 결측이 발생하는 메커니즘을 이해하고, 적절한 전략을 선택하는 것이 모델 성능과 분석의 신뢰성에 직접적인 영향을 미친다. 무작정 행을 삭제하거나 평균으로 대체하는 것은 심각한 편향이나 정보 손실을 유발할 수 있다.
비유: 결측 데이터는 퍼즐의 빠진 조각과 같다. 빠진 조각 자체보다 왜 빠졌는지가 훨씬 중요하다. 바람에 날아간 것(MCAR)인지, 누군가 일부러 숨긴 것(MNAR)인지에 따라 퍼즐을 완성하는 전략이 완전히 달라진다.
탄생 배경
섹션 제목: “탄생 배경”결측 데이터를 체계적으로 다루는 이론적 프레임워크는 Roderick Little과 Donald Rubin이 1987년에 출간한 저서 *“Statistical Analysis with Missing Data”*에서 확립되었다. 이 책에서 Little과 Rubin은 결측 메커니즘을 MCAR, MAR, MNAR의 세 가지로 분류하는 체계를 제안했으며, 이 분류는 오늘날까지 결측 데이터 처리의 근간이 되고 있다.
이 분류 체계가 혁신적이었던 이유는, 결측을 단순히 “빠진 값”으로 보는 것이 아니라 결측이 발생한 메커니즘에 따라 적절한 처리 방법이 완전히 달라진다는 점을 수학적으로 증명했기 때문이다. 이전에는 대부분의 연구자가 결측 행을 삭제(listwise deletion)하거나 평균으로 대체하는 단순한 방법만 사용했지만, Little-Rubin 프레임워크 이후 MICE(Multiple Imputation by Chained Equations)와 같은 정교한 대체 기법이 발전할 수 있는 이론적 토대가 마련되었다.
핵심 개념
섹션 제목: “핵심 개념”1. 결측 데이터 메커니즘
섹션 제목: “1. 결측 데이터 메커니즘”| 메커니즘 | 영문 | 정의 | 예시 | 처리 난이도 |
|---|---|---|---|---|
| MCAR | Missing Completely At Random | 결측이 완전히 랜덤 | 설문지 일부 페이지 누락 | 쉬움 |
| MAR | Missing At Random | 다른 관측 변수에 의존 | 남성이 체중을 덜 기입 | 중간 |
| MNAR | Missing Not At Random | 결측값 자체에 의존 | 고소득자가 소득 미기입 | 어려움 |
진단 방법:
- Little’s MCAR test: MCAR 여부 통계 검정
- 결측 패턴 시각화: missingno 라이브러리
- 결측 여부와 다른 변수 간 상관관계 분석
2. 대체 전략 (Imputation Strategies)
섹션 제목: “2. 대체 전략 (Imputation Strategies)”단순 대체 (Simple Imputation)
섹션 제목: “단순 대체 (Simple Imputation)”| 방법 | 적합한 경우 | 주의점 |
|---|---|---|
| 평균 (Mean) | MCAR, 정규 분포 | 분포의 분산 축소, 왜곡 |
| 중앙값 (Median) | 왜도 있는 분포, 이상치 | 분포 왜곡 |
| 최빈값 (Mode) | 범주형 변수 | 빈도 편향 |
| 상수 (0 또는 -999) | 결측 자체가 의미 | 모델이 특수값으로 학습 |
고급 대체
섹션 제목: “고급 대체”| 방법 | 원리 | 장점 | 단점 |
|---|---|---|---|
| KNN Imputation | k개 유사 샘플의 가중 평균 | 지역적 패턴 반영 | 계산 비용, 차원의 저주 |
| MICE (Iterative) | 각 변수를 다른 변수의 함수로 반복 대체 | 변수 간 관계 반영 | 수렴 불확실, 느림 |
| Model-based | 결측을 예측 문제로 접근 (RF, 회귀) | 비선형 관계 포착 | 구현 복잡 |
트리 모델의 내장 처리
섹션 제목: “트리 모델의 내장 처리”XGBoost, LightGBM은 결측값을 직접 처리한다. 학습 중 결측이 있는 샘플을 왼쪽 또는 오른쪽 분기 중 최적 방향으로 보낸다.
3. 삭제 전략
섹션 제목: “3. 삭제 전략”행 삭제 (Listwise Deletion):
- 결측이 있는 행을 제거
- MCAR에서만 편향 없음
- 데이터가 충분하고 결측 비율이 낮을 때만 적합
열 삭제:
- 결측 비율이 매우 높은 특성 제거 (보통 80% 이상)
- 남은 정보가 충분한지 확인
결측 지표 (Missingness Indicator):
- 결측 여부 자체를 이진 특성(0/1)으로 추가
- “이 값이 결측이라는 사실” 자체가 예측에 유용할 수 있음
상세 내용
섹션 제목: “상세 내용”결측 처리 워크플로우
섹션 제목: “결측 처리 워크플로우”MICE (Multiple Imputation by Chained Equations) 상세
섹션 제목: “MICE (Multiple Imputation by Chained Equations) 상세”- 각 결측 변수에 초기값(예: 평균) 대입
- 변수 의 결측을 나머지 변수로 예측 (회귀)
- 변수 의 결측을 나머지 변수로 예측 (업데이트된 포함)
- 모든 변수에 대해 반복
- 수렴할 때까지 2~4 반복
핵심: 변수 간의 상관관계를 보존하면서 결측을 대체한다.
언제 사용하는가
섹션 제목: “언제 사용하는가”| 상황 | 추천 전략 |
|---|---|
| 결측 < 5%, MCAR | 단순 대체 또는 삭제 |
| 결측 5~30%, 변수 간 관계 중요 | MICE, KNN Imputation |
| 트리 모델 사용 | 내장 처리 + 결측 지표 |
| MNAR 의심 | 도메인 전문가 상담, 결측 지표 필수 |
| 결측 자체가 정보 | 결측 지표 특성 추가 |
실전 사례
섹션 제목: “실전 사례”Titanic 데이터셋: 결측 처리가 생존 예측을 바꾸다
섹션 제목: “Titanic 데이터셋: 결측 처리가 생존 예측을 바꾸다”Kaggle의 대표적 입문 데이터셋인 Titanic 생존 예측에서, Age(나이) 변수의 결측 비율은 약 20%에 달한다. 이 결측을 어떻게 처리하느냐에 따라 예측 정확도가 최대 10%p까지 변동한 사례가 보고되었다:
- 단순 평균 대체: 전체 평균 나이(약 29.7세)로 대체하면, 어린이(생존율 높음)와 노인(생존율 낮음)의 구분이 무너져 정확도가 하락했다
- Listwise deletion: 결측 행을 삭제하면 학습 데이터의 20%가 손실되어 모델이 과소적합(underfitting)되었다
- 그룹별 중앙값 대체: 성별(Sex)과 객실 등급(Pclass)별 나이 중앙값으로 대체하면, “1등석 여성”과 “3등석 남성”의 나이 분포 차이를 반영하여 정확도가 유의미하게 개선되었다
- MICE 적용: 다른 변수(요금, 동반 가족 수 등)를 활용한 반복 대체로 가장 높은 정확도를 달성했다
이 사례는 결측 메커니즘을 이해하지 않은 단순 처리가 모델 성능에 심각한 영향을 미칠 수 있음을 보여준다. Titanic의 Age 결측은 MAR에 가까웠다 — 3등석 승객의 나이 기록이 더 자주 누락되었기 때문이다.
흔한 오해와 함정
섹션 제목: “흔한 오해와 함정”-
Listwise deletion의 남용: 결측 비율이 높을 때 행을 무작정 삭제하면 데이터의 대량 손실과 편향이 발생한다. MAR/MNAR에서는 특히 위험하다.
-
평균 대체가 무해하다: 평균 대체는 분포의 분산을 축소하고, 변수 간 상관관계를 왜곡한다. 결측 비율이 높을수록 문제가 심각해진다.
-
결측 처리를 전체 데이터에서 수행: 대체 값(평균, KNN 등)을 전체 데이터에서 계산하면 데이터 누수가 발생한다. 학습 데이터에서만 계산해야 한다.
-
MCAR을 가정: 대부분의 실제 데이터에서 결측은 MCAR이 아니다. 결측 메커니즘을 검증하지 않으면 잘못된 처리가 편향된 결과를 초래한다.
-
결측의 정보적 가치 무시: “이 환자가 검사를 받지 않았다”는 사실 자체가 건강 상태에 대한 정보일 수 있다. 결측 지표 특성의 추가를 항상 고려하라.
다른 주제와의 연결
섹션 제목: “다른 주제와의 연결”- 특성 공학: 결측 처리는 특성 공학의 첫 단계
- 데이터 누수: 결측 대체 시 학습/테스트 분리 필수
- ML 파이프라인 설계: 결측 처리를 파이프라인에 통합
- 흔한 실수: 부적절한 결측 처리
- 불균형 데이터: 결측과 불균형이 동시에 존재하는 경우