박스플롯

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.09.16
조회수
None
버전
v1

박스플롯

개요

박스플(Box Plot), 또는 상자염 그림(Box-and-Whisker Plot)은의 분포를 시각적으로 표현 통계 그래프의 일종으로 데이터의 중심 경향, 산포도, 왜도, 이상치(Outlier) 등을 한눈에 파악할 있게 해준다. 주로 데이터 분석(Data Analysis) 과정에서 데이터의 분포 특성을 탐색하고, 여러 그룹 간의 분포를 비교하는 데 사용된다. 박스플롯은 5-수 요약(Five-number Summary)을 기반으로 구성되며, 통계적 탐색적 데이터 분석(EDA, Exploratory Data Analysis)에서 매우 중요한 도구로 평가받는다.


구성 요소

박스플롯은 다음과 같은 5개의 핵심 요소로 구성된다:

  1. 최소값(Minimum)
  2. 제1사분위수(Q1, 25번째 백분위수)
  3. 중앙값(Median, Q2, 50번째 백분위수)
  4. 제3사분위수(Q3, 75번째 백분위수)
  5. 최대값(Maximum)

이 외에도 이상치(Outliers)를 나타내는 점들이 수염(Whiskers) 바깥에 표시될 수 있다.

시각적 구성

      +-----+----+-----+
      |     |    |     |
  ────┘     └────┘     └───
  왼쪽 수염   박스    오른쪽 수염

  • 박스(Box): Q1에서 Q3까지의 범위를 나타내며, 사분위수 범위(IQR, Interquartile Range)를 시각화한다.
    $$ \text{IQR} = Q3 - Q1 $$

  • 중앙선(Median Line): 박스 안에 위치하며, 데이터의 중앙값을 나타낸다.

  • 수염(Whiskers): 박스의 양 끝에서 뻗어나간 선으로, 일반적으로 Q1 - 1.5×IQR에서 Q3 + 1.5×IQR까지의 정상 범위를 나타낸다.
  • 이상치(Outliers): 수염의 범위를 벗어난 데이터 포인트로, 점(•) 또는 별표(*)로 표시된다.

활용 목적

박스플롯은 다음과 같은 분석 목적으로 널리 사용된다:

1. 데이터 분포의 대칭성 및 왜도 판단

  • 중앙값이 박스의 중심에 가까우면 대칭적인 분포
  • 중앙값이 왼쪽이나 오른쪽에 치우쳐 있으면 왜도 존재 (좌측 치우침: 오른쪽 꼬리 길음)

2. 이상치 탐지

  • 수염의 범위를 벗어난 점은 이상치로 간주되며, 데이터 품질 검토나 이상 행동 탐지에 활용

3. 그룹 간 비교

  • 여러 집단의 박스플롯을 나란히 배치하면, 중심 경향(중앙값), 분산(IQR), 이상치 존재 여부 등을 직관적으로 비교 가능
  • 예: A팀과 B팀의 성적 분포 비교, 월별 매출 분포 분석 등

예시 및 해석

다음은 세 학급(A, B, C)의 수학 시험 점수에 대한 박스플롯 해석 예시이다:

그룹 Q1 Median Q3 IQR 이상치 여부
A 60 70 80 20 없음
B 55 65 75 20 1명 (40점)
C 70 85 90 20 없음
  • 그룹 C는 중앙값이 가장 높고, 전체적으로 점수가 높은 편이며, 분포가 상대적으로 우측으로 치우침 (왼쪽 꼬리 짧음).
  • 그룹 B는 중앙값이 낮고, 40점이라는 명확한 이상치 존재 → 추가 조사 필요.
  • 그룹 A와 B의 IQR이 동일하므로, 중앙 50% 데이터의 분산은 비슷함.

장점과 한계

장점

  • 간결하고 직관적인 시각화: 복잡한 통계 정보를 한눈에 파악 가능
  • 이상치 탐지 용이: IQR 기반으로 정량적인 기준 제공
  • 비모수적(Non-parametric): 데이터의 분포 형태에 대한 가정 불필요
  • 다중 그룹 비교에 적합: 여러 범주형 그룹의 분포를 나란히 비교 가능

한계

  • 분포의 세부 형태 미표현: 히스토그램과 달리 다중 피크(Modalities)나 정확한 밀도 정보 미제공
  • 데이터 개수 감안 안됨: 소수의 데이터라도 동일한 박스플롯 형태로 표현 가능
  • 이상치 기준의 주관성: 1.5×IQR 기준은 일반적이지만, 상황에 따라 조정 필요

주요 도구 및 구현 예시

대부분의 데이터 과학 도구에서 박스플롯을 쉽게 생성할 수 있다.

Python (Matplotlib, Seaborn)

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

# 샘플 데이터
data = pd.DataFrame({
    'Class': ['A']*20 + ['B']*20 + ['C']*20,
    'Score': [70, 75, 65, 80, 72, 68, 85, 77, 73, 71]*3
})

# 박스플롯 생성
sns.boxplot(x='Class', y='Score', data=data)
plt.title('학급별 수학 성적 박스플롯')
plt.show()

R 언어

boxplot(Score ~ Class, data = data, main = "학급별 수학 성적", xlab = "학급", ylab = "점수")


관련 개념


참고 자료

  • Tukey, J. W. (1977). Exploratory Data Analysis. Addison-Wesley.
  • Cleveland, W. S. (1993). Visualizing Data. Hobart Press.
  • Python 공식 문서: Matplotlib Boxplot
  • R 공식 문서: boxplot() function

박스플롯은 데이터 분석의 첫 단계인 탐색적 데이터 분석(EDA)에서 핵심적인 역할을 하며, 데이터의 구조와 특성을 빠르게 이해하는 데 필수적인 도구이다. 데이터 과학자, 통계 분석가, 비즈니스 인텔리전스 전문가 등 다양한 분야에서 광범위하게 활용되고 있다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?