현실의 데이터는 거의 항상 결측치를 포함합니다. 응답하지 않은 설문 문항, 끊긴 센서, 아무도 채우지 않은 필드 등이 그 예입니다. 이 빈 값을 어떻게 다루느냐가 이후 분석 결과 전체에 영향을 미칩니다.
Note
왜 결측치가 중요한가
- 편향: 결측된 행이 나머지와 다르면, 삭제하는 순간 표본이 왜곡됨
- 검정력 손실: 행이 줄면 추정이 약하고 덜 신뢰됨
- 모델 중단: 많은 알고리즘은 빈틈이 있으면 아예 실행되지 않음
결측의 세 가지 유형
MCAR — 완전 무작위 결측
결측이 어떤 값과도 무관합니다. 실수로 표본이 누락된 경우가 여기에 해당합니다. 일반적으로 삭제나 단순 대치가 허용됩니다.
MAR — 무작위 결측
결측이 관측된 다른 변수에 의존합니다. 예를 들어 고령 응답자가 소득 문항을 건너뛰는 경우입니다. 다른 변수 정보를 활용한 대치가 잘 통합니다.
MNAR — 비무작위 결측
결측이 결측값 자체에 의존합니다. 고소득자가 소득을 밝히지 않는 경우가 그 예입니다. 가장 어려운 경우로, 단순 삭제나 일반적인 대치만으로는 편향을 피하기 어렵습니다.
처리 방법
삭제
- 행 삭제(listwise): 결측이 적고 MCAR일 때 적절
- 열 삭제: 대부분 비어 있고 가치가 낮은 필드일 때
대치
- 평균 / 중앙값: 빠름. 중앙값은 왜도·이상치에 강함
- 최빈값: 범주형 필드에
- 보간, 전방/후방 채움: 순서형·시계열 데이터에
| 상황 | 권장 |
|---|---|
| 결측 적음, MCAR | 행 삭제(listwise) |
| 왜도가 큰 수치 변수 | 중앙값 대치 |
| 범주형 컬럼 | 최빈값 대치 |
| 시계열 | 보간 / 전방 채움 |
| 50% 이상 결측 컬럼 | 열 삭제 |
흔한 실수
Watch out
- 왜도가 큰 변수를 평균으로 대치하면 이상치 쪽으로 끌려가므로 중앙값을 쓰세요
- MNAR 결측을 평균으로 채우면 정작 보려던 신호가 가려짐
- 다른 행과 체계적으로 다른지 확인하지 않고 행을 삭제
SKARI 데이터 편집기의 결측치 처리
SKARI의 데이터 편집기는 이 과정을 시각적이고 재현 가능하게 만듭니다. 결측 히트맵으로 빈틈이 어디에 어떻게 모여 있는지 확인하고, 알맞은 방법으로 Fill Missing(결측 채우기)을 적용하세요.
- 결측 히트맵: 흩어진 결측(MCAR)인지 패턴이 있는 결측(MAR/MNAR)인지 파악
- Fill Missing: 평균·중앙값·최빈값·보간을 클릭으로 적용
- 모든 단계가 파이프라인 이력에 기록되어 정제가 재현 가능
Takeaway
자주 묻는 질문
평균과 중앙값 대치 중?
기본은 중앙값 — 이상치나 왜도에 끌려가지 않습니다. 대략 대칭인 데이터에서만 평균을 쓰세요.
행 삭제가 괜찮을 때도 있나요?
네, 결측이 적고 완전 무작위(MCAR)일 때. 삭제되는 행이 나머지와 체계적으로 다르지 않은지 먼저 확인하세요.
트리 모델은 결측을 처리하나요?
일부 구현(XGBoost, LightGBM, CatBoost)은 결측을 내부적으로 처리하지만, Random Forest나 Decision Tree는 구현에 따라 별도 대치가 필요할 수 있습니다. 명시적이고 기록으로 남는 대치가 대개 더 명확하고 안전합니다.
결론
결측치는 자동으로 지워버릴 골칫거리가 아니라 하나의 신호입니다. 왜 비었는지 진단하고, 그에 맞춰 삭제나 대치를 고르고, 테스트 세트는 끝까지 손대지 마세요.
Takeaway
이상치 탐지와 처리
깨끗한 데이터의 나머지 절반: Z-Score vs IQR
데이터 정규화 가이드
정제 후 변수를 올바르게 스케일링
SKARI로 시작하기
정제·스케일·군집을 한 번에 몇 분 만에