결측값은 자료에 종종 나타나는 현상이다. 이를 처리하는 방법에는 크게 3가지가 있다.
- 해당 레코드를 제외(삭제)한다.
- 해당 변수의 대표값(평균값 또는 확률값)으로 대체한다.
- 이웃 변수들과의 관계를 이용한 다중대치법을 사용한다.
그러나 결측값의 분포가 넓은 경우, 방법1은 통계적 타당성에 문제가 있으며, 방법2는 통계량의 표준오차가 과소추정되는 문제가 발생할 수 있다. 가장 효율적인 것은 방법3인 imputation이다. Rstudio에는 imputation을 자동으로 처리해 주는 여러 패키지가 있다. 여기서는 Amelia 패키지를 이용해 결측값을 처리해보았다.
원천 데이터 'freetrade'의 일부를 head(freedata)로 확인해본 결과 결측값이 빈번하게 확인된다.
m : 가상의 데이터셋을 몇 개 만들 것인가? (일반적으로 3~5개가 적당하며, 그 이상 만들지라도 효율성이 크게 저하되지 않음)
ts(time series) : 시계열 정보
cs(cross-sectional) : 분석에 포함 될 변수
a.out<-amelia(freetrade, m=5, ts="year", cs="country")
missmap(freetrade)
생성된 5개의 가상 데이터셋 중 하나를 save해서 데이터를 확인해보았다. 결측값이 추정량으로 대체된 것을 확인할 수 있다.
'Data Analysis' 카테고리의 다른 글
데이터 전처리 플랫폼 'AIMMO'에서 알바해보기! (0) | 2018.11.27 |
---|