1 개요
지금까지 다룬 통계량(표본평균, 표본분산)은 모든 관측값을 동등하게 사용한다. 그러나 때로는 관측값의 순서에 기반한 정보가 더 유용하다. 지난 50년간 기록된 최고 홍수 수위, 지난달 주택 매매가의 중앙값, 제품 수명의 최솟값 — 이들은 모두 순서통계량(order statistics)의 예이다.
순서통계량은 비모수 추론, 로버스트 추정, 극값 이론의 수학적 기반이며, 분포에 대한 가정이 약해도 사용할 수 있다는 점에서 표본평균/분산과 보완적인 역할을 한다 (Casella & Berger, 2002, Ch.5).
2 정의와 기본 개념
확률 표본 \(X_1, \ldots, X_n\) 의 순서통계량은 표본값을 오름차순으로 재배열한 것이다. 이를 \(X_{(1)}, \ldots, X_{(n)}\) 으로 표기한다 (Casella & Berger, 2002, Ch.5).
순서통계량은 \(X_{(1)} \leq X_{(2)} \leq \cdots \leq X_{(n)}\) 을 만족하는 확률변수이다:
- \(X_{(1)} = \min_{1 \leq i \leq n} X_i\) : 최솟값
- \(X_{(n)} = \max_{1 \leq i \leq n} X_i\) : 최댓값
- \(X_{(\lceil n/2 \rceil)}\) : 표본 중앙값 (아래에서 정밀하게 정의)
원래 표본 \(X_1, \ldots, X_n\) 은 iid이지만, 순서통계량 \(X_{(1)}, \ldots, X_{(n)}\) 은 독립이 아니다. \(X_{(1)}\) 이 크면 \(X_{(2)}\) 도 클 수밖에 없으므로, 순서를 부여하는 행위 자체가 의존성을 도입한다.
2.1 순서통계량에서 파생되는 통계량
| 통계량 | 정의 | 역할 |
|---|---|---|
| 표본 범위(range) | \(R = X_{(n)} - X_{(1)}\) | 산포의 측도 |
| 표본 중앙값(median) | 아래 참조 | 위치의 측도 (로버스트) |
| 사분위수 범위(IQR) | \(X_{(0.75n)} - X_{(0.25n)}\) | 로버스트 산포 측도 |
| 중간범위(midrange) | \(V = (X_{(1)} + X_{(n)})/2\) | 위치의 측도 |
2.2 표본 중앙값의 정의
\[ M = \begin{cases} X_{((n+1)/2)} & \text{$n$ 이 홀수} \\ (X_{(n/2)} + X_{(n/2+1)})/2 & \text{$n$ 이 짝수} \end{cases} \]
1988년 메이저리그 연봉 협상에서 구단주 측은 “평균 연봉이 $433,659이니 연금이 충분하다”고 주장했고, 선수 측은 “절반 이상이 $250,000 미만을 받는다”고 반박했다. 둘 다 맞았다. 구단주는 평균(mean)을, 선수는 중앙값(median)을 말한 것이다. 연봉 $200만 이상인 소수의 스타 선수가 평균을 끌어올리지만 중앙값에는 거의 영향을 주지 않는다. 극단값이 있는 데이터에서는 중앙값이 “전형적 값”을 더 잘 대표한다 (Casella & Berger, 2002, Ch.5).
2.3 표본 백분위수
\((100p)\) 번째 표본 백분위수는 대략 \(np\) 개의 관측값이 이보다 작고 \(n(1-p)\) 개가 이보다 큰 관측값이다. \(p = 0.5\) 이면 중앙값, \(p = 0.25\) 이면 하위 사분위수, \(p = 0.75\) 이면 상위 사분위수이다.
3 이산 모집단에서의 순서통계량 분포
\(X_1, \ldots, X_n\) 이 pmf \(f_X(x_i) = p_i\) 인 이산분포에서의 확률 표본이고, \(x_1 < x_2 < \cdots\) 가 가능한 값들의 오름차순 나열이라 하자. \(P_i = p_1 + p_2 + \cdots + p_i\) ( \(P_0 = 0\) )로 정의하면:
\[ P(X_{(j)} \leq x_i) = \sum_{k=j}^{n} \binom{n}{k} P_i^k (1 - P_i)^{n-k} \]
\[ P(X_{(j)} = x_i) = \sum_{k=j}^{n} \binom{n}{k} \left[P_i^k(1-P_i)^{n-k} - P_{i-1}^k(1-P_{i-1})^{n-k}\right] \]
(Casella & Berger, 2002, Ch.5)
증명의 핵심 아이디어: \(Y\) 를 ” \(X_1, \ldots, X_n\) 중 \(x_i\) 이하인 것의 개수”라 하자. 각 \(X_l\) 에 대해 \(\{X_l \leq x_i\}\) 를 “성공”으로 정의하면:
- 성공 확률: \(P_i = P(X_l \leq x_i)\) (동일 분포)
- 각 시행은 독립 (iid)
- 따라서 \(Y \sim \text{Binomial}(n, P_i)\)
사건 \(\{X_{(j)} \leq x_i\}\) 는 “\(n\) 개 중 적어도 \(j\) 개가 \(x_i\) 이하”인 사건 \(\{Y \geq j\}\) 와 동치이다. 이를 이항분포의 확률로 표현하면 첫 번째 식을 얻고, \(P(X_{(j)} = x_i) = P(X_{(j)} \leq x_i) - P(X_{(j)} \leq x_{i-1})\) 로 두 번째 식을 얻는다.
직관적으로, “표본에서 \(j\) 번째로 작은 값이 \(x_i\) 이하”라는 것은 “적어도 \(j\) 개의 관측값이 \(x_i\) 이하”라는 것과 같다. 이 동치 관계가 순서통계량 분포의 핵심이다.
4 연속 모집단에서의 순서통계량 pdf
연속 모집단에서는 두 관측값이 같을 확률이 0이므로 \(P(X_{(1)} < X_{(2)} < \cdots < X_{(n)}) = 1\) 이다. 이 사실이 pdf 도출을 단순화한다.
4.1 \(j\) 번째 순서통계량의 주변 pdf
\(X_{(1)}, \ldots, X_{(n)}\) 이 cdf \(F_X(x)\) 와 pdf \(f_X(x)\) 를 가진 연속 모집단에서의 확률 표본의 순서통계량이면, \(X_{(j)}\) 의 pdf는:
\[ f_{X_{(j)}}(x) = \frac{n!}{(j-1)!(n-j)!} f_X(x) [F_X(x)]^{j-1} [1 - F_X(x)]^{n-j} \]
(Casella & Berger, 2002, Ch.5)
4.2 pdf의 직관적 해석
이 공식의 각 요소는 명확한 확률적 의미를 가진다:
\[ f_{X_{(j)}}(x) = \underbrace{\frac{n!}{(j-1)!(n-j)!}}_{\text{배치 수}} \cdot \underbrace{f_X(x)}_{\text{$x$ 근처}} \cdot \underbrace{[F_X(x)]^{j-1}}_{\text{$x$ 미만 $j-1$개}} \cdot \underbrace{[1-F_X(x)]^{n-j}}_{\text{$x$ 초과 $n-j$개}} \]
| 요소 | 의미 |
|---|---|
| \(\frac{n!}{(j-1)!(n-j)!}\) | \(n\) 개의 관측값 중 \(j-1\) 개가 \(x\) 미만, 1개가 \(x\) 근처, \(n-j\) 개가 \(x\) 초과인 배치의 수 |
| \(f_X(x)\) | 정확히 하나의 관측값이 \(x\) 근처에 있을 확률 밀도 |
| \([F_X(x)]^{j-1}\) | \(j-1\) 개의 관측값이 \(x\) 보다 작을 확률 (각각 독립) |
| \([1-F_X(x)]^{n-j}\) | \(n-j\) 개의 관측값이 \(x\) 보다 클 확률 (각각 독립) |
\(n\) 명이 달리기를 한다. \(j\) 번째로 골인하는 사람의 기록이 \(x\) 근처일 확률을 구하려면: (1) \(j-1\) 명이 \(x\) 보다 빨리 골인하고, (2) 1명이 정확히 \(x\) 근처에 골인하며, (3) \(n-j\) 명이 \(x\) 보다 느리게 골인하는 경우의 수를 세면 된다. 이것이 위 공식의 구조이다.
4.3 증명 (개요)
\(Y\) 를 ” \(X_1, \ldots, X_n\) 중 \(x\) 이하인 것의 개수”라 하면 \(Y \sim \text{Binomial}(n, F_X(x))\) 이다. \(X_{(j)}\) 의 cdf는:
\[ F_{X_{(j)}}(x) = P(Y \geq j) = \sum_{k=j}^{n} \binom{n}{k} [F_X(x)]^k [1-F_X(x)]^{n-k} \]
이를 \(x\) 에 대해 미분하면 텔레스코핑(telescoping)에 의해 대부분의 항이 소거되어 Theorem 5.4.4의 결과를 얻는다. 소거가 일어나는 이유는 \(\binom{n}{k+1}(k+1) = \binom{n}{k}(n-k)\) 이라는 항등식 때문이다.
4.4 특수 경우: 최솟값과 최댓값
\(j = 1\) (최솟값)과 \(j = n\) (최댓값)은 특히 중요하다:
\[ f_{X_{(1)}}(x) = n f_X(x) [1 - F_X(x)]^{n-1} \]
\[ f_{X_{(n)}}(x) = n f_X(x) [F_X(x)]^{n-1} \]
최솟값의 pdf에서 \([1-F_X(x)]^{n-1}\) 은 나머지 \(n-1\) 개가 모두 \(x\) 보다 클 확률이다. \(n\) 이 커질수록 이 확률이 빠르게 줄어들므로, 최솟값의 분포는 왼쪽으로 집중된다.
5 균일분포 순서통계량과 베타분포
균일분포에서의 순서통계량은 베타분포와의 연결로 특히 중요하다.
5.1 균일분포 순서통계량의 pdf
\(X_1, \ldots, X_n \overset{iid}{\sim} \text{Uniform}(0, 1)\) 이면 \(f_X(x) = 1\) , \(F_X(x) = x\) ( \(x \in (0, 1)\) )이므로:
\[ f_{X_{(j)}}(x) = \frac{n!}{(j-1)!(n-j)!} x^{j-1}(1-x)^{n-j} = \frac{\Gamma(n+1)}{\Gamma(j)\Gamma(n-j+1)} x^{j-1}(1-x)^{(n-j+1)-1} \]
이는 \(\text{Beta}(j, n-j+1)\) 의 pdf이다. 따라서:
\(X_1, \ldots, X_n \overset{iid}{\sim} \text{Uniform}(0, 1)\) 이면:
\[ X_{(j)} \sim \text{Beta}(j, n-j+1) \]
따라서 \(E[X_{(j)}] = \frac{j}{n+1}\) , \(\text{Var}(X_{(j)}) = \frac{j(n-j+1)}{(n+1)^2(n+2)}\)
이 결과의 직관: \(n\) 개의 균일 난수를 \([0, 1]\) 에 뿌리면, \(j\) 번째로 작은 값은 평균적으로 \(j/(n+1)\) 에 위치한다. 10개를 뿌리면 3번째로 작은 값은 평균 \(3/11 \approx 0.273\) 에 있다. 이것은 \([0, 1]\) 구간을 \(n+1\) 개의 동일한 간격으로 나눈 것과 같다.
분산은 \(j\) 가 중앙에 가까울수록 작고(중앙값이 가장 안정적), 양 끝에 가까울수록 크다(최솟값과 최댓값이 가장 불안정). 이것이 중앙값이 로버스트 통계량인 이유의 수학적 근거이다.
6 두 순서통계량의 결합 pdf
\(1 \leq i < j \leq n\) 에 대해, \(X_{(i)}\) 와 \(X_{(j)}\) 의 결합 pdf는:
\[ f_{X_{(i)}, X_{(j)}}(u, v) = \frac{n!}{(i-1)!(j-1-i)!(n-j)!} f_X(u) f_X(v) [F_X(u)]^{i-1} [F_X(v) - F_X(u)]^{j-1-i} [1-F_X(v)]^{n-j} \]
단, \(-\infty < u < v < \infty\) (Casella & Berger, 2002, Ch.5)
6.1 결합 pdf의 직관적 해석
이 공식도 “구간 나누기”로 이해할 수 있다:
───────────────────────────────────────────────
< u u 근처 u~v 사이 v 근처 > v
i-1개 1개 j-1-i개 1개 n-j개
F(u)^{i-1} f(u) [F(v)-F(u)]^{j-1-i} f(v) [1-F(v)]^{n-j}
───────────────────────────────────────────────
\(n\) 개의 관측값을 다섯 구간으로 나누어 배치하는 다항분포적 논증이다.
6.2 모든 순서통계량의 결합 pdf
\(n\) 개 순서통계량 전체의 결합 pdf는 놀랍도록 간단하다:
\[ f_{X_{(1)}, \ldots, X_{(n)}}(x_1, \ldots, x_n) = \begin{cases} n! \prod_{i=1}^{n} f_X(x_i) & -\infty < x_1 < \cdots < x_n < \infty \\ 0 & \text{그 외} \end{cases} \]
\(n!\) 이 나타나는 이유: 값의 집합 \(\{x_1, \ldots, x_n\}\) 에 대해, 원래 표본 \(X_1, \ldots, X_n\) 에 이 값들을 배정하는 방법은 \(n!\) 가지이고, 이 모든 배정이 같은 순서통계량을 산출한다. 따라서 원래 결합 pdf \(\prod f_X(x_i)\) 에 \(n!\) 을 곱한 것이 순서통계량의 결합 pdf가 된다.
7 범위와 중간범위의 분포
7.1 균일분포에서의 범위와 중간범위
\(X_1, \ldots, X_n \overset{iid}{\sim} \text{Uniform}(0, a)\) 에서 범위 \(R = X_{(n)} - X_{(1)}\) 과 중간범위 \(V = (X_{(1)} + X_{(n)})/2\) 의 분포를 도출한다.
Theorem 5.4.6에서 \(i = 1\) , \(j = n\) 으로 놓으면:
\[ f_{X_{(1)}, X_{(n)}}(x_1, x_n) = \frac{n(n-1)(x_n - x_1)^{n-2}}{a^n}, \quad 0 < x_1 < x_n < a \]
변환 \(R = X_{(n)} - X_{(1)}\) , \(V = (X_{(1)} + X_{(n)})/2\) (야코비안 \(= -1\) )를 적용하면:
\[ f_{R,V}(r, v) = \frac{n(n-1)r^{n-2}}{a^n}, \quad 0 < r < a, \quad r/2 < v < a - r/2 \]
7.2 범위의 주변 pdf
\(V\) 를 적분하면:
\[ f_R(r) = \frac{n(n-1)r^{n-2}(a-r)}{a^n}, \quad 0 < r < a \]
\(a = 1\) 이면 \(R \sim \text{Beta}(n-1, 2)\) 이다. 일반적으로 \(R/a \sim \text{Beta}(n-1, 2)\) 이며, 따라서:
\[ E[R/a] = \frac{n-1}{n+1}, \quad \text{Var}(R/a) = \frac{2(n-1)}{(n+1)^2(n+2)} \]
표본 크기가 커질수록 범위는 \(a\) 에 가까워진다. 이는 직관적이다 — 관측값이 많아지면 최솟값은 0에, 최댓값은 \(a\) 에 가까워지므로 범위가 \(a\) 에 수렴한다.
7.3 중간범위의 주변 pdf
\(R\) 의 적분 범위가 \(v\) 의 위치에 따라 달라진다:
\[ f_V(v) = \begin{cases} \frac{n(2v)^{n-1}}{a^n} & 0 < v \leq a/2 \\ \frac{n[2(a-v)]^{n-1}}{a^n} & a/2 < v \leq a \end{cases} \]
이 pdf는 \(a/2\) 에 대해 대칭이고 \(a/2\) 에서 최댓값을 가진다. \(n\) 이 커질수록 중간범위는 \(a/2\) 근처에 집중된다.
8 코드 예시
8.1 Step 1: 순수 Python 구현 (순서통계량 pdf 검증)
import math
import random
random.seed(42)
n = 10
n_sim = 100000
# 균일(0,1) 표본에서 j번째 순서통계량의 평균과 분산
print("=== 균일(0,1) 순서통계량: E[X_(j)] = j/(n+1) ===")
order_stats = {j: [] for j in range(1, n + 1)}
for _ in range(n_sim):
sample = sorted([random.random() for _ in range(n)])
for j in range(1, n + 1):
order_stats[j].append(sample[j - 1])
for j in [1, 3, 5, 8, 10]:
mean_obs = sum(order_stats[j]) / len(order_stats[j])
mean_theory = j / (n + 1)
var_obs = sum((x - mean_obs)**2 for x in order_stats[j]) / (len(order_stats[j]) - 1)
var_theory = j * (n - j + 1) / ((n + 1)**2 * (n + 2))
print(f" X_({j:>2}): E={mean_obs:.4f} (이론: {mean_theory:.4f}), "
f"Var={var_obs:.6f} (이론: {var_theory:.6f})")
# 범위 R = X_(n) - X_(1)의 분포
print(f"\n=== 범위 R = X_({n}) - X_(1), a=1 ===")
ranges = [order_stats[n][i] - order_stats[1][i] for i in range(n_sim)]
mean_R = sum(ranges) / len(ranges)
mean_R_theory = (n - 1) / (n + 1)
print(f" E[R] = {mean_R:.4f} (이론: {mean_R_theory:.4f})")이 코드는 균일분포 순서통계량이 \(\text{Beta}(j, n-j+1)\) 을 따르는지 평균과 분산으로 검증하고, 범위의 기댓값 \(E[R] = (n-1)/(n+1)\) 도 확인한다.
8.2 Step 2: scipy 구현 (순서통계량 분포와 응용)
import numpy as np
from scipy import stats
np.random.seed(42)
n = 20
n_sim = 100000
# --- 1. 순서통계량의 분포 검증 (KS test) ---
# 균일(0,1) 표본에서 j번째 순서통계량 ~ Beta(j, n-j+1)
print("=== 균일(0,1) 순서통계량 KS 검정 ===")
for j in [1, 5, 10, 15, 20]:
order_j = np.array([
np.sort(np.random.uniform(0, 1, n))[j - 1]
for _ in range(n_sim)
])
ks_stat, p_val = stats.kstest(order_j, 'beta', args=(j, n - j + 1))
print(f" X_({j:>2}) ~ Beta({j},{n-j+1}): KS={ks_stat:.4f}, p={p_val:.4f}")
# --- 2. 정규분포 순서통계량의 최솟값/최댓값 ---
print(f"\n=== 정규(0,1) 순서통계량, n={n} ===")
mins = np.array([np.random.normal(0, 1, n).min() for _ in range(n_sim)])
maxs = np.array([np.random.normal(0, 1, n).max() for _ in range(n_sim)])
medians = np.array([np.median(np.random.normal(0, 1, n)) for _ in range(n_sim)])
print(f" E[X_(1)] = {mins.mean():.4f} (최솟값)")
print(f" E[X_({n})] = {maxs.mean():.4f} (최댓값)")
print(f" E[중앙값] = {medians.mean():.4f} (이론: 0)")
print(f" SD[X_(1)] = {mins.std():.4f}")
print(f" SD[중앙값] = {medians.std():.4f} ← 최솟값보다 안정적")
# --- 3. 표본 크기에 따른 범위의 변화 ---
print(f"\n=== 균일(0,1) 범위 E[R] = (n-1)/(n+1) ===")
for n_test in [5, 10, 20, 50, 100]:
ranges = np.array([
np.ptp(np.random.uniform(0, 1, n_test))
for _ in range(n_sim)
])
print(f" n={n_test:>3}: E[R]={ranges.mean():.4f} (이론: {(n_test-1)/(n_test+1):.4f})")
# --- 4. 극값 분포: 지수분포 최솟값 ---
print(f"\n=== 지수(lambda=2) 최솟값 분포 ===")
lam = 2.0
n_exp = 10
mins_exp = np.array([
np.random.exponential(1/lam, n_exp).min()
for _ in range(n_sim)
])
# 지수분포 최솟값: X_(1) ~ Exp(n*lambda)
print(f" E[X_(1)] = {mins_exp.mean():.4f} (이론: {1/(n_exp*lam):.4f})")
print(f" SD[X_(1)] = {mins_exp.std():.4f} (이론: {1/(n_exp*lam):.4f})")이 코드는 네 가지를 검증한다: (1) 균일분포 순서통계량이 베타분포를 따르는지 KS 검정, (2) 정규분포에서 최솟값, 최댓값, 중앙값의 기댓값과 안정성 비교, (3) 표본 크기에 따른 범위의 수렴, (4) 지수분포 최솟값이 \(\text{Exp}(n\lambda)\) 를 따르는지 확인 (지수분포의 최솟값 성질).
9 왜 순서통계량이 중요한가
| 응용 분야 | 순서통계량의 역할 | 구체적 예시 |
|---|---|---|
| 비모수 검정 | 순위 기반 검정 통계량 | Wilcoxon 순위합 검정, Mann-Whitney \(U\) 검정 |
| 로버스트 추정 | 극단값에 둔감한 위치 추정 | 절사평균(trimmed mean), 중앙값 |
| 분포 무관 신뢰구간 | 순서통계량 기반 구간 | \(P(X_{(r)} < \theta < X_{(s)})\) 형태의 구간 |
| 극값 이론 | 최댓값/최솟값의 점근 분포 | Gumbel, Frechet, Weibull 분포 → 보험, 금융, 기후 |
| 품질관리 | 범위 기반 관리도 | \(R\) -차트 (범위 관리도) |
| 생존분석 | 순서 관측값 | 검열 데이터에서 사건 시간의 순서 |
| Q-Q plot | 표본 분위수 vs 이론 분위수 | 정규성 검정의 시각적 도구 |
| 부트스트랩 | 경험적 분포 함수 | 순서통계량으로 정의되는 계단함수 |
10 관련 주제
선행 지식
- 확률 표본의 기본 개념 (Basic Concepts of Random Samples)
- 확률변수 합의 표본분포 (Sums of Random Variables from a Random Sample)
- 확률 표본의 성질 개요 (Properties of a Random Sample: Overview)
후속 주제
- Convergence in Probability
- 데이터 축소의 원리 (Sufficiency, Likelihood, Equivariance)
- 점추정 (Point Estimation)
관련 개념
- 정규 모집단에서의 표본분포 (Sampling from the Normal Distribution)
- Monte Carlo Simulation — 순서통계량의 시뮬레이션 확인