들어가기
데이터에 결측치가 존재할 경우 이를 제외하거나, 혹은 다른 값으로 대체할 방법을 생각해야 한다.
여러 대체 방법들에 대해서 알아보고 정리하고자 한다.
대체하지 않고 삭제하는 경우도 존재.
물론 결측치를 대체하지 않고 삭제를 할 수도 있다. 결측치가 많지 않을 경우에는 생각해 볼 수 있는 방법이나, 몇 가지 문제가 존재한다.
- Data Sample 축소
- 결측치 제거로 인한 편향 발생 가능성 증가
이 중 우선, 단일 대체법에 대해 알아보려고 한다.
단일 대체법
방법 1 ] 평균 대체법
어떤 변수의 결측값을, 관측된 값의 평균값으로 대체하는 방법이다.
pandas에서는 쉽게 평균 대체를 진행할 수 있다.
# 각 열을 평균값으로 채우기
df.fillna(df.mean())
Remark. 평균 값이 아니어도, 다른 단일 값으로 대체할 수 있다. (예시 - 0, 기본 dummy 값, 기타 단일 값 등)
이 방법의 단점?
결측치 대신에 평균값을 넣기 때문에 변수에 대한 분산이 감소된다.
이에 따라, 상관계수 또한 꼬이거나, 분산에 대한 왜곡이 크게 발생할 수 있다.
방법 2 ] 회귀 대체법
결측치를 포함하는 변수를 종속 변수로, 나머지를 독립 변수로 하는 회귀식을 구성 후, 추정된 회귀식의 예측 값으로 결측 값을 대체한다.
이 방법에 대해서는 기본적으로 응답자에 결측치가 발생했더라도, 그 값이 응답자의 다른 응답 값들과 상관관계가 존재한다는 가정을 깔게 된다.
Remark. regression 방법에 일정 값을 더하여 최종 예측값으로 대측하는 방식을 사용할 수 있다.
이 방법의 단점?
회귀를 사용 했기에, bias가 더 잘 발생할 수있게 된다.
방법 3 ] Hot deck 대체법
비슷한 성향을 가진 케이스의 값으로 결측값을 대체하게 된다. 그렇기 때문에, 결측값이 존재하는 변수가 가질 수 있는 값의 범위가 한정될 때 좋은 선택지가 될 수 있다.
여기서는, data의 분포는 고려하지 않고 유사한 응답자의 값을 임으로 추출하게 된다.
k-NN 등의 방법론을 활용하여, 진행하게 된다.! k-NN의 경우는 가장 가까운 데이터 k개의 평균치를 바탕으로 결측치를 채우게 된다.
Remark : 다중 대체법
단일 대체법의 경우, 가장 큰 단점이 대체된 값이 임의의 오차를 가지게 되므로, 실제 현상과 차이가 크다는 것을 알 수 있다. 따라서 단일 대체법을 여러번 실시하는 다중 대체법을 시도해볼 수 있다.
다중 대체법의 3단계
1 ) 각각의 결측치를 대체한 m개의 데이터셋을 준비한다.
2 ) m개의 완벽한 데이터 셋을 각각 원하는 기법으로 분석 후, 모수 추정치와 표준오차를 계산한다.
3 ) 각 데이터셋의 결과를 Rubin's rule에 의해 결합, 최종 결과를 도출한다.
Code
실습을 진행한 코드 내용은 다음과 같다.
'Archive > 데이터 분석 관련' 카테고리의 다른 글
[Data] Topic Modeling - LDA (0) | 2022.03.11 |
---|---|
[Data] MAB(Multi-Armed Bandits) 찍먹하기 (0) | 2022.03.04 |
[Data] PCA의 주성분 개수 결정 방법 (0) | 2022.02.17 |
[Data] 자기 조직화 지도 (Self-Organizing Map) 이란? - 개요잡기 (0) | 2022.02.13 |
[Data] Bayesian AB Test (0) | 2022.02.09 |