AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

빅데이터분석기사 필기/2과목 : 빅데이터 탐색

2.1 이상치와 결측치 처리

qordnswnd123 2025. 6. 30. 16:58

📘 2.1 이상치 & 결측치 처리

1️⃣ 결측치(Missing Value)란?

  • 정의: 데이터셋 내에서 어떤 관측값이 누락되거나 비어 있는 상태
  • 예시:
    • 설문조사에서 응답하지 않은 항목
    • 센서 고장, 데이터 수집 실패
    • 수작업 입력 누락

▶ 주요 원인


데이터 수집 오류 응답 누락, 기기 고장, 센서 오류 등
기술적 결함 수작업 입력 누락, 포맷 깨짐 등
의도적 비공개 응답자가 특정 항목 건너뜀 (민감 항목)
측정 불가능 실험 실패, 관측 불가, 환경적 한계 등
 

2️⃣ 결측치 처리 방법


삭제 결측치가 포함된 행 또는 열을 제거 결측치 비율이 낮을 때
대체 평균, 중앙값, 최빈값 등 통계량으로 채움 데이터가 정규 분포일 때
예측값 대체 다른 변수 기반 회귀모델, KNN 등 결측치 패턴이 예측 가능할 때
모델링 기반 다중 대체법 (MICE), ML 기반 기법 등 정교한 분석에 필요할 때
 

▶ 예시

-- 평균 대체
UPDATE users
SET age = (SELECT AVG(age) FROM users)
WHERE age IS NULL;

3️⃣ 이상치(Outlier)란?

  • 정의: 전체 데이터 흐름에서 극단적으로 벗어난 비정상적인 값
  • 예시: 급여가 3000만 원인데 혼자 1억 5천만 원 → 이상치 가능성

▶ 주요 원인


입력 오류 오타, 단위 실수 등
측정 오류 기계 센서 이상
데이터 처리 오류 병합/전처리 과정에서 손상
자연적 특성 실제로 특이한 값을 가진 대상
 

4️⃣ 이상치 탐지 방법

📊 통계적 탐지


Z-score 평균으로부터 표준편차 기준으로 3σ 이상 벗어남
IQR (사분위 범위) Q1 - 1.5×IQR 미만, Q3 + 1.5×IQR 초과
평균 ± 3σ 통계학적 기준의 이상 범위
 

🖼 시각화 탐지

  • 박스플롯(Boxplot): 이상치 점으로 시각화됨
  • 산점도(Scatter Plot): 눈으로 튀는 값 쉽게 확인 가능

5️⃣ 이상치 처리 방법


삭제 이상치 제거 (주의: 실제 유효한 경우도 존재)
대체 평균, 중앙값 등으로 보정
변환 로그(log), 루트 등 분포 안정화
구간화 값 범위 제한 (클리핑, winsorization)
도메인 판단 데이터의 맥락에 따라 유지 또는 수정 결정
 

6️⃣ 실무 처리 시 주의 사항

  • 삭제 전 반드시 도메인 지식 기반 확인 필요
  • 이상치가 실제 유효 값일 수 있음 (예: 고소득자, 고령자 등)
  • 결측치나 이상치 대체는 데이터 분포에 큰 영향을 줄 수 있음
  • 특히 평균 대체는 분산을 과소추정할 수 있음 → 주의!

7️⃣ 기출 문제 핵심 정리


혈액형 결측치 대체 ✅ 최빈값 (명목형 변수)
이상치 원인 아님 ❌ 표본 오류 (샘플링 이슈로 이상치라 보기 어려움)
평균 대체 효과 표준오차 과소추정 발생 가능
자기회귀 대체 효과 오히려 상관성 유지/강화됨
이상치 탐지 적절한 방법 ✅ 박스플롯
정제의 옳은 설명 ✅ 구분자가 있으면 분리 후 저장
정제의 옳지 않은 설명 ❌ 데이터가 많을수록 임의 축소 필요 없음
이상치 대체 부적절 설명 ❌ 평균 대체는 신뢰성 저하 가능 있음
 

8️⃣ 핵심 암기 TIP

📌 결측치 → 삭제, 대체, 예측, 모델링
📌 이상치 → 탐지(Z, IQR, Boxplot) → 삭제 or 대체 or 변환
📌 명목형 결측 → 최빈값 / 수치형 → 평균, 중앙값
📌 WHERE: 행 필터 / HAVING: 그룹 필터
📌 평균 대체 시 신뢰성 저하 (분산 왜곡)