백분위수·사분위수 계산기
입력
| 데이터 값 | 4, 8, 15, 16, 23, 42 |
|---|---|
| 백분위수 | 75 |
결과
| p번째 백분위수 값 | 21.25 |
|---|---|
| Q1 (25번째 백분위수) | 9.75 |
| Q2 (중앙값) | 15.5 |
| Q3 (75번째 백분위수) | 21.25 |
| IQR (사분위 범위) | 11.5 |
백분위수·사분위수 계산기
쉼표로 구분된 데이터에서 임의 백분위수, 사분위수(Q1·Q2·Q3), 사분위 범위(IQR)를 계산합니다. 선형 보간법(Method 7, Excel PERCENTILE.INC 동일)을 사용합니다.
입력
결과
사분위수
백분위수(percentile)는 주어진 값 이하에 있는 관측값의 비율을 나타내는 순위 통계량입니다. 예를 들어 75번째 백분위수란 정렬된 데이터의 75%가 그 값 이하에 있는 지점을 의미합니다. 사분위수(quartile)는 데이터를 네 등분하는 세 개의 백분위수, 즉 Q1(25번째), Q2(50번째), Q3(75번째)를 가리킵니다. 이 계산기는 쉼표로 구분된 숫자 목록에서 임의의 백분위수와 세 사분위수, 그리고 사분위 범위(IQR)를 산출합니다.
선형 보간법
백분위수를 산출하는 방식에는 여러 가지가 있습니다. 이 계산기는 포함형 선형 보간법을 사용하는데, 이는 R에서 Method 7로 분류되며 Excel의 PERCENTILE.INC 함수, Python numpy.percentile의 기본값과 동일한 알고리즘입니다.
계산 절차는 세 단계로 이루어집니다.
- n개의 값을 오름차순으로 정렬합니다.
- 소수 인덱스를 계산합니다: 위치 = (n − 1) × p / 100.
- lo = ⌊위치⌋, hi = ⌈위치⌉, frac = 위치 − lo로 놓으면, 백분위수 = 정렬값[lo] + frac × (정렬값[hi] − 정렬값[lo])입니다.
위치가 정수이면 보간 비율이 0이 되어 해당 정렬값이 그대로 결과가 됩니다. p = 0이면 최솟값, p = 100이면 최댓값이 결과입니다.
계산 예시
데이터셋 4, 8, 15, 16, 23, 42를 예로 들겠습니다. 오름차순으로 이미 정렬되어 있으며 n = 6입니다.
Q1 (p = 25): 위치 = (6 − 1) × 0.25 = 1.25. 인덱스 1의 값은 8, 인덱스 2의 값은 15입니다. Q1 = 8 + 0.25 × (15 − 8) = 8 + 1.75 = 9.75.
Q2 / 중앙값 (p = 50): 위치 = 5 × 0.50 = 2.5. 인덱스 2와 3의 값은 각각 15와 16입니다. Q2 = 15 + 0.5 × (16 − 15) = 15.5.
Q3 (p = 75): 위치 = 5 × 0.75 = 3.75. 인덱스 3과 4의 값은 각각 16과 23입니다. Q3 = 16 + 0.75 × (23 − 16) = 16 + 5.25 = 21.25.
IQR = Q3 − Q1 = 21.25 − 9.75 = 11.5. 이 데이터셋에서 중간 절반의 값들이 11.5 범위에 분포합니다.
10번째 백분위수(p = 10)를 구하면: 위치 = 5 × 0.10 = 0.5. 인덱스 0과 1의 값은 4와 8입니다. P10 = 4 + 0.5 × (8 − 4) = 6.0.
사분위수와 상자 그림
최솟값, Q1, Q2, Q3, 최댓값으로 이루어진 다섯 숫자 요약(five-number summary)은 상자 그림(box plot, 상자수염 그림)의 기초가 됩니다. 상자는 Q1에서 Q3까지를 나타내고, 상자 안의 선은 중앙값(Q2)을 표시합니다. 수염은 상자 끝에서 1.5 × IQR 이내에 있는 최극단 값까지 뻗어 있습니다.
수염 바깥의 값은 이상값으로 표시됩니다. 위 예시에서 하한 경계는 Q1 − 1.5 × IQR = 9.75 − 17.25 = −7.5이고, 상한 경계는 Q3 + 1.5 × IQR = 21.25 + 17.25 = 38.5입니다. 값 42는 상한 경계를 초과하므로 경한 이상값으로 분류됩니다.
IQR: 강건한 산포 지표
사분위 범위는 이상값에 강건한(robust) 통계적 산포 지표로 널리 쓰입니다. 표준편차는 평균으로부터의 편차를 제곱하여 합산하기 때문에 극단값에 크게 영향을 받습니다. 반면 IQR은 정렬된 값의 중간 50%만을 고려하므로, 한두 개의 극단 관측값이 있어도 Q1과 Q3에는 변화가 없습니다.
이러한 특성 때문에 IQR은 가구 소득, 아파트 매매 가격, 의료 대기 시간 등 비대칭 분포를 따르는 데이터에 특히 적합합니다. 표준편차는 소수의 극단값에 의해 왜곡될 수 있어 전형적인 변동성을 정확히 반영하지 못하는 경우가 있습니다.
다양한 산출 방식
R 프로그래밍 언어는 총 9가지의 백분위수 산출 방식을 문서화하고 있으며, 분야에 따라 서로 다른 방식이 표준으로 채택되기도 합니다. 주요 차이는 소수 인덱스를 처리하는 방법과, 최솟값(순위 1)을 0번째 백분위수에 놓는지 1/n × 100번째에 놓는지에 있습니다.
- Method 7 (이 계산기, R 기본값, Excel PERCENTILE.INC, numpy 기본값): 위치 = (n − 1) × p/100. 최솟값이 p = 0, 최댓값이 p = 100에 해당합니다.
- Method 6 (Excel PERCENTILE.EXC, SPSS 기본값): 위치 = n × p/100. 최솟값과 최댓값은 도달 가능한 백분위수가 아니므로 유효 범위가 1/(n+1)에서 n/(n+1)까지입니다.
- Method 1–3 (최근접 순위법): 보간 없이 실제 관측값을 결과로 반환합니다. 일부 교육 통계 교재에서는 Method 1(천장 순위)을 기본으로 사용합니다.
데이터 수가 수백 개 이상으로 많아지면 방식 간 차이는 사실상 무시할 수준이 됩니다. 차이가 가장 두드러지는 것은 소규모 표본일 때입니다. 소프트웨어 간 결과를 비교할 때는 각각 어떤 방식을 사용하는지 확인하는 것이 중요합니다.
백분위수와 표준 점수
백분위수는 순수하게 경험적인 순위 통계량입니다. 특정 분포를 가정하지 않고, 관측 데이터셋 내에서 해당 값의 위치를 비율로 나타냅니다. 90번째 백분위수란 단순히 데이터의 90%가 그 값 이하에 있다는 의미입니다.
표준 점수(z-점수)는 값이 평균에서 표준편차 몇 배만큼 떨어져 있는지를 측정하며, 데이터가 정규분포에 근사한다는 가정 아래에서 의미를 갖습니다. 완전한 정규분포라면 z-점수 1.28이 90번째 백분위수에 해당합니다. 그러나 비대칭 분포나 다봉 분포에서는 같은 z-점수라도 경험적 백분위수와 크게 달라질 수 있습니다.
따라서 분포 형태를 알 수 없거나 정규분포를 따르지 않는 데이터(예: 시험 점수, 의료 참고 범위, 소득 분포)에는 백분위수가 더 적합합니다. 정규성 가정이 타당하고 서로 다른 측정 척도 간 비교가 필요한 상황에서는 표준 점수가 선호됩니다.
최소 표본 수
선형 보간법은 최소 2개의 데이터 포인트를 필요로 합니다. 값이 정확히 2개인 경우에도 단일 구간에 걸쳐 보간이 수행되며, 최솟값부터 최댓값까지 모든 백분위수가 도달 가능합니다.
실용적인 백분위수 추정을 위해서는 더 많은 표본이 필요합니다. 표본 백분위수의 불확실성은 표본 크기에 반비례합니다. 예를 들어 90번째 백분위수의 95% 신뢰구간은 n = 20일 때와 n = 200일 때 폭이 크게 다릅니다.
자주 묻는 질문 (FAQ)
이 계산기는 어떤 백분위수 산출 방식을 사용합니까?
이 계산기는 포함형 선형 보간법(inclusive linear interpolation)을 사용합니다. R에서 Method 7로 분류되며, Excel의 PERCENTILE.INC 함수 및 Python numpy.percentile의 기본값과 동일한 알고리즘입니다.
계산 절차는 다음과 같습니다. ①n개의 값을 오름차순으로 정렬합니다. ②소수 인덱스를 계산합니다: 위치 = (n − 1) × p / 100. ③lo = ⌊위치⌋, hi = ⌈위치⌉, frac = 위치 − lo로 놓으면, 백분위수 = 정렬값[lo] + frac × (정렬값[hi] − 정렬값[lo])입니다.
예를 들어 6개의 값 [4, 8, 15, 16, 23, 42]에서 p = 25이면, 위치 = 5 × 0.25 = 1.25입니다. 인덱스 1의 값은 8, 인덱스 2의 값은 15이므로 Q1 = 8 + 0.25 × (15 − 8) = 9.75가 됩니다.
R은 총 9가지 방식을 지원하며 소프트웨어마다 기본 방식이 다를 수 있으므로, 결과를 비교할 때는 어떤 방식을 사용했는지 반드시 확인하십시오.
사분위 범위(IQR)는 어떤 용도로 사용됩니까?
사분위 범위(IQR)는 Q3에서 Q1을 뺀 값으로, 중앙 50% 데이터의 산포를 측정합니다. 주로 두 가지 목적으로 활용됩니다.
첫째, 이상값(outlier) 판별 기준으로 사용됩니다. Q1에서 1.5 × IQR을 뺀 값보다 작거나, Q3에 1.5 × IQR을 더한 값보다 큰 데이터는 경한 이상값으로 분류됩니다. 3 × IQR 기준을 벗어나는 값은 극단적 이상값으로 처리합니다. 이 규칙은 R, Python matplotlib, Excel의 상자 그림에서도 동일하게 적용됩니다.
둘째, 이상값에 강건한(robust) 산포 지표로 사용됩니다. 표준편차는 극단값의 영향을 크게 받는 반면, IQR은 꼬리 부분의 값에 영향을 받지 않습니다. 따라서 소득 분포, 주택 가격, 대기 시간처럼 비대칭 분포를 따르는 데이터에 적합합니다.
사분위수는 데이터를 어떻게 나눕니까?
사분위수는 정렬된 데이터를 각각 25%씩 네 구간으로 나눕니다. Q1(25번째 백분위수)은 하위 25%와 나머지를 구분하고, Q2(50번째 백분위수, 중앙값)는 데이터를 정확히 절반으로 나눕니다. Q3(75번째 백분위수)는 상위 25%와 나머지를 구분합니다.
데이터 개수가 4의 배수인 경우 사분위수는 인접한 두 값 사이에 위치합니다. 그 밖의 경우에는 선형 보간법으로 소수 값이 산출됩니다. Q3에서 Q1을 뺀 IQR은 중간 두 사분위 구간을 포괄하며, 탐색적 데이터 분석에서 가장 널리 쓰이는 단일 산포 지표입니다.
백분위수와 표준 점수(z-점수)의 차이는 무엇입니까?
백분위수는 실제 데이터셋 내에서의 순위 기반 위치를 나타냅니다. 특정 분포를 가정하지 않고, 주어진 값 이하에 있는 관측값의 비율을 직접 알려줍니다. 75번째 백분위수라면 전체 데이터의 75%가 그 값 이하에 있다는 의미입니다.
표준 점수(z-점수)는 특정 값이 평균에서 표준편차 몇 배만큼 떨어져 있는지를 측정하며, 데이터가 정규분포에 근사한다고 가정합니다. 완전한 정규분포라면 z-점수 1.28이 90번째 백분위수에 해당하지만, 비대칭 분포나 다봉 분포에서는 전혀 다른 순위가 될 수 있습니다.
분포의 형태를 모르거나 정규분포를 따르지 않는 경우(예: 소득, 시험 점수, 의료 참고 범위)에는 백분위수가 더 적합합니다. 정규성 가정이 타당하고 서로 다른 측정 척도 간 비교가 필요한 경우에는 표준 점수가 선호됩니다.