728x90
데이터 분석을 하다 보면 fully 관측된 데이터를 받는 게 얼마나 감사하고 또 드물게 일어나는지 모두 잘 아실 텐데요.
저는 EDA 분석할 때 먼저 결측 데이터의 분포를 살펴보는 편입니다.
때로는 결측 값 자체로 어떠한 의미를 가지는 경우가 있기 때문이죠.
결측의 mechanism에는 4가지가 있습니다.
1. MCAR(missing completely at random) : 결측의 여부가 랜덤
2. MAR(missing at random) : 특정 변수의 결측 여부가 다른 변수와 관련
3. MNAR(missing not at random) : 특정 변수의 결측 여부가 다른 변수에 의해 결정
오늘은 Python 함수에 이런 결측의 분포를 쉽게 살펴보기 위한 missingno라는 패키지를 소개합니다.
import missingno as msno
msno.matrix(train) # 변수간 결측 분포
msno.bar(train) # 변수 별 결측 비율
왼쪽 결측 matrix에서 흰색이 결측 / 검은색이 관측된 데이터로 결측의 발생 여부가 특정 변수와 연관이 있는지 확인할 수 있습니다. 현재 train data는 변수간 연관관계는 보이지 않고 랜덤하게 발생하는 것처럼 보입니다.
오른쪽의 변수 별 결측 비율을 보면 100% 관측된 4개의 변수 이외에는 모두 20%정도는 결측이 발생합니다.
반응형
'Programming > Python' 카테고리의 다른 글
PyOD 라이브러리로 간단하게 이상치 탐지하기 (3) | 2022.10.19 |
---|---|
plotly와 dash로 만드는 python dashboard 기초 (0) | 2022.10.19 |
PyTorch란 무엇일까?! with GANomaly (0) | 2022.10.19 |
Pandas Cheat Sheet (0) | 2022.10.19 |
[EDA] density plot, correlation plot | seaborn (0) | 2022.10.19 |