본문 바로가기
Archive/데이터 분석 관련

[Data] 결측치 처리 관련 (1)

by 다람이도토리 2024. 4. 10.
< 행동 데이터 분석 > 6장 관련 내용입니다.

들어가기

데이터 분석을 하다보면, 결측치는 피할 수 없습니다. 결측치를 처리할 때 무지성으로 평균값을 넣던가, 최빈값을 넣던가 혹은 결측치의 양이 매우 적다면 무시하고 지우는 것도 방법일 것입니다. 그러나 결측치를 생각 없이 처리하면 문제가 발생할 수 있습니다.

생각없이 결측치를 처리한다면?

금융 결제와 관련된 데이터를 처리한다고 하겠습니다. 어플 사용과 관련된 데이터가 있다고 가정합시다. 어플 사용 내역이 없을 경우, 당연히 해당 데이터는 결측치로 들어갈 것입니다. 이 데이터가 없는 행을 모두 삭제하면 어떻게 될까요? 
그렇게 될 경우 해당 데이터는 젊은 고객을 중심으로 편향될 것이기에 전체 고객을 대표한다고 함부로 말하기 어려울 것입니다. 즉, 편향된 데이터를 얻게 됩니다.  이러한 상황을 피하기 위해, 우리는 조금 더 조심스럽게 결측치 처리를 해야할 것입니다.

결측치 처리 여부 판단하기

변수 단위로 결측치 처리 여부를 판단해봅시다. 어떤 변수를 삭제해야 할까요?

삭제 판단하기 - 쉬운 방법

만일 특정 변수가 결측치가 많다고 삭제했는데 그 변수가 중요한 영향을 끼칠 변수라면 지워서는 안 되는 놈일 것입니다. 이를 판단하는 쉬운 전략은 다음과 같습니다.

(회귀 분석 기준)
- 결측치가 많은 행을 다음과 같이 대체합니다.
  (1) 처리하지 않는다. (그냥 지운다)
  (2) 최대값으로 대체한다.
  (3) 최솟값으로 대체한다.
- 3가지 데이터 셋을 만들어, 간단하게 회귀분석을 실행합니다. 혹은 분류 모델이 될 수도 있겠습니다.
- 만일 3가지의 결과에 큰 차이가 없다면,  특히 회귀분석의 경우 해당 변수의 회귀 계수가 큰 차이가 없다면 해당 변수는 지워도 무방할 것입니다. 

결측의 요인 - 루빈의 분류

루빈의 분류에 따른 결측 분류 요인은 다음과 같이 세 가지가 있습니다.

분류 설명
MCAR
(Missing Complely
at Random)
완전 무작위 결측
변수의 결측이 데이터 외부의 변수에만 영향을 받음, 즉 관찰되지 않은 무작위 요인에 의해서만 영향을 받음
MAR
(Missing at Random)
무작위 결측
누락된 변수는 특정 변수와 관련은 있지만 결과에는 영향을 주지 않는다.

MNAR
(Missing Not at Random)
무작위가 아닌 결측
특정 변수의 값이 자신의 결측에 영향을 주는 경우
(ex 바닐라 맛 선호도 결측 여부에 의해, 아이스크림 맛 선호도의 결측 여부가 갈린다)

따라서 우리는 결측치가 이 세가지 중 어떤 것이냐에 따라서 실제 처리를 다르게 해야함을 알 수 있습니다.
즉, 결측치가 어떤 유형인지에 대해 파악을 해야 한다는 의미입니다.

결측치 유형 판단하기 - 로지스틱 회귀분석

한 가지, 방법은 로지스틱 회귀분석을 사용합니다. 즉, 결측의 여부가 다른 변수들이나 자기 자신에 의해서 예측이 유의미하게 되는지를 보는 것입니다.

Case 1. 어떤 계수도 결측치 여부 파악에 유의미하지 않다면 -> MCAR로 취급하기
이 경우는, 결측이 무작위고 예측 가능하다라고 해석하는 것이 아니라, 현재 분석에 포함된 변수는 해당 변수의 결측과 상관 없다 라고 말하는 것입니다. 

Case 2. 유의미한 계수가 존재한다면 -> MAR이나 MNAR로 취급하기.
이 경우, 변수들관의 관계를 조금 더 따져봐야 합니다. 변수간의 연관성에 따라서 MNAR로 봐야 할 가능성이 더 높아집니다.