데이터 탐색의 핵심은 “숫자를 통해 데이터의 상태를 객관적으로 파악하고, 시각화로 직관을 얻는 것”입니다. 아래에서 기초 통계량 → IQR → 정규분포 검토 → 시각화 순서로 매우 구체적으로 정리합니다.
1. 데이터 탐색의 목적
- 데이터의 전반적인 형태와 분포 파악
- 이상치(Outlier) 존재 여부 확인
- 정규성 여부 판단 (통계 검정·모델링 전제 확인)
- 변수 간 관계 발견
- 데이터 품질 문제(결측, 오류 값 등) 발견
2. 기초 통계량으로 파악하는 것
| 평균 (Mean) | 중심 위치 | 이상치에 민감 |
| 중앙값 (Median) | 중심 위치 | 이상치에 강함 |
| 최빈값 (Mode) | 가장 자주 나오는 값 | 범주형·이산형에서 유용 |
| 분산 / 표준편차 | 퍼짐 정도 | 클수록 데이터가 넓게 퍼짐 |
| 최솟값 / 최댓값 | 범위 | 극단값 존재 여부 |
| 왜도 (Skewness) | 비대칭 정도 | >0 오른쪽 꼬리, <0 왼쪽 꼬리 |
| 첨도 (Kurtosis) | 꼬리 두께 | 정규분포 기준 3 (초과첨도 0) |
실무 팁 평균과 중앙값의 차이가 크면 → 왜도가 있거나 이상치가 존재할 가능성이 높습니다.
3. 사분위수와 IQR (가장 중요)
사분위수 (Quartile)
- Q1 (1사분위수): 하위 25% 지점
- Q2 (2사분위수): 중앙값 (50%)
- Q3 (3사분위수): 하위 75% 지점
IQR (Interquartile Range)
데이터의 중간 50%가 얼마나 퍼져 있는지를 나타냅니다. 이상치에 강한 산포 측도입니다.
이상치 탐지 규칙 (Tukey’s Method)
- 하한: $ Q1 - 1.5 \times \text{IQR} $
- 상한: $ Q3 + 1.5 \times \text{IQR} $
이 범위를 벗어난 값을 이상치로 판단 더 엄격하게 할 때는 $ 3 \times \text{IQR} $을 사용하기도 합니다.
더 구체적으로
1. IQR (Interquartile Range, 사분위 범위)
1.1 사분위수부터 정확히 이해하기
데이터를 크기 순으로 정렬한 후 위치를 기준으로 나눕니다.
- Q1 (1사분위수, 25th percentile): 데이터 중 하위 25% 지점
- Q2 (2사분위수, 50th percentile): 중앙값 (Median)
- Q3 (3사분위수, 75th percentile): 데이터 중 하위 75% 지점
1.2 IQR 정의
데이터의 가운데 50%가 얼마나 퍼져 있는지를 나타내는 값입니다. 표준편차와 달리 이상치의 영향을 거의 받지 않는 강건한(robust) 산포 측도입니다.
1.3 사분위수를 구하는 구체적인 방법
사분위수를 계산하는 방식은 여러 가지가 있습니다. 대표적으로 많이 쓰는 방식을 설명합니다.
예시 데이터 다음 13개 데이터를 사용하겠습니다. [12, 15, 18, 20, 22, 25, 27, 30, 33, 35, 38, 42, 50]
- 데이터를 오름차순 정렬 (이미 정렬됨)
- 전체 개수 n=13
중앙값 Q2 구하기
- 홀수 개이므로 가운데 값 → 7번째 값 → Q2 = 27
Q1 구하기
- 중앙값 왼쪽 데이터: [12, 15, 18, 20, 22, 25] (6개)
- 짝수 개이므로 3번째와 4번째의 평균 → (18 + 20) / 2 = Q1 = 19
Q3 구하기
- 중앙값 오른쪽 데이터: [30, 33, 35, 38, 42, 50] (6개)
- 3번째와 4번째의 평균 → (35 + 38) / 2 = Q3 = 36.5
IQR 계산
참고: 소프트웨어(Excel, R, Python pandas 등)마다 사분위수 계산 방식이 약간 다를 수 있습니다. (예: 보간 방식 차이) 그래서 값이 미세하게 다르게 나오는 경우가 있습니다.
1.4 IQR을 이용한 이상치 기준 (Tukey의 방법)
- 하한 펜스 (Lower Fence) = $ Q1 - 1.5 \times \text{IQR} $
- 상한 펜스 (Upper Fence) = $ Q3 + 1.5 \times \text{IQR} $
위 예시를 계산하면:
- 하한 = $ 19 - 1.5 \times 17.5 = 19 - 26.25 = -7.25 $
- 상한 = $ 36.5 + 1.5 \times 17.5 = 36.5 + 26.25 = 62.75 $
이 범위를 벗어나는 값을 이상치(Outlier)로 판단합니다. (더 엄격하게 할 때는 1.5 대신 3을 사용 → Extreme Outlier)
2. 수염상자 그림 (Box-and-Whisker Plot)
수염상자 그림은 IQR을 시각화한 그림입니다. 데이터의 분포, 중심, 퍼짐, 이상치를 한눈에 보여줍니다.
2.1 구성 요소 상세 설명
상한 이상치 (●)
│
Upper Whisker (수염)
│
--------------- ← Q3 (상자 윗변)
| |
| |
|———————| ← 중앙값 (Q2, 굵은 선 또는 다른 색)
| |
| |
--------------- ← Q1 (상자 아랫변)
│
Lower Whisker (수염)
│
하한 이상치 (●)
| 상자 (Box) | 가운데 50% 데이터 | Q1부터 Q3까지 |
| 상자 안 선 | 중앙값 | Q2 |
| 수염 (Whisker) | 이상치가 아닌 데이터의 범위 | 아래에서 설명 |
| 점 (●) | 이상치 | 펜스를 벗어난 값 |
2.2 수염(Whisker)을 그리는 정확한 방법
수염은 단순히 “최솟값~최댓값”이 아닙니다.
- 아래 수염: Q1−1.5×IQR Q1 - 1.5 \times IQR 이상인 값 중에서 가장 작은 값까지 그림
- 위 수염: Q3+1.5×IQR Q3 + 1.5 \times IQR 이하인 값 중에서 가장 큰 값까지 그림
즉, 수염의 끝은 “펜스 안에 있는 실제 데이터 중 가장 바깥쪽 값”입니다. 펜스를 벗어난 값들은 수염에 포함시키지 않고 점으로 따로 표시합니다.
2.3 해석 방법 (구체적으로)
| 상자가 길다 | 가운데 50% 데이터가 넓게 퍼져 있다 (IQR이 크다) |
| 상자가 짧다 | 가운데 50% 데이터가 조밀하다 |
| 중앙선이 상자 한쪽으로 치우침 | 분포가 비대칭 (왜도가 있음) |
| 수염 길이가 위아래로 다름 | 한쪽 꼬리가 더 길다 |
| 점들이 많이 찍힘 | 이상치가 많다 |
| 상자 위치가 위/아래로 다름 | 그룹 간 중심 위치가 다르다 |
3. 한 번에 보는 예시
데이터: [12, 15, 18, 20, 22, 25, 27, 30, 33, 35, 38, 42, 50]
- Q1 = 19
- Q2 = 27
- Q3 = 36.5
- IQR = 17.5
- 하한 펜스 = -7.25 → 실제 데이터 중 가장 작은 값 12가 아래 수염 끝
- 상한 펜스 = 62.75 → 실제 데이터 중 가장 큰 값 50이 위 수염 끝
- 이 경우 이상치는 없음
만약 데이터가 50 대신 80이었다면 상한 펜스(62.75)를 넘기 때문에 80은 이상치로 점으로 표시되고, 위 수염은 62.75 이하의 가장 큰 값(예: 42)에서 끝납니다.
요약
- IQR = 데이터의 가운데 50% 범위 (Q3 - Q1). 이상치에 강한 산포 측도
- 수염상자 그림 = IQR을 시각화한 것
- 상자: Q1 ~ Q3
- 상자 안 선: 중앙값
- 수염: 1.5×IQR 범위 안의 실제 최솟값/최댓값
- 점: 그 범위를 벗어난 이상치
이 정도 수준으로 이해하시면 IQR과 박스플롯을 “대충”이 아니라 정확하게 해석할 수 있습니다.
짝수 개 데이터일 때 IQR 계산 예시
데이터 개수가 짝수일 때는 중앙에 있는 두 값의 평균을 사용합니다.
예시 데이터 (n = 12개)
[10, 13, 15, 18, 21, 24, 26, 29, 32, 35, 38, 45]
이미 오름차순으로 정렬된 상태입니다.
1. Q2 (중앙값) 구하기
전체 12개이므로 가운데 두 값은 6번째와 7번째 값입니다.
- 6번째: 24
- 7번째: 26
2. Q1 구하기
중앙값 기준 왼쪽 절반 데이터를 사용합니다. 왼쪽 데이터: [10, 13, 15, 18, 21, 24] (6개)
이 6개의 중앙값은 3번째와 4번째의 평균입니다.
- 3번째: 15
- 4번째: 18
3. Q3 구하기
중앙값 기준 오른쪽 절반 데이터를 사용합니다. 오른쪽 데이터: [26, 29, 32, 35, 38, 45] (6개)
- 3번째: 32
- 4번째: 35
4. IQR 계산
5. 이상치 기준 (펜스) 계산
- 하한 펜스 = $ Q1 - 1.5 \times \text{IQR} = 16.5 - 1.5 \times 17 = 16.5 - 25.5 = -9 $
- 상한 펜스 = $ Q3 + 1.5 \times \text{IQR} = 33.5 + 25.5 = 59 $
현재 데이터는 모두 이 범위 안에 있으므로 이상치는 없습니다. 만약 45 대신 70이 있었다면 70은 이상치로 처리됩니다.
요약 (짝수일 때 규칙)
| Q2 | 전체 데이터의 중앙 두 값의 평균 |
| Q1 | 왼쪽 절반 데이터의 중앙 두 값의 평균 |
| Q3 | 오른쪽 절반 데이터의 중앙 두 값의 평균 |
이 방식이 가장 흔히 사용하는 평균 방식입니다.
4. 정규분포 관련 탐색
정규분포를 따르는지 확인하는 것은 많은 통계 기법의 전제 조건입니다.
(1) 통계량으로 확인
- 왜도 ≈ 0
- 초과 첨도 ≈ 0
- 평균 ≈ 중앙값
(2) 시각화로 확인
- 히스토그램 + 밀도곡선: 종 모양인지 확인
- Q-Q Plot (Quantile-Quantile Plot): 점들이 직선에 가까울수록 정규분포에 가까움
- Box Plot: 좌우 수염 길이가 비슷하고 중앙선이 가운데 있으면 대칭
(3) 정규성 검정 (참고)
- Shapiro-Wilk Test
- Anderson-Darling Test
- Kolmogorov-Smirnov Test
※ 표본이 커지면 사소한 차이도 “정규분포가 아니다”라고 나오는 경우가 많으므로, 시각화 결과를 더 중요하게 보는 것이 좋습니다.
5. 시각화 방법 – 구체적으로
(1) 단일 변수 분포 파악
| 히스토그램 | 분포 형태 | 봉우리 개수, 왜도, 범위 |
| 밀도 플롯 (KDE) | 부드러운 분포 | 히스토그램보다 형태 파악 용이 |
| Box Plot | 요약 + 이상치 | 중앙값, IQR, 이상치, 대칭성 |
| Violin Plot | Box + 밀도 | 분포 형태와 요약 통계 동시 확인 |
| Q-Q Plot | 정규성 | 정규분포와의 차이 |
(2) 이상치 탐화 시각화
- Box Plot이 가장 기본
- Scatter Plot에서 혼자 멀리 떨어진 점 확인
- Histogram에서 양쪽 끝에 동떨어진 막대 확인
(3) 변수 간 관계
- 산점도 (Scatter Plot): 두 연속형 변수의 관계
- 상관 히트맵 (Correlation Heatmap): 여러 변수 간 선형 관계 강도
- Pair Plot: 여러 변수 조합을 한 번에 확인
(4) 범주형 + 연속형
- Box Plot / Violin Plot을 범주별로 그리기
- 막대 그래프 + 오차 막대
6. 실무에서 추천하는 탐색 순서
- 기초 통계량 출력 describe() + 왜도, 첨도 확인
- 결측치와 이상치 비율 확인
- 단일 변수 시각화
- 히스토그램 + 밀도곡선
- Box Plot → 분포 형태, 왜도, 이상치 한눈에 파악
- IQR 기준으로 이상치 수치 확인 하한·상한을 계산하고 실제 데이터와 대조
- 정규성 검토 Q-Q Plot + 왜도/첨도
- 변수 간 관계 확인 상관행렬 + 산점도
- 범주형 변수와의 관계 그룹별 Box Plot
7. 해석 예시 (구체적)
어떤 변수의 통계량이 다음과 같다고 가정합니다.
- 평균: 80
- 중앙값: 65
- 왜도: 1.8
- Q1: 45, Q3: 90 → IQR = 45
- Box Plot에서 위쪽으로 긴 수염 + 점들이 찍힘
해석
- 평균 > 중앙값 + 왜도 양수 → 오른쪽 꼬리가 긴 분포
- IQR 대비 최댓값이 매우 큼 → 이상치 존재 가능성 높음
- 로그 변환이나 이상치 처리(제거/윈저라이징)를 고려해야 함
요약
| 중심과 퍼짐 | 평균, 중앙값, 표준편차, IQR |
| 이상치 탐지 | IQR 규칙 + Box Plot |
| 분포 형태 | 왜도, 첨도, 히스토그램, 밀도곡선 |
| 정규성 | Q-Q Plot, 왜도/첨도 |
| 변수 관계 | 산점도, 상관 히트맵 |
통계량은 객관적인 수치를 주고, 시각화는 직관과 패턴을 줍니다. 둘을 반드시 함께 사용하는 것이 좋은 데이터 탐색의 기본입니다.
'AI > 확률|통계 기반' 카테고리의 다른 글
| 고급데이터 탐색 (0) | 2026.08.08 |
|---|---|
| 상관분석과 기초통계 분석 이해 (0) | 2026.08.08 |
| 파생변수의 생성, 변수 변환 그리고 불균형 데이터 처리 대해 (0) | 2026.08.08 |
| 차원 축소(Dimensionality Reduction)에 대해 (0) | 2026.08.08 |
| 분석 변수 처리 방법과 이론들 (0) | 2026.08.08 |