공든탑앱 열기

결측값 처리

빅데이터분석기사 · 데이터 정제 · 약 11분

쉽게 말하면

설문지에서 몇 사람이 나이 칸을 비워 두면 그 빈칸이 결측값이에요. 빈칸이 있는 사람을 모두 빼면 간단하지만 남는 사람이 줄어요. 평균 같은 값으로 채우면 사람 수는 그대로지만 진짜 값이 아니라서 결과가 조금 비뚤어질 수 있어요. 빈칸을 0으로 채우면 평균이 엉뚱하게 작아지니 안 돼요.

시험용 정의

결측값은 수집 과정에서 빠져 비어 있는 값으로, R 에서는 NA 로 표시한다. 처리 방법은 크게 둘이다. 완전 분석법(Complete Case)은 결측값이 하나라도 있는 행을 지우고 분석해 간단하지만 표본이 줄어 효율성이 떨어지고 결측이 무작위가 아니면 결과가 치우친다. 대치법(Imputation)은 빈칸을 추정값으로 채워 표본 수를 유지하는 방법으로, 관측값의 평균으로 채우는 평균 대치법(비조건부, 회귀식으로 예측하면 조건부), 비슷한 다른 응답자 값으로 채우는 단순확률 대치법(Hot-deck 등), 여러 번 대치해 결과를 합치는 다중 대치법(대치 → 분석 → 결합)이 있다. 대치해도 진짜 값은 아니므로 편향이 생길 수 있다.

비유로 이해하기

단체 사진에서 눈 감은 사람 처리다. 눈 감은 사람을 모두 잘라 내면(완전 분석) 깔끔하지만 사람이 줄고, 평균 얼굴로 합성하면(평균 대치) 인원은 그대로지만 모두 비슷해 보인다(분산 감소). 여러 장을 합성해 보고 종합하면(다중 대치) 더 믿을 만하다. 빈자리에 아무 사진도 안 넣고 검은 칸(0)을 두면 사진이 망가진다.

자세히

먼저 알아 둘 말

말뜻
결측값비어 있는 값. R 의 NA
대치 (imputation)빈칸을 추정한 값으로 채우는 것
효율성같은 정확도를 얻는 데 필요한 표본이 적을수록 좋다. 행을 지우면 떨어진다
편향결과가 한쪽으로 치우치는 것

처리 방법 비교

방법어떻게장점단점
완전 분석법결측 있는 행 삭제간단표본 감소, 효율성 저하, 무작위 결측이 아니면 편향
평균 대치법관측값 평균으로 채움 (조건부는 회귀로 예측)표본 수 유지분산이 작아지고 편향 가능
단순확률 대치법비슷한 응답자 값으로 채움 (Hot-deck, 최근접 이웃)평균 대치보다 분포를 덜 왜곡추정량 표준오차 계산이 어려움
다중 대치법여러 번 대치 → 각각 분석 → 결과 결합대치의 불확실성 반영계산이 많음

결측이 생기는 방식

유형뜻예
완전 무작위 결측 (MCAR)결측이 어떤 변수와도 관계없이 생김설문지 일부가 물에 젖음
무작위 결측 (MAR)결측이 다른 관측 변수와는 관계있지만 자기 값과는 무관젊은 층이 소득 칸을 더 자주 비움
비무작위 결측 (MNAR)결측이 그 값 자체와 관계있음소득이 높은 사람일수록 소득을 비움

확률로 따지는 삭제 비율

두 변수가 서로 독립으로 각각 10% 비어 있을 때 하나라도 빈 행의 비율은 '둘 다 차 있는 비율'을 1에서 뺀다. 1 - 0.9 × 0.9 = 0.19, 19%다. 10% + 10% = 20% 로 더하면 둘 다 빈 1% 를 두 번 센 것이다.

R 에서 결측값 다루기

식뜻
is.na(x)원소마다 NA 인지 TRUE·FALSE
sum(is.na(x))NA 개수
mean(x, na.rm = TRUE)NA 빼고 평균
na.omit(df)NA 있는 행 삭제 (완전 분석)
complete.cases(df)행마다 빈칸이 없으면 TRUE

시험에 이렇게 나와요

확인 문제

Q1. 키 데이터 160, (빈칸), 172, 168 의 평균을 구하려고 빈칸을 0으로 채웠다. 어떻게 될까?

  1. 평균이 실제보다 크게 작아진다
  2. 평균이 실제보다 커진다
  3. 평균이 정확해진다
  4. 평균에는 영향이 없다
정답 보기

1번 평균이 실제보다 크게 작아진다

0 은 실제 키가 아닌데 계산에 들어가 평균을 끌어내린다. (160+0+172+168)/4 = 125 로 엉뚱한 값이 된다. 결측값은 빼고 계산하거나 그럴듯한 값으로 대치한다.

Q2. 결측값 처리에 대한 설명으로 옳은 것은?

  1. 대치하면 편향이 절대 생기지 않는다
  2. 대치는 표본 수를 유지해 데이터 손실을 줄이려는 것이다
  3. 결측값은 평균으로만 대치해야 한다
  4. 결측값은 언제나 삭제가 가장 좋다
정답 보기

2번 대치는 표본 수를 유지해 데이터 손실을 줄이려는 것이다

대치는 표본을 지키려는 것이지만 편향이 생길 수 있다.

Q3. 두 변수가 서로 독립으로 각각 20% 의 결측값을 가질 때, 하나라도 결측인 행을 모두 지우면 지워지는 비율은?

  1. 40%
  2. 36%
  3. 20%
  4. 4%
정답 보기

2번 36%

1 - 0.8 × 0.8 = 0.36.

Q4. 결측값이 있는 행을 지우고 분석하는 방법은?

  1. 평균 대치법
  2. 다중 대치법
  3. 완전 분석법
  4. 단순확률 대치법
정답 보기

3번 완전 분석법

완전 분석법(Complete Case)이다.

Q5. 다중 대치법의 단계 순서로 옳은 것은?

  1. 대치 → 분석 → 결합
  2. 대치 → 결합 → 분석
  3. 결합 → 대치 → 분석
  4. 분석 → 대치 → 결합
정답 보기

1번 대치 → 분석 → 결합

여러 번 대치하고, 각각 분석하고, 결과를 합친다.

Q6. R 에서 x <- c(4, NA, 8) 일 때 mean(x, na.rm = TRUE) 의 결과는?

  1. 6
  2. 4
  3. 12
  4. NA
정답 보기

1번 6

NA 를 빼고 (4 + 8) / 2 = 6.

Q7. 평균 대치법의 단점으로 알맞은 것은?

  1. 계산이 매우 복잡하다
  2. 변수의 분산이 실제보다 작아질 수 있다
  3. 표본 수가 줄어든다
  4. 결측값을 그대로 남긴다
정답 보기

2번 변수의 분산이 실제보다 작아질 수 있다

같은 값으로 여러 칸을 채워 퍼짐이 줄어든다.

헷갈리기 쉬운 O·X

결측값을 모두 0으로 바꾸고 평균을 구하는 것이 일반적인 처리 방법이다.

정답 보기

X 0이 실제 값처럼 계산에 들어가 평균이 왜곡된다.

완전 분석법은 결측값을 평균으로 대치해 모든 데이터를 그대로 쓰는 방법이다.

정답 보기

X 완전 분석법은 결측 행을 지운다. 평균으로 채우는 것은 평균 대치법.

R 에서 NA 가 섞인 벡터를 mean 에 그냥 넣으면 결과는 NA 다.

정답 보기

O

함께 보면 좋은 개념