Programming/Python

[EDA] 결측 데이터 분포 탐색 | missingno pkg.

어쩌다통계 2022. 10. 19. 00:43
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)    # 변수 별 결측 비율

missingno 주요 함수 plot

왼쪽 결측 matrix에서 흰색이 결측 / 검은색이 관측된 데이터로 결측의 발생 여부가 특정 변수와 연관이 있는지 확인할 수 있습니다. 현재 train data는 변수간 연관관계는 보이지 않고 랜덤하게 발생하는 것처럼 보입니다.

오른쪽의 변수 별 결측 비율을 보면 100% 관측된 4개의 변수 이외에는 모두 20%정도는 결측이 발생합니다.

반응형