빅데이터분석기사

빅데이터분석기사 시험 노트개념 정리19 MIN

데이터 정제와 결측값·이상값 처리

2과목의 첫 단원입니다. 정제 절차 세 단계, 결측값 유형 MCAR·MAR·MNAR, 단순대치·회귀대치·다중대치와 EM 알고리즘, ESD와 IQR로 이상값을 판정하는 법, 박스플롯 읽는 법, 이상값 처리 네 가지를 봅니다.

1과목에서 데이터를 모으고 쌓는 데까지 왔습니다. 2과목은 그렇게 쌓인 데이터를 열어 보는 데서 시작하는데, 열어 보면 거의 언제나 빈칸이 있고 말도 안 되게 큰 값이 섞여 있습니다. 이것을 그대로 두고 모델을 만들면 결과가 틀어지므로 분석 전에 손을 봐야 합니다. 이 단원의 문항은 결측값 유형 셋의 구분, 대치법의 이름, 그리고 IQR로 울타리를 계산하는 문제가 중심입니다.

데이터 정제

정제 절차

데이터 정제는 결측값을 채우거나 지우고, 이상값과 잡음을 다루고, 형식이 어긋난 값을 바로잡아 데이터를 분석에 쓸 수 있는 상태로 만드는 일입니다. 절차는 세 단계입니다.

  1. 데이터 오류 원인 분석 — 결측값인지, 잡음인지, 이상값인지 오류의 원인을 가른다
  2. 데이터 정제 대상 선정 — 어느 데이터를 정제할지 고른다
  3. 데이터 정제 방법 결정 — 삭제할지, 다른 값으로 대체할지, 예측값을 넣을지 정한다

원인을 먼저 보는 이유는 원인이 방법을 정하기 때문입니다. 센서가 꺼져 있던 동안의 빈칸과 응답자가 일부러 비운 빈칸은 같은 빈칸이라도 다르게 다뤄야 합니다. 정제 대상은 원칙적으로 모든 데이터지만, 외부에서 받아 온 데이터와 비정형 데이터는 품질 문제가 더 많아 우선 대상이 됩니다.

오류의 세 원인

원인 무엇인가 예
결측값 있어야 할 값이 비어 있다 나이 칸이 빈 회원
잡음 측정이나 입력 과정에서 무작위로 섞인 오차 센서 값이 미세하게 흔들림
이상값 다른 값들과 동떨어진 값 월 소득 칸의 50억 원

잡음은 값 전체에 고르게 퍼진 작은 흔들림이라 평활화로 다루고, 이상값은 몇 개의 튀는 값이라 따로 찾아내 처리합니다. 이상값이 늘 오류인 것은 아닙니다 — 실제로 소득이 아주 높은 사람일 수도 있으므로, 판정과 처리를 나눠 생각합니다.

결측값 유형

MCAR·MAR·MNAR

결측값을 다루기 전에 「왜 비었는가」를 세 갈래로 가릅니다. 갈래를 가르는 질문은 하나입니다 — 값이 빠질 확률이 무엇에 달려 있는가.

유형 빠질 확률이 달린 곳 예
MCAR 아무것에도 달려 있지 않다 설문지 일부가 우편 중에 젖어 무작위로 지워졌다
MAR 관측된 다른 변수에 달려 있다 고령층일수록 소득 칸을 비우는데, 나이는 모두 적혀 있다
MNAR 빠진 그 값 자신에 달려 있다 소득이 높은 사람일수록 소득 칸을 비운다

완전 무작위 결측(MCAR)은 빠진 것이 순전히 우연이라 빈 행을 지워도 남은 데이터가 전체를 대표합니다. 무작위 결측(MAR)은 이름과 달리 완전히 무작위가 아니라, 다른 변수를 알면 빠지는 경향을 설명할 수 있는 경우입니다. 비무작위 결측(MNAR)은 빠지는 이유가 그 값 자체에 있어 관측된 데이터만으로는 바로잡기 어렵습니다.

유형과 처리법

유형이 처리법의 범위를 정합니다. MCAR이면 빈 행을 지우는 단순한 방법도 편향을 만들지 않습니다. MAR이면 지우면 고령층이 덜 대표되는 편향이 생기므로, 관측된 나이를 이용해 소득을 채우는 회귀대치나 다중대치가 맞습니다. MNAR은 어떤 대치법도 관측값만으로는 편향을 다 없애지 못하므로, 결측이 생긴 과정 자체를 따로 모형으로 세우거나 추가 조사를 합니다. 문항은 대개 사례를 주고 유형을 묻는데, 「빠진 값 자신」이 이유에 등장하면 MNAR, 다른 변수가 등장하면 MAR로 고르면 됩니다.

결측값 대치

단순대치

단순대치는 결측값 하나에 값 하나를 채워 넣고 끝내는 방법들의 묶음입니다.

  • 완전 분석법 — 결측이 하나라도 있는 행을 통째로 지운다. 간단하지만 데이터가 크게 줄 수 있다
  • 평균 대치법 — 그 변수의 평균으로 채운다. 평균은 그대로지만 분산이 작아진다
  • 단순 확률 대치법 — 비슷한 다른 관측치에서 값을 뽑아 채운다. 같은 데이터에서 뽑으면 핫덱, 외부 자료에서 뽑으면 콜드덱이다

평균 대치법에서 분산이 줄어드는 이유는 채운 값이 전부 평균 한 점에 몰리기 때문입니다. 그래서 「평균 대치법은 추정량의 표준오차를 과소추정한다」는 문장이 옳은 보기로 나옵니다.

import pandas as pd

df = pd.DataFrame({'나이': [30, None, 26, 40, None],
                   '소득': [3200, 4100, None, 5000, 3800]})

print(len(df.dropna()))                         # 완전 분석법: 5행 중 2행만 남는다
filled = df['나이'].fillna(df['나이'].mean())   # 빈칸 둘이 평균 32로 채워진다
print(filled.tolist())                         # [30.0, 32.0, 26.0, 40.0, 32.0]

회귀대치와 다중대치

회귀대치는 다른 변수로 회귀식을 세워 결측값을 예측해 채우는 방법입니다. 나이로 소득을 예측하는 식을 만들어 빈 소득 칸에 넣는 식이고, 조건부 평균 대치라고도 부릅니다. 평균 하나로 채우는 것보다 낫지만 채운 값이 모두 회귀선 위에 놓여 여전히 변동이 작게 잡힙니다.

다중대치는 이 문제를 풀려고 결측값을 한 번이 아니라 여러 번 채웁니다. 세 단계로 진행됩니다.

  1. 대치 — 확률적 요소를 넣어 결측값을 채운 데이터셋을 m개 만든다
  2. 분석 — m개 데이터셋을 각각 분석한다
  3. 결합 — m개 결과를 하나로 합친다

데이터셋마다 채운 값이 조금씩 다르므로, 그 차이가 「채운 값이 얼마나 불확실한가」를 결과에 반영해 줍니다. 단순대치가 한 번 채우고 그 값을 진짜처럼 믿는 것과 갈리는 지점이 여기입니다.

EM 알고리즘

EM 알고리즘은 결측이 있는 데이터에서 모수를 최대가능도로 추정하는 반복 알고리즘입니다. 두 단계를 번갈아 돕니다.

  • E 단계(Expectation) — 지금의 모수 추정값으로 결측값의 기댓값을 계산한다
  • M 단계(Maximization) — 채운 데이터로 가능도를 최대화하는 모수를 다시 추정한다

추정값이 더 이상 거의 바뀌지 않을 때까지 두 단계를 되풀이합니다. 결측값이 모수를 정하고 모수가 결측값을 정하는 맞물린 관계를 번갈아 풀어 가는 구조이며, 출제는 두 단계의 이름과 순서를 바꿔 놓는 식이 많습니다.

이상값 판정

ESD

이상값을 찾는 가장 간단한 기준은 평균에서 얼마나 떨어졌는가입니다. ESD(Extreme Studentized Deviation)는 평균에서 표준편차의 3배 넘게 떨어진 값을 이상값으로 봅니다.

x<μ−3σ또는x>μ+3σx < \mu - 3\sigma \quad \text{또는} \quad x > \mu + 3\sigma

평균 50, 표준편차 4인 데이터라면 38보다 작거나 62보다 큰 값이 이상값입니다. 다만 평균과 표준편차가 이상값 자신에게 끌려가므로, 큰 이상값이 섞이면 표준편차가 부풀어 정작 그 값이 울타리 안으로 들어오는 일이 생깁니다.

IQR

IQR(사분위수 범위)은 3사분위수 Q3에서 1사분위수 Q1을 뺀 값으로, 가운데 50%가 차지하는 폭입니다. 이 폭의 1.5배를 양쪽에 붙인 울타리 밖을 이상값으로 봅니다.

x<Q1−1.5×IQR또는x>Q3+1.5×IQRx < Q_1 - 1.5 \times IQR \quad \text{또는} \quad x > Q_3 + 1.5 \times IQR

사분위수는 크기 순서로만 정해지므로 극단적인 값 하나가 있어도 거의 움직이지 않습니다. ESD와 갈리는 장점이 이것입니다.

import pandas as pd

s = pd.Series([12, 15, 17, 18, 20, 22, 25, 60])
q1, q3 = s.quantile([0.25, 0.75])          # 16.5, 22.75 (선형 보간)
iqr = q3 - q1                              # 6.25
print(s[(s < q1 - 1.5 * iqr) | (s > q3 + 1.5 * iqr)].tolist())   # [60]

위쪽 울타리가 22.75+1.5×6.25=32.12522.75 + 1.5 \times 6.25 = 32.125 이므로 60만 밖에 놓입니다. 사분위수는 계산 방식에 따라 소수점이 조금씩 달라지므로, 시험에서는 대개 Q1과 Q3를 주고 울타리만 계산하게 합니다.

박스플롯

박스플롯은 IQR 판정을 그림으로 그린 것입니다. 읽는 법은 다음과 같습니다.

  • 상자의 아래 변이 Q1, 위 변이 Q3이다 — 상자 높이가 곧 IQR이다
  • 상자 안의 가로선이 중앙값이다
  • 상자에서 뻗은 수염은 울타리 안에 있는 가장 먼 관측값까지 그린다
  • 수염 밖에 따로 찍힌 점이 이상값 후보다

수염이 울타리 자체가 아니라 울타리 안의 마지막 실제 값에서 끝난다는 점이 함정으로 나옵니다. 중앙값 선이 상자 한쪽으로 치우쳐 있거나 한쪽 수염이 길면 분포가 그쪽으로 기울어 있다는 뜻입니다.

이상값 처리

네 가지 방법

판정한 이상값을 다루는 방법은 넷으로 정리됩니다.

방법 하는 일
삭제 이상값이 든 관측치를 지운다. 양 끝의 일정 비율을 잘라 내는 절단도 여기에 든다
대체 이상값을 평균·중앙값이나 울타리 경계값 같은 다른 값으로 바꾼다
변환 로그 변환처럼 척도를 바꿔 큰 값의 영향을 줄인다
분류하여 처리 이상값이 많으면 그 집단을 따로 떼어 별도로 분석한다

경계값으로 바꾸는 방식을 극단값 조정이라 부르고, 지우는 절단과 짝으로 나옵니다. 절단은 데이터가 줄고 조정은 개수를 지키는 대신 값이 바뀝니다.

처리 선택

어느 방법을 쓸지는 이상값이 왜 생겼는가가 정합니다. 입력 실수처럼 명백한 오류면 고치거나 지우고, 실제로 있을 수 있는 극단적인 값이면 지우지 않고 변환이나 조정으로 영향만 줄입니다. 카드 이상거래 탐지처럼 이상값 자체가 분석의 목적이라면 지우는 순간 분석이 무의미해지므로 분류하여 따로 다룹니다. 출제는 「이상값은 항상 제거한다」를 오답으로 세우는 경우가 많습니다.

연습 문제

  1. 데이터 정제 절차를 순서대로 나열한 것은?
    ① 정제 대상 선정 → 오류 원인 분석 → 정제 방법 결정
    ② 오류 원인 분석 → 정제 대상 선정 → 정제 방법 결정
    ③ 정제 방법 결정 → 오류 원인 분석 → 정제 대상 선정
    ④ 오류 원인 분석 → 정제 방법 결정 → 정제 대상 선정
    ②. 원인을 알아야 대상을 고를 수 있고, 대상과 원인이 정해져야 삭제·대체·예측값 삽입 중 무엇을 쓸지 정합니다.
  2. 체중 조사에서 체중이 많이 나가는 사람일수록 체중 칸을 비우는 경향이 있다. 이 결측의 유형은?
    ① MCAR
    ② MAR
    ③ MNAR
    ④ 결측이 아니다
    ③. 빠질 확률이 빠진 값 자신(체중)에 달려 있으므로 비무작위 결측입니다.
  3. 평균 대치법에 대한 설명으로 옳은 것은?
    ① 대치 후 변수의 분산이 커진다
    ② 대치 후 변수의 평균이 달라진다
    ③ 추정량의 표준오차를 과소추정하는 경향이 있다
    ④ 대치를 여러 번 해 불확실성을 반영한다
    ③. 채운 값이 모두 평균 한 점에 몰려 분산이 작아지고, 그만큼 표준오차가 작게 잡힙니다. 평균은 그대로이고, ④는 다중대치입니다.
  4. 다중대치의 세 단계를 순서대로 나열한 것은?
    ① 분석 → 대치 → 결합
    ② 대치 → 결합 → 분석
    ③ 대치 → 분석 → 결합
    ④ 결합 → 대치 → 분석
    ③. 채운 데이터셋 m개를 만들고, 각각 분석한 뒤, 결과를 하나로 합칩니다.
  5. 어떤 변수의 Q1이 40, Q3이 64일 때 IQR 기준으로 이상값이 아닌 것은?
    ① 2
    ② 3
    ③ 99
    ④ 101
    ③. IQR은 64−40=2464 - 40 = 24 이고 울타리는 40−1.5×24=440 - 1.5 \times 24 = 4 와 64+1.5×24=10064 + 1.5 \times 24 = 100 입니다. 2와 3은 4보다 작고 101은 100보다 커서 이상값이며, 99만 울타리 안에 있습니다.
  6. 평균이 120, 표준편차가 15인 데이터에서 ESD 기준으로 이상값으로 판정되는 값은?
    ① 80
    ② 100
    ③ 155
    ④ 170
    ④. 울타리는 120−45=75120 - 45 = 75 와 120+45=165120 + 45 = 165 입니다. 170만 165를 넘습니다.
  7. 박스플롯에 대한 설명으로 옳지 않은 것은?
    ① 상자의 높이는 IQR이다
    ② 상자 안의 가로선은 평균이다
    ③ 수염 밖에 찍힌 점은 이상값 후보다
    ④ 수염은 울타리 안의 가장 먼 관측값까지 그린다
    ②. 상자 안의 선은 중앙값입니다.
  8. 카드 거래 데이터에서 이상거래를 탐지하는 것이 분석 목적일 때 이상값 처리로 가장 알맞은 것은?
    ① 모두 삭제한다
    ② 평균으로 대체한다
    ③ 이상값 집단을 따로 분류해 분석한다
    ④ 로그 변환으로 영향을 줄인다
    ③. 이상값 자체가 찾으려는 대상이므로 지우거나 평균으로 덮으면 분석 목적이 사라집니다.

이 단원은 세 장면으로 정리됩니다. 결측값은 「빠질 확률이 무엇에 달렸나」로 MCAR·MAR·MNAR을 가르고, 대치법은 한 번 채우는 단순대치와 여러 번 채우는 다중대치로 나눈 뒤 EM의 E와 M 순서를 붙입니다. 이상값은 IQR 울타리 Q1−1.5×IQRQ_1 - 1.5 \times IQR 과 Q3+1.5×IQRQ_3 + 1.5 \times IQR 을 계산할 수 있으면 박스플롯 문항까지 함께 풀립니다.

빅데이터분석기사 시험 노트 전체 보기