Skip to Content
자격증빅데이터분석기사 필기09. 데이터 전처리 I: 결측치와 이상치 처리

이번 문서의 목표: 결측이 왜 생겼는지에 따라 처리 방법을 다르게 고를 수 있고, IQR과 z-score로 이상치를 손으로 판정하며, “이상치는 무조건 제거”가 왜 틀린 답인지 설명할 수 있게 된다.

왜 전처리가 2과목의 첫 항목인가

현실의 데이터는 깨끗하지 않습니다. 나이 열에 250이 있고, 소득 열의 3분의 1이 비어 있으며, 같은 고객이 두 번 들어 있습니다. 이 상태로 평균을 내면 그 평균은 아무것도 대표하지 못합니다.

전처리(preprocessing)는 분석에 쓸 수 있는 상태로 데이터를 다듬는 모든 작업입니다. 그중 가장 먼저 마주치는 두 문제가 결측치(빠진 값)와 이상치(튀는 값)입니다.

쉽게 말하면: 요리 전에 상한 재료를 골라내고, 빠진 재료를 어떻게 할지 정하는 일입니다.

시험에서 이 주제는 단순 정의보다 “이 상황에서 가장 적절한/부적절한 조치는?” 형태로 나옵니다. 그래서 이 편은 각 방법의 정의뿐 아니라 언제 쓰고 언제 쓰면 안 되는지를 함께 다룹니다.

1. 결측치란 무엇인가

결측치(missing value)는 누락되거나 관측되지 않은 값입니다. 표에서 비어 있는 칸이 결측입니다.

결측이 생기는 경로

  1. 응답 거부 — 설문에서 소득 문항에 답하지 않음
  2. 측정 실패 — 센서 고장으로 특정 시간대 값이 없음
  3. 해당 없음 — 미혼자의 배우자 나이처럼 애초에 존재하지 않는 값
  4. 시스템 오류 — 연동 실패로 일부 필드가 전달되지 않음
  5. 처리 중 발생 — 조인(결합) 과정에서 짝이 없어 빈칸이 생김

왜 경로를 따지는가: 경로에 따라 올바른 처리가 달라지기 때문입니다. “해당 없음”인 결측을 평균으로 채우면 존재하지 않는 사실을 만들어 내는 것입니다. 미혼자에게 배우자 나이 평균값 42세를 채워 넣는 것은 명백한 오류입니다.

결측을 탐지하고 표시하기

결측이 항상 빈칸으로 오지는 않습니다. 다음과 같은 위장된 결측을 반드시 확인해야 합니다.

위장 형태예시위험
특수 숫자나이 999, 소득 -1그대로 계산하면 평균이 크게 왜곡됨
문자열”없음”, “N/A”, “미상”, 공백 문자수치형 열이 문자형으로 읽혀 계산 불가
기본값날짜 1900-01-01실제 값처럼 보여 탐지되지 않음
0결측을 0으로 채워 둠실제 0과 구분되지 않음

가장 위험한 것은 마지막 줄입니다. 결측을 0으로 채워 두면 이후에는 그것이 결측이었는지 실제 0이었는지 영원히 알 수 없습니다. 그래서 결측은 결측으로 표시된 채 다음 단계로 넘겨야 합니다.

2. 결측 유형 — MCAR·MAR·MNAR

쉽게 말하면: 결측이 생긴 이유가 데이터와 관련이 있는가로 세 가지로 나눕니다.

이름이 비슷해서 헷갈리므로, 소득 설문 예시 하나로 셋을 모두 설명하겠습니다.

유형영어 원어소득 설문 예시
MCARMissing Completely At Random결측이 완전히 무작위로 발생설문지 일부가 우연히 인쇄가 번져 읽히지 않음
MARMissing At Random결측 여부가 관측된 다른 변수와 관련젊은 응답자일수록 소득 문항을 자주 건너뜀(나이는 관측됨)
MNARMissing Not At Random결측 여부가 결측된 값 자체와 관련소득이 아주 높은 사람일수록 소득을 밝히지 않음

세 유형을 구분하는 판정 질문

  1. 결측이 어떤 변수와도 관련이 없는가? → 그렇다면 MCAR
  2. 결측이 다른 관측된 변수(나이·지역 등)로 설명되는가? → 그렇다면 MAR
  3. 결측이 그 빠진 값 자체와 관련되는가? → 그렇다면 MNAR

왜 이 구분이 중요한가: 처리의 안전성이 달라지기 때문입니다.

유형결측 행을 그냥 삭제하면이유
MCAR편향은 없고 표본만 줄어듦남은 데이터가 여전히 전체를 대표
MAR다른 변수를 고려한 대치가 필요그냥 삭제하면 특정 집단이 과소 대표됨
MNAR어떤 방법으로도 위험빠진 값 자체가 원인이라 관측 데이터로 복원 불가

MNAR이 가장 어려운 이유: 고소득자가 소득을 밝히지 않는 상황에서, 관측된 소득만으로 평균을 내면 실제보다 낮은 평균이 나옵니다. 그런데 우리가 가진 데이터 안에는 “얼마나 낮게 나왔는지”를 알려 줄 정보가 없습니다. 데이터 바깥의 지식(예: 국세 통계)이 있어야 보정할 수 있습니다.

자주 틀리는 점: MAR의 “At Random”이라는 이름 때문에 “무작위니까 그냥 지워도 된다”고 오해하기 쉽습니다. MAR은 “다른 변수를 조건으로 하면 무작위”라는 뜻이지, 그냥 무작위라는 뜻이 아닙니다.

3. 결측 처리 방법

삭제

방법내용위험
목록별 삭제(listwise)결측이 하나라도 있는 행 전체를 제거표본이 크게 줄고, MCAR이 아니면 편향
쌍별 삭제(pairwise)계산에 필요한 변수만 있으면 그 계산에는 사용계산마다 표본 수가 달라져 결과 비교가 어려움
변수 삭제결측이 너무 많은 열 자체를 제거그 변수가 중요했다면 정보 손실

언제 삭제가 정당한가: 결측 비율이 매우 낮고(대략 5퍼센트 미만) MCAR로 볼 수 있을 때입니다. 결측이 40퍼센트인 열을 대치로 채우면, 그 열의 절반 가까이가 우리가 만들어 낸 값이 되어 분석 결과를 신뢰할 수 없습니다.

단순 대치

대상 변수대표적 대치값이유
수치형, 대칭 분포평균중심을 대표
수치형, 치우친 분포중앙값극단값에 끌리지 않음
범주형(명목)최빈값가장 자주 나타난 범주

기출 판정: “순서가 없는 고객 선호 색상 변수의 결측값을 하나의 대표 범주로 대체하려 한다. 가장 일반적인 통계량은?”의 답은 최빈값입니다. 색상은 명목형이므로 산술평균이나 중앙값을 계산할 수 없고, 표준편차는 애초에 대체값이 아니라 산포 지표입니다.

단순 대치의 부작용 — 반드시 알아야 할 것: 평균으로 채우면 그 변수의 분산이 작아집니다. 채워 넣은 값들이 모두 평균과 같아서 편차가 0이기 때문입니다.

작은 예로 확인해 봅시다. 원래 자료가 10, 20, 30, 40, 50이고 평균이 30일 때, 만약 뒤의 두 값이 결측이어서 평균 15로 채웠다면 어떻게 될까요? 먼저 관측된 값 10, 20으로 평균을 냅니다.

xˉ=10+202=15\bar{x} = \frac{10 + 20}{2} = 15

결측 세 개를 15로 채우면 자료는 10, 20, 15, 15, 15가 됩니다. 이 자료의 표본분산을 구해 봅시다.

편차는 각각 –5, 5, 0, 0, 0이고 제곱은 25, 25, 0, 0, 0입니다.

s2=25+25+0+0+051=504=12.5s^2 = \frac{25 + 25 + 0 + 0 + 0}{5 - 1} = \frac{50}{4} = 12.5

해석: 채운 값 세 개가 편차 0을 만들어 분산을 끌어내렸습니다. 실제 자료의 산포보다 작게 나오므로, 이 데이터로 계산한 신뢰구간은 실제보다 좁아지고 통계적 유의성이 과대평가됩니다. 평균 대치는 간편하지만 산포를 왜곡한다는 점이 이 방법의 근본적 한계입니다.

조건부·모형 기반 대치

  • 집단별 대치: 전체 평균 대신 비슷한 집단 안의 평균으로 채웁니다. 지역별·연령대별 소득 평균으로 채우면 전체 평균으로 채우는 것보다 훨씬 정확합니다. MAR 상황에 적합합니다
  • 회귀 대치: 다른 변수로 결측 변수를 예측하는 회귀모형을 만들어 예측값으로 채웁니다
  • KNN 대치: 결측이 있는 행과 가장 비슷한 이웃 행들의 값으로 채웁니다
  • 다중 대치(multiple imputation): 여러 개의 그럴듯한 값을 만들어 여러 데이터셋을 생성하고, 각각 분석한 뒤 결과를 합칩니다. 대치로 인한 불확실성까지 반영한다는 점에서 단순 대치보다 통계적으로 우수합니다

시계열 대치

시간 순서가 있는 데이터에서는 앞뒤 값의 정보를 쓸 수 있습니다.

방법내용
이전 값 채우기바로 앞 시점의 값으로 채움
선형 보간앞뒤 시점 값을 잇는 직선 위의 값으로 채움
이동평균주변 몇 개 시점의 평균으로 채움

선형 보간 계산 예시: 3월 값이 100, 4월이 결측, 5월이 140이라면

4월 추정값=100+1402=120\text{4월 추정값} = \frac{100 + 140}{2} = 120
  • 분자: 앞뒤 시점의 값
  • 분모 2: 두 값의 평균

결측 자체를 정보로 쓰기

결측 여부가 의미를 가질 때가 있습니다. “소득을 밝히지 않은 사람”이라는 사실 자체가 예측에 유용할 수 있습니다. 이때는 결측 표시 변수(missing indicator)를 하나 추가합니다. 소득 결측 여부를 0과 1로 나타내는 새 열을 만드는 것입니다.

언제 유용한가: MNAR이 의심될 때 특히 유용합니다. 결측의 원인을 모형이 학습할 수 있게 해 주기 때문입니다.

4. 이상치란 무엇인가

이상치(outlier)는 현실적으로 관측될 수 없거나, 다른 값들과 현저하게 동떨어진 값입니다.

예시성격
온도 300도, 나이 250세물리적으로 불가능 → 오류가 거의 확실
30대 소득 중 소득 3억가능하지만 드묾 → 진짜 값일 수 있음
강수량 300mm이례적이지만 실제 발생 가능

이 구분이 핵심입니다. 이상치에는 두 종류가 있습니다.

  • 오류로 인한 이상치: 입력 실수, 센서 고장, 단위 혼동. 이것은 고치거나 제거해야 합니다
  • 진짜 극단값: 실제로 존재하는 드문 사례. 이것은 함부로 제거하면 안 됩니다

쉽게 말하면: 이상치를 봤을 때 첫 질문은 “제거할까?”가 아니라 “이게 실제로 있을 수 있는 값인가?” 입니다.

5. 이상치 탐지 방법

사분위수(IQR) 기준 — 상자그림

02편·04편에서 다룬 계산을 여기서 완결합니다.

IQR=Q3Q1IQR = Q_3 - Q_1 하한 경계=Q11.5×IQR\text{하한 경계} = Q_1 - 1.5 \times IQR 상한 경계=Q3+1.5×IQR\text{상한 경계} = Q_3 + 1.5 \times IQR
  • Q1Q_1: 제1사분위수, 아래에서 25퍼센트 지점
  • Q3Q_3: 제3사분위수, 아래에서 75퍼센트 지점
  • IQRIQR: 가운데 50퍼센트의 폭
  • 1.51.5: 관례적인 배수. 프로그램이나 상황에 따라 3을 쓰기도 합니다

손계산 예시. 자료가 12, 15, 16, 18, 20, 22, 24, 28, 30, 62 (10개)라고 합시다.

1단계 — 사분위수 위치를 잡습니다. 정렬된 10개에서 아래 절반은 12, 15, 16, 18, 20이고 위 절반은 22, 24, 28, 30, 62입니다.

Q1=16Q_1 = 16 Q3=28Q_3 = 28

2단계 — IQR 계산

IQR=2816=12IQR = 28 - 16 = 12

3단계 — 경계 계산

하한=161.5×12=1618=2\text{하한} = 16 - 1.5 \times 12 = 16 - 18 = -2 상한=28+1.5×12=28+18=46\text{상한} = 28 + 1.5 \times 12 = 28 + 18 = 46

4단계 — 판정. 값 62는 상한 46을 넘으므로 이상치 후보입니다. 나머지 값들은 모두 경계 안에 있습니다.

해석: 62 하나가 이 자료의 최댓값이면서 다른 값들과 크게 떨어져 있습니다. 다만 이것이 “제거해야 할 값”이라는 뜻은 아직 아닙니다. 이 값이 무엇의 측정값인지, 실제로 가능한 값인지를 확인해야 합니다.

표준화 점수(z-score) 기준

z=xμσz = \frac{x - \mu}{\sigma}
  • zz: 표준화 점수. 평균에서 표준편차 몇 개만큼 떨어졌는지
  • xx: 관측값
  • μ\mu (뮤): 평균
  • σ\sigma (시그마): 표준편차

보통 z|z| 가 2 또는 3 이상이면 이상치 후보로 봅니다.

기출 그대로의 손계산. 온도 센서의 정상 측정값이 평균 50도, 표준편차 5도이고, 이번 측정값이 40도이며, z|z| 가 2 이상이면 경보를 울린다고 합시다.

z=40505=105=2z = \frac{40 - 50}{5} = \frac{-10}{5} = -2

해석: z=2z = -2 는 이 값이 평균보다 표준편차 2개만큼 낮다는 뜻입니다. 절댓값이 2이므로 기준 “2 이상”에 포함되어 경보가 울립니다. 그리고 부호가 음수이므로 하한 경보입니다.

여기서 틀리는 세 지점:

  • 부호를 놓침z=2z = 2 로 답해 상한 경보를 고르는 실수
  • 분모를 분산으로 씀 — 표준편차 5가 아니라 분산 25로 나누면 0.4-0.4 가 나옴
  • “2 이상”에 2가 포함되는지 — “이상”은 그 값을 포함하므로 경보가 울립니다

두 방법의 차이

기준전제강점약점
IQR없음 (순위 기반)분포 모양에 덜 민감매우 치우친 분포에서 정상값도 이상치로 잡힘
z-score대략 정규분포계산이 간단하고 해석이 직관적이상치가 평균과 표준편차를 오염시켜 탐지력이 떨어짐

z-score의 근본적 약점: 이상치를 찾으려고 계산하는 평균과 표준편차 자체가 그 이상치 때문에 이미 왜곡되어 있습니다. 아주 큰 값 하나가 표준편차를 크게 만들면, 정작 그 값의 z가 작아져 탐지되지 않는 역설이 생깁니다. 그래서 순위 기반인 IQR이 더 안정적입니다.

다변량 이상치

한 변수씩 보면 정상인데 조합이 이상한 경우가 있습니다. 키 190cm는 정상이고 몸무게 45kg도 정상이지만, 그 둘이 같은 사람의 값이면 이상합니다.

탐지 방법: 산점도(이변량), 마할라노비스 거리, 군집 기반 방법(DBSCAN에서 어느 군집에도 속하지 않는 점) 등이 있습니다. 다만 단변량 방법으로는 절대 잡히지 않는다는 점이 시험 포인트입니다. 4편에서 본 “산점도는 이변량 도구”라는 판정이 여기서도 그대로 적용됩니다.

6. 이상치 처리 전략 — 사례 판단형의 핵심

이상치를 발견했을 때 선택지는 넷입니다.

처리내용적절한 상황
수정원인을 확인해 올바른 값으로 고침입력 실수·단위 오류가 확인될 때
제거해당 관측치를 분석에서 제외명백한 오류이고 원래 값을 알 수 없을 때
대체경계값이나 대표값으로 바꿈극단값의 영향만 줄이고 싶을 때
유지그대로 두고 분석실제 가능한 값이며 그 자체가 중요할 때

”무조건 제거”가 왜 틀린 답인가

이상치 제거가 부적절한 대표 사례를 보겠습니다.

  • 부정거래 탐지: 이상하게 큰 결제 건이 바로 찾아내려는 대상입니다. 이상치를 제거하면 탐지할 것이 없어집니다
  • 설비 고장 예측: 이례적인 진동값이 고장의 전조입니다
  • 고액 고객 분석: 소득 3억인 고객은 오류가 아니라 VIP입니다

쉽게 말하면: 이상치가 곧 분석의 목적일 때가 있습니다.

시험에서의 판정 요령: “이상치를 발견하면 항상 제거한다”, “이상치는 분석에 방해되므로 우선 삭제한다” 같은 절대적 표현이 들어간 보기는 거의 언제나 오답입니다. 올바른 서술은 “원인을 확인한 뒤 분석 목적에 따라 처리 방법을 정한다” 입니다.

극단값의 영향을 줄이는 다른 방법

제거하지 않고도 영향을 줄일 수 있습니다.

방법내용
윈저화(winsorizing)경계 밖 값을 경계값으로 바꿈. 예를 들어 상위 1퍼센트를 99퍼센타일 값으로
로그 변환큰 값을 크게 압축해 분포를 대칭에 가깝게(12편)
구간화값을 구간으로 묶어 극단값의 영향을 없앰(12편)
강건한 통계량 사용평균 대신 중앙값, 표준편차 대신 IQR

해석: 마지막 방법이 특히 실용적입니다. 이상치를 건드리지 않고도, 극단값에 덜 흔들리는 통계량을 쓰면 요약값이 왜곡되지 않습니다. 02편에서 “평균은 극단값에 끌려가고 중앙값은 순서만 본다”고 한 성질이 여기서 쓰입니다.

7. 처리 순서와 기록

전처리 순서에도 원칙이 있습니다.

  1. 먼저 구조·형식 문제를 해결한다 — 파싱 오류, 자료형, 인코딩(9편)
  2. 위장된 결측을 정식 결측으로 표시한다 — 999, “N/A”를 결측으로 변환
  3. 이상치를 탐지하되, 곧바로 제거하지 않는다 — 원인 확인 먼저
  4. 결측을 처리한다 — 유형에 따라 삭제·대치·표시 변수
  5. 모든 처리 이력을 기록한다 — 무엇을 왜 어떻게 바꿨는지

왜 2번이 3번보다 먼저인가: 999가 결측으로 표시되지 않은 채 이상치 탐지를 하면, 999가 평균과 표준편차를 오염시켜 다른 정상값의 판정까지 망가집니다.

5번이 왜 중요한가: 9편에서 본 통합 원칙 중 “정제 이력을 기록해 재현 가능하게 한다”와 같은 이유입니다. 나중에 결과가 이상할 때, 어느 전처리 단계에서 문제가 생겼는지 추적할 수 있어야 합니다. 기록이 없으면 처음부터 다시 해야 합니다.

주의 — 데이터 누수: 대치에 쓰는 평균·중앙값은 학습 데이터에서만 계산해야 합니다. 전체 데이터의 평균으로 채운 뒤 학습·검증으로 나누면, 검증 데이터의 정보가 학습에 스며들어 성능이 부풀려집니다(17편의 데이터 누수).

핵심 정리

  • 결측 유형은 MCAR(완전 무작위), MAR(다른 관측 변수와 관련), MNAR(빠진 값 자체와 관련) 이며, MNAR은 관측 데이터만으로 보정할 수 없다.
  • 결측 처리는 삭제·단순 대치·조건부 대치·모형 기반 대치·시계열 보간·결측 표시 변수 추가가 있으며, 명목형은 최빈값으로 대치한다.
  • 평균 대치는 분산을 축소시켜 산포를 왜곡한다. 다중 대치는 대치의 불확실성까지 반영한다.
  • 이상치 탐지는 IQR 기준(Q11.5IQRQ_1 - 1.5 IQR, Q3+1.5IQRQ_3 + 1.5 IQR)과 z-score 기준(z2|z| \ge 2 또는 3)이 대표적이며, z-score는 이상치 자신이 평균·표준편차를 오염시키는 약점이 있다.
  • 이상치를 항상 제거한다는 서술은 오답이다. 원인을 확인한 뒤 수정·제거·대체·유지 중에서 분석 목적에 맞게 고른다.
  • 전처리는 구조 문제 → 위장 결측 표시 → 이상치 탐지 → 결측 처리 → 이력 기록 순으로 진행하며, 대치 통계량은 학습 데이터에서만 계산한다.

마무리 복습

문제 14지선다
정상 작동 중인 온도 센서의 측정값은 평균 50도, 표준편차 5도다. 이번 측정값이 40도이고 표준화 점수의 절댓값이 2 이상이면 경보를 울릴 때, 올바른 표준화 결과와 판정은?
문제 24지선다
순서가 없는 고객 선호 색상 변수의 결측값을 하나의 대표 범주로 대체하려 한다. 가장 일반적인 통계량은?
문제 34지선다
자료 12, 15, 16, 18, 20, 22, 24, 28, 30, 62에서 Q1이 16, Q3가 28일 때 1.5 IQR 규칙으로 판정한 결과로 옳은 것은?
문제 44지선다
결측 유형에 대한 설명으로 옳은 것은?
문제 54지선다
결측값을 해당 변수의 평균으로 대체할 때 발생하는 문제로 가장 적절한 것은?
문제 64지선다
이상치 처리에 대한 설명으로 가장 적절한 것은?
문제 74지선다
표준화 점수 방식의 이상치 탐지가 갖는 한계로 가장 적절한 것은?
문제 84지선다
결측 처리 시 데이터 누수를 피하기 위한 올바른 방법은?

참고 자료

Last updated on