본문 바로가기

R_statistics/Rs_basic

[통계] 결측값의 종류와 처리 방법

오늘의 주제는 통계 분석을 하는 사람의 가장 큰 고민거리 중 하나인 결측값에 대한 내용입니다.
R에서 실제로 결측값을 처리하는 방법에 대한 포스팅은 추후에 한번 하도록 하겠으며, 
오늘은 결측값에 대한 기본적인 포스팅을 해보고자 합니다. 

너무 복잡하면 읽기 싫으시니, 개념을 잡는 방식으로 간략히 포스팅하겠습니다.

1. 결측값, NA 의 종류

  MCAR, Missing completely at random
  MAR, Missing at random
  MNAR, Missing not at random

  위의 3가지로 나눌 수 있습니다.
  종류에 따라 갖게 되는 성격이 다르기 때문에,
  데이터 전처리에서 어떠한 방식으로 결측값을 처리할지 결정하기 위해서는 우선 이 종류를 파악해야합니다. 

  MCAR : 결측값의 발생이 다른 변수들과 아무런 상관이 없는 경우,
           e.g. 전산오류
  MAR : 결측값의 발생이 다른 변수에 따라 조건부로 발생하는 경우,
           e.g. 남성들이 특정 설문에 응답하지 않는 경우
  MNAR : 위의 두가지 상황이 아닌 경우가 모두 해당.
           e.g. 우울감이 심한 사람이 우울감 때문에 설문에 응답하지 않은 경우 


2. 결측값 처리 방법

  Litewise deletion, 하나의 값이라도 누락되면 전체 레코드를 삭제하는 방식
  Pairwise deletion, 해당 분석에 사용되는 변수들에서만 결측값을 삭제하는 방식
  Simple imputation, 특정 대표값으로 결측값을 대체하는 방식 
  Multiple imputation, 여러기법을 이용하여 추정된 값을 결측값으로 대체하는 방식

3. 결론

  MCAR 이면서 sample size 가 충분하다면 litewise deletion 으로 가능하지만, 
  복잡합 data 이면서 MAR or MNAR 이라면 multiple imputation 이 method of choice 라고 생각하시면 되겠습니다.

  하지만 앞서 말했듯이, 무조건 어떠한 특정 방식으로 처리하는 것은 아니고, 
  결측값이 생기게 된 이유를 먼저 파악을 하고, 그에 맞는 방식을 선택해야겠습니다.

 

** 도움이 되셨다면, '공감 & 댓글' 부탁드립니다^^