지난주에 이어 이번 주도 전처리 과정에 대해 살펴봅시다. 오늘 다룰 주제는 결측값! 결측은 “없다, 모자라다”는 뜻을 가진 결(결핍, 결석, 결근에 사용되는 결입니다)과 “헤아리다, 재다”는 의미의 측(관측, 측정에 사용되는 측)이 만난 단어인데요, 글자 뜻 그대로 관측값이 없는 녀석들을 일컫는 말입니다. 측정과정에서의 에러값, 혹은 설문조사에서 응답하지 않은 질문들이 결측값에 속하는 녀석들이죠

혹시 통계청에서 제공하는 MDIS(마이크로데이터 통합서비스) 알고 계신가요? 예전에 모냥도 한 번 소개해 준 적이 있죠. 이곳에는 말 그대로 아주 마이크로한 데이터를 제공해주는 곳인데요 가계동향조사, 경제활동인구조사 같은 대국민 설문조사 데이터도 확인할 수 있어요. 답변을 하다보면 응답하지 않고 넘어간 질문도 다수 있을 겁니다. 그런 녀석들이 바로 결측값이 되겠죠.

결측값의 시선이 느껴집니까?

결측값의 시선이 느껴집니까?

R이나 Python을 하다보면 NANull 같은 녀석들을 보실 수 있을겁니다. 이 녀석들이 바로 결측값이죠. R에서는 NANull을 구분해서 사용하고 Python에서는 특별히 구분하지는 않고 NaN으로 표현됩니다. 이 녀석들의 의미는 다음과 같아요.

NA : Not Available / Null : Empty Object / NaN : Not a Number

NA는 우리가 이야기했던 결측값과 정확히 일치하는 개념입니다. 값이 입력되지 않았거나 관찰값이 존재하지 않거나. 하지만 Null은 약간 달라요. 현재 비어있는 값을 뜻합니다. 아직 정해지지 않는 데이터를 표현하는 개념인거죠. 이를테면 어떤 조건에 따라 맞으면 O, 그렇지 않으면 X를 넣어준다고 했을때 조건을 부여하기 전에는 아직 무엇도 들어가있지 않으니 그런 경우를 표현하는데 Null 을 쓰는 겁니다.

이런 결측값를 처리하는 방법은 딱 정해져 있지 않아요. 하지만 보통 이렇게 처리하죠.

<aside> 📌 1. 비어있는 데이터가 포함된 행은 모두 제거한다. 2. 비어있는 데이터를 다른 데이터로 대체한다.

</aside>

가지고 있는 관측값이 많다면 1번처럼 결측값이 포함된 녀석들을 다 지워버리면 됩니다. 하지만 관측값이 많지 않은 경우라면? 이 경우에는 결측값이 있다고 다 지우면 남아있는 샘플수가 너무 줄어들기 때문에 분석을 하는데 문제가 생길 수 있어요. 그래서 다른 데이터로 대체할 필요가 있죠. 어떠한 데이터로 대체하면 좋을까요? 이 역시 정답은 없습니다. 결측값에 0을 넣는게 의미상 맞는지, 혹은 평균이나 중앙값을 넣는게 맞는지를 분석가가 판단해야하는 거죠. 어떤 판단으로 결측값을 대체하는지는 다음주에~!