1 개요
확률수렴과 거의 확실한 수렴은 확률변수 자체가 특정 값이나 확률변수에 수렴하는 것을 다루었다. 분포수렴(convergence in distribution)은 이와 근본적으로 다르다 — 수렴하는 것은 확률변수가 아니라 누적분포함수(CDF)이다.
분포수렴은 세 가지 수렴 중 가장 약하지만, 실무에서 가장 광범위하게 사용된다. 그 이유는 중심극한정리(CLT)가 분포수렴의 형태로 서술되기 때문이다. CLT와 그 확장(Slutsky 정리, 델타 방법)은 대표본 추론의 핵심 도구이다 (Casella & Berger, 2002, Ch.5).
2 정의
확률변수의 수열 \(X_1, X_2, \ldots\) 가 확률변수 \(X\) 에 분포수렴(converge in distribution)한다 함은:
\[ \lim_{n \to \infty} F_{X_n}(x) = F_X(x) \]
\(F_X(x)\) 가 연속인 모든 점 \(x\) 에서 성립하는 것을 말한다. 이를 \(X_n \xrightarrow{d} X\) 로 표기한다 (Casella & Berger, 2002, Ch.5).
2.1 정의의 핵심 특징
| 특징 | 설명 |
|---|---|
| CDF가 수렴 | 확률변수 자체가 아니라 분포함수가 수렴한다 |
| 연속점에서만 | CDF의 불연속점(점프)에서는 수렴이 요구되지 않는다 |
| 같은 확률공간 불필요 | \(X_n\) 들이 서로 다른 확률공간에 정의되어도 무방하다 |
주사위를 \(n\) 번 던져 표본평균의 히스토그램을 그린다. \(n = 5\) 일 때는 울퉁불퉁하지만, \(n = 100\) 이면 종 모양에 가까워지고, \(n = 10000\) 이면 거의 완벽한 정규분포 곡선이 된다. 히스토그램의 “모양”이 정규분포의 모양에 수렴하는 것 — 이것이 분포수렴이다. 개별 표본값이 어떤 값에 수렴하는 것이 아니라, 분포 자체가 수렴한다.
2.2 확률수렴과의 근본적 차이
| 확률수렴 | 분포수렴 | |
|---|---|---|
| 수렴 대상 | 확률변수 \(X_n\) 자체 | CDF \(F_{X_n}\) |
| 같은 확률공간 필요 | 필요 | 불필요 |
| 극한이 상수일 때 | — | 확률수렴과 동치 |
| 전형적 사용 | 일관성 (WLLN) | 점근 분포 (CLT) |
3 다른 수렴과의 관계
\[ \text{거의 확실한 수렴} \Rightarrow \text{확률수렴} \Rightarrow \text{분포수렴} \]
\(X_n \xrightarrow{P} X\) 이면 \(X_n \xrightarrow{d} X\) (Casella & Berger, 2002, Ch.5).
역방향은 일반적으로 성립하지 않는다. 단, 중요한 예외가 있다:
\(X_n \xrightarrow{d} \mu\) (상수) \(\iff\) \(X_n \xrightarrow{P} \mu\)
즉, 극한이 상수이면 분포수렴과 확률수렴은 동치이다 (Casella & Berger, 2002, Ch.5).
이 동치가 성립하는 이유: 상수 \(\mu\) 의 CDF는 \(\mu\) 에서 0에서 1로 점프하는 계단함수이다. CDF가 이 계단함수에 수렴한다는 것은 확률 질량이 \(\mu\) 에 집중된다는 것이므로, 확률수렴과 같은 의미이다.
4 예시: 균일분포 최댓값의 분포수렴
\(X_1, X_2, \ldots \overset{iid}{\sim} \text{Uniform}(0, 1)\) 이고 \(X_{(n)} = \max_{1 \leq i \leq n} X_i\) 이면 (Casella & Berger, 2002, Ch.5):
확률수렴: \(n \to \infty\) 이면 \(X_{(n)} \to 1\) 에 가까워진다. 실제로:
\[ P(|X_{(n)} - 1| \geq \epsilon) = P(X_{(n)} \leq 1 - \epsilon) = (1 - \epsilon)^n \to 0 \]
따라서 \(X_{(n)} \xrightarrow{P} 1\) 이다. 이는 “최댓값이 1에 수렴한다”는 직관과 일치한다.
분포수렴: \(X_{(n)}\) 자체는 상수 1에 수렴하므로 흥미롭지 않다. 그러나 스케일링하면:
\[ \epsilon = t/n \text{으로 놓으면:} \quad P(X_{(n)} \leq 1 - t/n) = (1 - t/n)^n \to e^{-t} \]
정리하면:
\[ P(n(1 - X_{(n)}) \leq t) \to 1 - e^{-t}, \quad t > 0 \]
즉, \(n(1 - X_{(n)}) \xrightarrow{d} \text{Exponential}(1)\) 이다. 최댓값이 1에 얼마나 빨리 접근하는지를 기술하는 것이 이 분포수렴이며, 속도가 \(1/n\) 이고 스케일링된 편차가 지수분포를 따른다.
이 결과는 극값 이론(extreme value theory)의 기본 사례이다. 보험, 금융, 기후에서 “최악의 경우”를 모델링할 때 이런 형태의 분포수렴이 핵심이 된다.
5 중심극한정리 (CLT)
분포수렴의 가장 중요한 응용이다.
\(X_1, X_2, \ldots\) 가 iid이고 \(EX_i = \mu\) , \(0 < \text{Var}(X_i) = \sigma^2 < \infty\) 이면:
\[ \frac{\sqrt{n}(\bar{X}_n - \mu)}{\sigma} \xrightarrow{d} N(0, 1) \]
(Casella & Berger, 2002, Ch.5)
5.1 CLT의 증명
전략: 표준화된 표본평균의 mgf가 \(e^{t^2/2}\) ( \(N(0,1)\) 의 mgf)에 수렴함을 보인다.
Step 1: \(Y_i = (X_i - \mu)/\sigma\) 로 표준화하면 \(EY_i = 0\) , \(\text{Var}(Y_i) = 1\) 이다.
\[ \frac{\sqrt{n}(\bar{X}_n - \mu)}{\sigma} = \frac{1}{\sqrt{n}}\sum_{i=1}^{n} Y_i \]
Step 2: mgf를 계산한다.
\[ M_{\sum Y_i / \sqrt{n}}(t) = \left[M_Y\left(\frac{t}{\sqrt{n}}\right)\right]^n \]
첫 번째 등호는 mgf의 스케일링 성질, 두 번째 등호는 iid의 독립성에 의한다.
Step 3: \(M_Y(t/\sqrt{n})\) 을 \(0\) 주위에서 테일러 전개한다.
\[ M_Y\left(\frac{t}{\sqrt{n}}\right) = M_Y(0) + M_Y'(0)\frac{t}{\sqrt{n}} + M_Y''(0)\frac{t^2}{2n} + R_Y\left(\frac{t}{\sqrt{n}}\right) \]
\(M_Y(0) = 1\) , \(M_Y'(0) = EY = 0\) , \(M_Y''(0) = EY^2 = 1\) 을 대입하면:
\[ M_Y\left(\frac{t}{\sqrt{n}}\right) = 1 + \frac{t^2}{2n} + R_Y\left(\frac{t}{\sqrt{n}}\right) \]
Step 4: 테일러 정리에 의해 나머지 항은 \(nR_Y(t/\sqrt{n}) \to 0\) 을 만족한다. 따라서:
\[ \left[M_Y\left(\frac{t}{\sqrt{n}}\right)\right]^n = \left[1 + \frac{1}{n}\left(\frac{t^2}{2} + nR_Y\left(\frac{t}{\sqrt{n}}\right)\right)\right]^n \]
\(a_n = t^2/2 + nR_Y(t/\sqrt{n}) \to t^2/2\) 이므로, \((1 + a_n/n)^n \to e^{a}\) (여기서 \(a = t^2/2\) )에 의해:
\[ \left[M_Y\left(\frac{t}{\sqrt{n}}\right)\right]^n \to e^{t^2/2} \]
이 극한은 연속 복리(continuous compounding)의 공식이다. 연이율 \(a\) 의 이자를 \(n\) 번 나누어 복리로 적용하면 원금이 \((1 + a/n)^n\) 배가 되는데, 복리 횟수를 무한히 늘리면 \(e^a\) 에 수렴한다. CLT 증명에서 각 \(Y_i\) 의 mgf가 “1보다 조금씩 큰” \(1 + t^2/(2n)\) 을 기여하고, 이것이 \(n\) 번 곱해져 \(e^{t^2/2}\) 가 되는 구조가 정확히 이 복리 논리와 같다. “아주 작은 변화를 아주 많이 누적”하면 지수함수가 등장한다는 직관이 CLT의 핵심에 있다.
이는 \(N(0, 1)\) 의 mgf이다. mgf의 수렴은 분포수렴을 함의하므로 (Theorem 2.3.12), 증명이 완성된다. \(\square\)
5.2 증명에 사용된 핵심 도구 요약
| 도구 | 역할 |
|---|---|
| 표준화 \(Y_i = (X_i - \mu)/\sigma\) | \(EY = 0\) , \(\text{Var}(Y) = 1\) 로 일반성 확보 |
| iid의 mgf 분해 | \(M_{\sum Y_i}(t) = [M_Y(t)]^n\) |
| 테일러 전개 | \(M_Y(t/\sqrt{n}) \approx 1 + t^2/(2n)\) |
| \((1 + a/n)^n \to e^a\) | 최종 극한 도출 |
5.3 CLT의 강한 형태
Theorem 5.5.14는 mgf의 존재를 가정한다. 더 일반적인 버전은 유한 분산만 가정한다:
\(X_1, X_2, \ldots\) 가 iid이고 \(EX_i = \mu\) , \(0 < \text{Var}(X_i) = \sigma^2 < \infty\) 이면 (mgf 가정 없이):
\[ \frac{\sqrt{n}(\bar{X}_n - \mu)}{\sigma} \xrightarrow{d} N(0, 1) \]
(Casella & Berger, 2002, Ch.5)
이 버전의 증명은 mgf 대신 특성함수(characteristic function)를 사용한다. 특성함수는 모든 분포에 대해 존재하므로 mgf 가정이 불필요하다.
특성함수는 \(\varphi_X(t) = E[e^{itX}]\) 로 정의된다 ( \(i = \sqrt{-1}\) 허수단위). mgf의 \(e^{tX}\) 를 \(e^{itX}\) 로 대체한 것이다. \(|e^{itX}| = 1\) 이 항상 성립하므로, mgf와 달리 꼬리가 두껍거나 분산이 무한인 분포에서도 기댓값이 반드시 존재한다. CLT 증명의 논리 구조 — 테일러 전개 → \(n\) 제곱 → 극한 — 는 mgf와 특성함수 모두에서 동일하게 작동하며, 특성함수 버전이 더 일반적인 전제에서 성립한다.
5.4 CLT가 실패하는 경우: 코시분포
\(X_i \overset{iid}{\sim} \text{Cauchy}(0, 1)\) 이면 \(\text{Var}(X_i) = \infty\) (기댓값조차 존재하지 않음)이므로 CLT의 전제 조건을 만족하지 않는다. 실제로 \(\bar{X}_n \sim \text{Cauchy}(0, 1)\) 이며, 표준화해도 정규분포에 수렴하지 않는다.
유한 분산은 CLT에서 “거의 필수적”인 가정이다. 정확히 말하면, 분산이 무한이면 CLT의 결론이 일반적으로 성립하지 않는다. 다만 안정분포(stable distribution) 이론에서는 유한 분산 없이도 성립하는 일반화된 CLT가 존재한다.
5.5 CLT의 실무적 응용
5.5.1 정규 근사의 속도
CLT는 “\(n \to \infty\) 에서 정규분포에 수렴한다”고 말하지만, 유한한 \(n\) 에서 근사가 얼마나 좋은지는 말해주지 않는다. 근사 품질은 모집단 분포에 따라 다르다:
| 모집단 | \(n = 30\) 에서 근사 품질 | 이유 |
|---|---|---|
| 대칭 분포 (정규, 균일) | 매우 좋음 | 이미 대칭이므로 빠르게 수렴 |
| 약한 비대칭 (지수) | 좋음 | 왜도가 크지 않음 |
| 강한 비대칭 (로그정규, 파레토) | 나쁠 수 있음 | 더 큰 \(n\) 필요 |
| 이산 (베르누이) | \(p\) 가 극단적이면 나쁨 | \(np > 5\) , \(n(1-p) > 5\) 규칙 |
5.5.2 예시: 음이항분포의 정규 근사
\(X_1, \ldots, X_{30} \overset{iid}{\sim} \text{NegBin}(10, 1/2)\) 에서 \(P(\bar{X} \leq 11)\) :
- \(EX = r(1-p)/p = 10\) , \(\text{Var}(X) = r(1-p)/p^2 = 20\)
\[ P(\bar{X} \leq 11) = P\left(\frac{\sqrt{30}(\bar{X} - 10)}{\sqrt{20}} \leq \frac{\sqrt{30} \cdot 1}{\sqrt{20}}\right) \approx P(Z \leq 1.225) = 0.8888 \]
정확값 0.8916과 비교하면 오차 약 0.003으로 우수한 근사이다.
6 Slutsky 정리
CLT에서 \(\sigma\) 를 알아야 하는 문제를 해결한다.
\(X_n \xrightarrow{d} X\) 이고 \(Y_n \xrightarrow{P} a\) (상수)이면:
(a) \(Y_n X_n \xrightarrow{d} aX\)
(b) \(X_n + Y_n \xrightarrow{d} X + a\)
(Casella & Berger, 2002, Ch.5)
6.1 핵심 응용: 분산 추정
CLT에 의해 \(\sqrt{n}(\bar{X}_n - \mu)/\sigma \xrightarrow{d} N(0,1)\) 이다. 그러나 \(\sigma\) 를 모른다. \(S_n^2 \xrightarrow{P} \sigma^2\) 이므로 \(\sigma/S_n \xrightarrow{P} 1\) 이다. Slutsky 정리 (a)를 적용하면:
\[ \frac{\sqrt{n}(\bar{X}_n - \mu)}{S_n} = \underbrace{\frac{\sigma}{S_n}}_{\xrightarrow{P} 1} \cdot \underbrace{\frac{\sqrt{n}(\bar{X}_n - \mu)}{\sigma}}_{\xrightarrow{d} N(0,1)} \xrightarrow{d} N(0,1) \]
\(\sigma\) 를 \(S_n\) 으로 대체해도 점근적 정규성이 보존된다. 이것이 대표본에서 \(t\) -검정과 \(z\) -검정이 동일한 결과를 주는 이유의 수학적 근거이다.
6.2 Slutsky 정리의 주의점
Slutsky 정리는 \(Y_n\) 이 상수에 확률수렴할 때만 적용된다. \(Y_n\) 이 확률변수에 분포수렴하면 일반적으로 성립하지 않는다.
| 조건 | 결론 |
|---|---|
| \(X_n \xrightarrow{d} X\) , \(Y_n \xrightarrow{P} a\) (상수) | \(X_n Y_n \xrightarrow{d} aX\) (성립) |
| \(X_n \xrightarrow{d} X\) , \(Y_n \xrightarrow{d} Y\) (확률변수) | \(X_n Y_n \xrightarrow{d} XY\) (일반적으로 불성립) |
두 번째 경우에는 \(X_n\) 과 \(Y_n\) 의 결합분포 정보가 필요하며, 주변 분포의 수렴만으로는 결합의 수렴을 보장할 수 없다.
7 델타 방법 (Delta Method)
통계량의 함수에 대한 점근 분포를 도출한다.
\(\sqrt{n}(Y_n - \theta) \xrightarrow{d} N(0, \sigma^2)\) 이고, \(g'(\theta)\) 가 존재하며 \(g'(\theta) \neq 0\) 이면:
\[ \sqrt{n}[g(Y_n) - g(\theta)] \xrightarrow{d} N(0, \sigma^2[g'(\theta)]^2) \]
(Casella & Berger, 2002, Ch.5)
7.1 증명
1차 테일러 전개 \(g(Y_n) \approx g(\theta) + g'(\theta)(Y_n - \theta)\) 를 적용하면:
\[ \sqrt{n}[g(Y_n) - g(\theta)] \approx g'(\theta) \cdot \sqrt{n}(Y_n - \theta) \]
\(Y_n \xrightarrow{P} \theta\) (CLT 전제에서 유도)이므로 나머지 항은 확률적으로 0에 수렴한다. Slutsky 정리에 의해 \(g'(\theta)\) (상수)를 곱해도 분포수렴이 보존되므로 결과를 얻는다. \(\square\)
7.2 델타 방법의 직관
\(g\) 가 미분 가능하면 \(\theta\) 근처에서 선형 \(g(y) \approx g(\theta) + g'(\theta)(y - \theta)\) 이다. 선형 변환 하에서:
- 정규분포는 정규분포로 보존된다
- 분산에 기울기의 제곱 \([g'(\theta)]^2\) 이 곱해진다
측정 장비로 길이 \(L\) 을 재서 넓이 \(A = L^2\) 을 구한다. \(L\) 의 측정 오차가 \(\delta L\) 이면 넓이의 오차는 \(\delta A \approx 2L \cdot \delta L\) 이다 (미분으로 전파). 이것이 델타 방법의 본질이며, 실험 과학의 오차 전파 공식(error propagation)이 바로 델타 방법이다.
7.3 예시 1: 오즈(odds)의 점근 분포
\(X_1, \ldots, X_n \overset{iid}{\sim} \text{Bernoulli}(p)\) 에서 \(\hat{p} = \bar{X}\) 로 오즈 \(g(p) = p/(1-p)\) 를 추정한다.
- CLT: \(\sqrt{n}(\hat{p} - p) \xrightarrow{d} N(0, p(1-p))\)
- \(g'(p) = 1/(1-p)^2\)
- 델타 방법:
\[ \sqrt{n}\left(\frac{\hat{p}}{1-\hat{p}} - \frac{p}{1-p}\right) \xrightarrow{d} N\left(0, \frac{p(1-p)}{(1-p)^4}\right) = N\left(0, \frac{p}{(1-p)^3}\right) \]
따라서:
\[ \text{Var}\left(\frac{\hat{p}}{1-\hat{p}}\right) \approx \frac{p}{n(1-p)^3} \]
7.4 예시 2: 역수의 점근 분포
\(\bar{X}_n\) 으로 \(1/\mu\) 를 추정할 때 ( \(\mu \neq 0\) ):
- \(g(\mu) = 1/\mu\) , \(g'(\mu) = -1/\mu^2\)
- 델타 방법:
\[ \sqrt{n}\left(\frac{1}{\bar{X}_n} - \frac{1}{\mu}\right) \xrightarrow{d} N\left(0, \frac{\sigma^2}{\mu^4}\right) \]
\(\sigma^2\) 와 \(\mu\) 를 모르면 \(S_n^2\) 와 \(\bar{X}_n\) 으로 대체한다. Slutsky 정리에 의해 점근 분포는 보존된다.
7.5 다변량 델타 방법
\(T = (T_1, \ldots, T_k)\) 가 평균 \(\theta = (\theta_1, \ldots, \theta_k)\) 를 가질 때, \(g(T)\) 의 분산은:
\[ \text{Var}(g(T)) \approx \sum_{i=1}^{k} [g_i'(\theta)]^2 \text{Var}(T_i) + 2\sum_{i>j} g_i'(\theta) g_j'(\theta) \text{Cov}(T_i, T_j) \]
이것이 오차 전파 공식이며, 벡터 표기로는 \(\text{Var}(g(T)) \approx \nabla g(\theta)^\top \Sigma \nabla g(\theta)\) 이다. 여기서 \(\Sigma\) 는 \(T\) 의 공분산 행렬이다.
7.6 2차 델타 방법
\(g'(\theta) = 0\) 이면 1차 델타 방법이 퇴화한다 (분산이 0). 이 경우 2차 항이 지배적이 된다:
\[ n[g(Y_n) - g(\theta)] \xrightarrow{d} \frac{\sigma^2 g''(\theta)}{2} \chi^2_1 \]
극한 분포가 정규가 아니라 카이제곱이라는 점이 주목할 만하다. \(g'(\theta) = 0\) 인 점은 \(g\) 의 극값이므로, 극값 근처에서의 추정은 더 느린 수렴 속도( \(1/n\) vs \(1/\sqrt{n}\) )를 보인다.
7.7 예시 3: 로그 변환과 로그 오즈비
역학 연구에서 오즈비(odds ratio) \(\text{OR} = \frac{p_1/(1-p_1)}{p_2/(1-p_2)}\) 의 신뢰구간을 구할 때, 직접 \(\text{OR}\) 에 델타 방법을 적용하면 분포가 심하게 비대칭이다. 대신 \(g(\text{OR}) = \log(\text{OR})\) 를 사용한다.
\(\hat{p}_1\) , \(\hat{p}_2\) 가 독립이고 각각 CLT를 만족하면, 다변량 델타 방법에 의해:
\[ \text{Var}(\log \widehat{\text{OR}}) \approx \frac{1}{n_1 p_1(1-p_1)} + \frac{1}{n_2 p_2(1-p_2)} \]
로그 오즈비는 대칭적 분포에 더 가까우므로 정규 근사가 잘 작동한다. 이것이 로지스틱 회귀에서 계수의 신뢰구간을 로그 스케일에서 구한 후 역변환하는 이유이다.
7.8 예시 4: 분산 안정화 변환 (Variance-Stabilizing Transformation)
델타 방법의 역문제를 생각할 수 있다: 점근 분산이 \(\theta\) 에 의존하지 않도록 하는 \(g\) 를 찾는 것이다.
\(\sqrt{n}(Y_n - \theta) \xrightarrow{d} N(0, v(\theta))\) 일 때, \(g(Y_n)\) 의 점근 분산은:
\[ [g'(\theta)]^2 v(\theta) = c \quad (\text{상수}) \]
이를 만족하는 \(g\) 는:
\[ g(\theta) = \int \frac{1}{\sqrt{v(\theta)}} d\theta \]
| 모집단 | \(v(\theta)\) | 분산 안정화 변환 \(g\) | 용도 |
|---|---|---|---|
| 포아송( \(\lambda\) ) | \(\lambda\) | \(g(\lambda) = \sqrt{\lambda}\) (제곱근 변환) | 카운트 데이터 |
| 이항( \(n, p\) ) | \(p(1-p)\) | \(g(p) = \arcsin(\sqrt{p})\) (아크사인 변환) | 비율 데이터 |
| 지수( \(\beta\) ) | \(\beta^2\) | \(g(\beta) = \log(\beta)\) (로그 변환) | 양수 데이터 |
분산이 모수에 의존하면, 신뢰구간의 폭이 모수 값에 따라 달라진다. 예를 들어 포아송에서 \(\lambda = 1\) 일 때와 \(\lambda = 100\) 일 때 표본평균의 분산이 100배 차이 난다. 제곱근 변환 후에는 점근 분산이 \(1/4\) 로 상수가 되어, 모수 값에 무관하게 일정한 정밀도의 추론이 가능하다.
7.9 예시 5: 피셔 \(z\) -변환 (상관계수)
표본 상관계수 \(r\) 은 모상관계수 \(\rho\) 의 추정량이지만, \(|\rho|\) 가 1에 가까울수록 분포가 비대칭이 되어 정규 근사가 나빠진다. 피셔의 \(z\) -변환:
\[ z = g(r) = \frac{1}{2}\log\frac{1+r}{1-r} = \text{arctanh}(r) \]
이것은 분산 안정화 변환의 한 예이다. 변환 후 점근 분산은 \(\rho\) 에 거의 무관하게 \(1/(n-3)\) 이 된다:
\[ \sqrt{n-3}\left(\text{arctanh}(r) - \text{arctanh}(\rho)\right) \xrightarrow{d} N(0, 1) \]
이를 이용해 상관계수의 신뢰구간을 구한다: \(z\) -스케일에서 구간을 만든 후 \(\tanh\) 로 역변환한다.
7.10 다변량 델타 방법: 구체적 계산 예시
두 독립 표본에서 각각 평균 \(\bar{X}\) , \(\bar{Y}\) 를 구하고 비율 \(R = \bar{X}/\bar{Y}\) 를 추정한다고 하자.
\(g(x, y) = x/y\) 이면:
\[ g_1'(\mu_X, \mu_Y) = \frac{\partial}{\partial x}\frac{x}{y}\bigg|_{(\mu_X, \mu_Y)} = \frac{1}{\mu_Y}, \quad g_2'(\mu_X, \mu_Y) = -\frac{\mu_X}{\mu_Y^2} \]
\(\bar{X}\) 와 \(\bar{Y}\) 가 독립이면 공분산 항이 0이므로:
\[ \text{Var}\left(\frac{\bar{X}}{\bar{Y}}\right) \approx \frac{1}{\mu_Y^2} \cdot \frac{\sigma_X^2}{n_X} + \frac{\mu_X^2}{\mu_Y^4} \cdot \frac{\sigma_Y^2}{n_Y} \]
이를 정리하면:
\[ \text{Var}\left(\frac{\bar{X}}{\bar{Y}}\right) \approx \frac{R^2}{n}\left(\frac{\text{CV}_X^2}{1} + \frac{\text{CV}_Y^2}{1}\right) \quad (n_X = n_Y = n) \]
여기서 \(\text{CV} = \sigma/\mu\) 는 변동계수이다. 비율 추정량의 정밀도는 분자와 분모 각각의 변동계수에 의해 결정된다는 직관적 결과를 얻는다.
8 코드 예시
8.1 Step 1: 순수 Python 구현 (CLT 검증)
import math
import random
random.seed(42)
# CLT: 다양한 모집단에서 표준화 표본평균의 분위수
n = 100
n_sim = 50000
# 지수분포(lambda=3): mu = 1/3, sigma^2 = 1/9
lam = 3.0
mu = 1.0 / lam
sigma = 1.0 / lam
z_values = []
for _ in range(n_sim):
sample = [-math.log(1 - random.random()) / lam for _ in range(n)]
x_bar = sum(sample) / n
z = math.sqrt(n) * (x_bar - mu) / sigma
z_values.append(z)
z_values.sort()
print("=== CLT: 지수분포(3), n=100, 표준화 표본평균 분위수 ===")
quantiles = {0.01: -2.326, 0.05: -1.645, 0.25: -0.674, 0.5: 0.0,
0.75: 0.674, 0.95: 1.645, 0.99: 2.326}
for q, z_theory in quantiles.items():
idx = int(q * len(z_values))
print(f" {q*100:>5.1f}%: 시뮬레이션={z_values[idx]:>7.3f}, N(0,1)={z_theory:>7.3f}")
# Slutsky: sigma를 S로 대체
print(f"\n=== Slutsky: sigma vs S 대체 ===")
z_with_sigma = []
z_with_s = []
for _ in range(n_sim):
sample = [-math.log(1 - random.random()) / lam for _ in range(n)]
x_bar = sum(sample) / n
s = math.sqrt(sum((x - x_bar)**2 for x in sample) / (n - 1))
z_with_sigma.append(math.sqrt(n) * (x_bar - mu) / sigma)
z_with_s.append(math.sqrt(n) * (x_bar - mu) / s)
# 95번째 백분위수 비교
z_with_sigma.sort()
z_with_s.sort()
idx_95 = int(0.95 * len(z_with_sigma))
print(f" 95% 분위수 (sigma): {z_with_sigma[idx_95]:.3f}")
print(f" 95% 분위수 (S): {z_with_s[idx_95]:.3f}")
print(f" 이론 (N(0,1)): 1.645")8.2 Step 2: scipy 구현 (CLT + 델타 방법 + 극값 분포수렴)
import numpy as np
from scipy import stats
np.random.seed(42)
n_sim = 100000
# --- 1. CLT: n에 따른 정규 근사의 개선 ---
print("=== CLT: 지수분포, n별 KS 통계량 ===")
for n in [5, 10, 30, 100, 500, 2000]:
z_stats = np.array([
np.sqrt(n) * (np.random.exponential(1, n).mean() - 1) / 1
for _ in range(n_sim)
])
ks_stat, p_val = stats.kstest(z_stats, 'norm')
print(f" n={n:>4}: KS={ks_stat:.4f}, p={p_val:.4f}")
# --- 2. 균일분포 최댓값: n(1 - X_(n)) → Exp(1) ---
print(f"\n=== 극값 분포수렴: n(1 - X_(n)) → Exp(1) ===")
for n in [10, 50, 200, 1000]:
scaled_max = np.array([
n * (1 - np.random.uniform(0, 1, n).max())
for _ in range(n_sim)
])
ks_stat, p_val = stats.kstest(scaled_max, 'expon')
print(f" n={n:>4}: KS={ks_stat:.4f}, p={p_val:.4f}")
# --- 3. 델타 방법: odds의 점근 분포 ---
print(f"\n=== 델타 방법: odds = p/(1-p) ===")
p_true = 0.3
n = 200
odds_true = p_true / (1 - p_true)
odds_estimates = []
for _ in range(n_sim):
p_hat = np.random.binomial(n, p_true) / n
if 0 < p_hat < 1:
odds_estimates.append(p_hat / (1 - p_hat))
odds_estimates = np.array(odds_estimates)
# 점근 분산: p / (n * (1-p)^3)
var_delta = p_true / (n * (1 - p_true)**3)
var_sim = odds_estimates.var()
print(f" Var(odds) 델타 방법 = {var_delta:.6f}")
print(f" Var(odds) 시뮬레이션 = {var_sim:.6f}")
# 표준화된 odds가 N(0,1)을 따르는지 확인
z_odds = (odds_estimates - odds_true) / np.sqrt(var_delta)
ks_stat, p_val = stats.kstest(z_odds, 'norm')
print(f" 표준화 odds KS test: stat={ks_stat:.4f}, p={p_val:.4f}")
# --- 4. 역수 추정: 1/X_bar의 점근 분포 ---
print(f"\n=== 델타 방법: 1/X_bar, 포아송(5) ===")
mu_true = 5.0
n = 100
inv_estimates = np.array([
1.0 / np.random.poisson(mu_true, n).mean()
for _ in range(n_sim)
])
# 이론: Var(1/X_bar) ≈ sigma^2 / (n * mu^4) = mu / (n * mu^4) = 1/(n*mu^3)
var_delta_inv = 1.0 / (n * mu_true**3)
var_sim_inv = inv_estimates.var()
print(f" Var(1/X_bar) 델타 방법 = {var_delta_inv:.8f}")
print(f" Var(1/X_bar) 시뮬레이션 = {var_sim_inv:.8f}")이 코드는 네 가지를 검증한다: (1) CLT의 수렴 속도 — \(n\) 별 KS 통계량, (2) 극값의 분포수렴 \(n(1-X_{(n)}) \to \text{Exp}(1)\) , (3) 델타 방법에 의한 오즈 추정량의 점근 정규성, (4) 역수 \(1/\bar{X}\) 에 대한 델타 방법의 분산 근사.
8.3 Step 3: 분산 안정화 변환과 피셔 \(z\) -변환 검증
import numpy as np
from scipy import stats
np.random.seed(42)
n_sim = 50000
# --- 1. 포아송 분산 안정화: sqrt 변환 ---
print("=== 포아송 분산 안정화: sqrt(X_bar) ===")
for lam in [1, 5, 20, 100]:
n = 50
# 원래 스케일: Var(X_bar) = lambda/n (lambda에 의존)
x_bars = np.array([np.random.poisson(lam, n).mean() for _ in range(n_sim)])
# sqrt 변환: Var(sqrt(X_bar)) ≈ 1/(4n) (lambda에 무관)
sqrt_x_bars = np.sqrt(x_bars)
var_original = x_bars.var()
var_sqrt = sqrt_x_bars.var()
var_theory_original = lam / n
var_theory_sqrt = 1.0 / (4 * n)
print(f" lambda={lam:>3}: Var(X_bar)={var_original:.4f} (이론:{var_theory_original:.4f}), "
f"Var(sqrt)={var_sqrt:.4f} (이론:{var_theory_sqrt:.4f})")
# --- 2. 이항 분산 안정화: arcsin(sqrt) 변환 ---
print(f"\n=== 이항 분산 안정화: arcsin(sqrt(p_hat)) ===")
n = 100
for p in [0.05, 0.2, 0.5, 0.8, 0.95]:
p_hats = np.array([np.random.binomial(n, p) / n for _ in range(n_sim)])
arcsin_p = np.arcsin(np.sqrt(p_hats))
var_original = p_hats.var()
var_arcsin = arcsin_p.var()
var_theory_arcsin = 1.0 / (4 * n)
print(f" p={p:.2f}: Var(p_hat)={var_original:.6f}, "
f"Var(arcsin)={var_arcsin:.6f} (이론:{var_theory_arcsin:.6f})")
# --- 3. 피셔 z-변환: 상관계수 ---
print(f"\n=== 피셔 z-변환: arctanh(r), n=30 ===")
n = 30
for rho in [0.0, 0.3, 0.6, 0.9]:
# 이변량 정규 표본 생성
z_values = []
r_values = []
for _ in range(n_sim):
# Cholesky 분해로 상관 있는 정규 생성
z1 = np.random.normal(0, 1, n)
z2 = rho * z1 + np.sqrt(1 - rho**2) * np.random.normal(0, 1, n)
r = np.corrcoef(z1, z2)[0, 1]
r_values.append(r)
z_values.append(np.arctanh(r))
r_values = np.array(r_values)
z_values = np.array(z_values)
# r의 분산은 rho에 의존, z의 분산은 ≈ 1/(n-3)
var_r = r_values.var()
var_z = z_values.var()
var_z_theory = 1.0 / (n - 3)
print(f" rho={rho:.1f}: Var(r)={var_r:.4f} (rho 의존), "
f"Var(z)={var_z:.4f} (이론:{var_z_theory:.4f}, rho 무관)")
# --- 4. 다변량 델타 방법: 비율 X_bar/Y_bar ---
print(f"\n=== 다변량 델타 방법: R = X_bar/Y_bar ===")
mu_x, sigma_x = 10.0, 2.0
mu_y, sigma_y = 5.0, 1.0
R_true = mu_x / mu_y
n = 200
R_estimates = np.array([
np.random.normal(mu_x, sigma_x, n).mean() /
np.random.normal(mu_y, sigma_y, n).mean()
for _ in range(n_sim)
])
# 이론: Var(R) ≈ R^2 * (CV_X^2/n + CV_Y^2/n)
cv_x = sigma_x / mu_x
cv_y = sigma_y / mu_y
var_delta_R = R_true**2 * (cv_x**2 / n + cv_y**2 / n)
var_sim_R = R_estimates.var()
print(f" R = mu_X/mu_Y = {R_true}")
print(f" Var(R) 델타 방법 = {var_delta_R:.6f}")
print(f" Var(R) 시뮬레이션 = {var_sim_R:.6f}")이 코드는 네 가지를 추가로 검증한다: (1) 포아송의 제곱근 변환이 분산을 \(\lambda\) 에 무관하게 안정화하는지 확인, (2) 이항의 아크사인 변환이 \(p\) 에 무관한 분산을 주는지 확인, (3) 피셔 \(z\) -변환이 상관계수의 분산을 \(\rho\) 에 무관하게 안정화하는지 확인, (4) 다변량 델타 방법에 의한 비율 \(\bar{X}/\bar{Y}\) 의 분산 근사.
9 응용 분야
| 분야 | 분포수렴 도구 | 구체적 예시 |
|---|---|---|
| 가설 검정 | CLT → 대표본 \(z\) -검정 | 두 비율 차이의 유의성 검정 |
| 신뢰구간 | CLT + Slutsky | \(\bar{X} \pm z_{\alpha/2} S/\sqrt{n}\) |
| 로지스틱 회귀 | 델타 방법 → 오즈비 CI | 오즈비의 로그 변환 후 정규 근사 |
| 생존분석 | 델타 방법 → 위험비 CI | Cox 회귀 계수의 점근 분포 |
| 극값 이론 | 최댓값의 분포수렴 | VaR, 홍수 수위 예측 |
| 베이지안 | BvM 정리 → 사후분포 정규 근사 | 대표본에서 사전분포 영향 소멸 |
| 메타분석 | CLT → 통합 효과 크기 | 여러 연구 결과의 가중 평균 분포 |
10 관련 주제
선행 지식
- 확률수렴 (Convergence in Probability)
- 거의 확실한 수렴 (Almost Sure Convergence)
- 수렴 개념 (Convergence Concepts) — 전체 구조 조망
후속 주제
- 점추정 (Point Estimation) — 점근 효율성, MLE의 점근 정규성
- 구간추정 (Interval Estimation) — CLT 기반 대표본 신뢰구간
- 데이터 축소의 원리 (Sufficiency, Likelihood, Equivariance)
관련 개념