결측값의 시선이 느껴집니까?
결측치를 표현하는 NA
와 Null
의 차이는 지난주에 이미 다뤄보았죠? 오늘은 결측치를 통계학적으로 분류해 놓은 게 있는데 그 분류를 알아보도록 할게요. 약간 복잡하고 생소할 수 있으니 어렵다고 생각이 들면 오늘은 그냥 패스하셔도 됩니다😂 결측치는 크게 3가지로 분류할 수 있어요. MCAR와 MAR, 그리고 MNAR이죠. 지금부터 하나하나 차근차근히 살펴봅시다.
결측값 삼형제
엠카가 아닙니다. MCAR은 단어 뜻 그대로 완전히 무작위적으로 나타나는 결측치를 뜻해요. 변수의 종류, 변수의 값과 상관없이 데이터 셋 전반에 걸쳐서 등장하는 녀석이죠. 랜덤하게 등장하기 때문에 이 녀석들은 분석에 영향을 주지 않아요. 착한 친구들이죠. 그래서 이런 경우엔 다른걸로 대체하거나 아예 없애도 큰 문제가 되질 않습니다. 하지만 실제 데이터 셋에서 결측치가 MCAR인 경우는 거의 없다는 게 함정!
MAR은 결측치가 특정 변수와 관련되어 일어나지만 그 변수의 값하고는 관계가 없는 경우를 뜻해요. 예를 들어서 학업성취도 점수를 조사했다고 했을 때 학업 점수의 결측 여부가 소득수준과 관련이 있을 경우를 뜻하죠. 소득수준이 낮은 친구들이 학업성취도 점수 응답을 하지 않는 경우가 발견된 경우에는 MAR에 해당한다고 할 수 있어요. 소득수준이라는 정보가 있으니까 이 경우는 데이터를 대체 할 여지가 있겠죠.
MNAR은 누락된 결측치가 그 변수의 값과 관계가 있을 경우를 뜻합니다. 노인 우울증에 대한 설문조사를 할 경우 실제 우울증이 심한 노인은 우울하다고 대답하는 게 괴로워서 일부러 누락하는 경우가 있다고 해요. 이 경우 MNAR이라고 할 수 있어요. 소득조사를 생각해봐도 비슷한 경우가 있을겁니다. 엄청 부자이거나 엄청 가난한 사람들은 소득조사에 응답을 안하는 경우가 있죠. 이 경우도 MNAR입니다. 하지만 이때는 대체값을 뭘 넣어야 할지 머리가 아플거예요.
이론적으로 나눠두었지만 사실 이걸 구분하기는 쉽지 않아요. 딱 떨어지는 경우도 없고... 실제로 MCAR과 MAR을 구분하기는 쉽지 않죠. 수많은 변수들과의 관계를 다 파악하고 있어야하니까요(물론 결측치의 성격을 확인해주는 테스트나 관련 패키지가 있긴 합니다). 그러다보니 통계적으로는 결측값을 MAR이라고 가정하고 분석에 임하는 경우가 많다고 합니다.
결측값의 성격에 따라 없애도 되는 경우가 있고 대체를 해야하는 게 달라집니다. 대체하는 경우 평균과 중위값 등을 사용하는데 전체의 평균과 중위값을 쓰기도 하고 KNN을 활용한 평균을 쓰기도 합니다. 깊이 들어가면 더 복잡해지니😂 더 알고 싶은 분은 구글신에게 검색을 해보세요. 오늘은 여기까지 하겠습니다. 다음주까지 안뇽~!