3-2. 결측값(결측치)

2019. 2. 14. 22:10

결측값(결측치) in R

  • NA(Not Available), 결측치라고 하며 값이 표기되지 않은 값.
  • R에서 [행,열] 중 행 인덱싱 자리에 is.na(dataframe) + sum(결측치 개수), mean(결측률) 을 얻을 수 있다. * pandas : df.isnull().sum() , mean()

결측값(결측치)의 종류

EDA를 하면서 결측치가 있는 칼럼을 + 시각화하여 Random(관깊칼럼X) / No random(관깊칼럼O-> 범주별 대치, 예측)을 판단해야한다.

  1. Random : 무작위로 정보가 없는 결측치, 다른변수별로 보면 결측비율도 달라진다. -> 삭제(전체or부분) or 조건부 대치 or 예측모형으로 해당변수 예측 모두가능
    ex> 몸무게 결측치, 남자<여자의 결측 가능성이 높다. -> 범주별 대치

  2. No random : 결측값 자체가 (민감한 정보라서) 패턴을 가짐 -> 관깊칼럼범주별 수치(평균/중앙값/최빈값)으로 대치
    ex> 고소득자와 저소득자의 연봉은 결측치가 될 확률이 높다 -> 관계 깊은 칼럼인 사는곳별 평균/중앙값/최빈값 or예측값으로 대치

결측치를 탐색하는 방법 2가지 (표+시각화)

  1. : mice패키지 -> 결측치 1(아닌 것을 0)으로 표기한 뒤 x 갯수로 나타내어 조합별로도 확인가능
  2. 시각화
    1) cor(y) : 결측치 1(아닌 것을 0)에 대해 이변수간의 상관관계로서 결측치를 나타낸다.
    2) Vim패키지 : 결측치(빨간색)의 빈도 및 패턴을 시각화한다. 결측된 양을 scalebar로 나타내준다.

결측치 처리방법 3가지

  1. 삭제
    1) List Wise Deletion : row가 어느 한 칼럼(변수)라도 missing이면 삭제 -> 간단하지만, sample size가 떨어져 power가 낮아진다.
    2) Pair Wise Deletion : 관심있는 칼럼(변수)에 값이 있다면, 포함시킨다.

  2. 대치(Imputation)
    1) 최빈값(mode, qualitative) : 범주형에서 결측값이 발생시, 범주별 빈도가 가장 높은 값으로 대치한다. -> but bias가 많이 발생할 수 있다. ex> 남자, 여자 중에 남자의 빈도가 높다고 남자도 대치한다면, bias가 높아진다.
    2) 중앙값(median) : 숫자형(연속형)에서 결측값제외한 중앙값으로 대치방법
    3) 평균(mean) : 숫자형(연속형)에서 결측값제외한 평균으로 대치방법
    4) Similar case imputation : 조건부 대치
    5) Generalized Imputation : 회귀분석을 이용한 대치

  3. 예측모델(Prediction model)
    1) 결측값이 없는 칼럼(변수)들로 구성된 dataset으로 -> 결측값이 있는 칼럼을 예측하게 한다.
    2) 예측값으로 해당칼럼을 채워넣는다.


  4. 가장 흔히 쓰는 방법
    1) 하나라도 결측이 있는 변수 제외한 dataset생성
    2) imputation한 dataset 2개 정도 생성 (mean or median / regression / KNN 등으로)
    3) 1)과 2)의 dataset 3개에 대해서 결과값이 서로 일관성 있음을 보여준다. -> 결측대치방법이 senvitivity하지 않다는 것을 제시하는 것

결측값(결측치) 처리 가이드라인

  • 10% 미만: 삭제 or 대치
  • 10 ~ 20% : Hot deck(매년자료->해당년자료 추정) or regression or model based imputation
  • 20 ~ 50% 이상 : regression or model based imputation
  • 50% 이상 : 해당 칼럼(변수)자체 제거

결측값 삭제 or 대치의 한계점

  1. 삭제를 통해 n수가 달라진다 -> 집단의 특성이 달라질 수 있다. -> missing rate(10%미만)을 확인하고 삭제한다

  2. 대치는 틀린값으로 대체될 수 있다는 가능성이 항상 존재한다

+ Recent posts