1 서론 — CLT 를 넘어서
중심극한정리 (CLT) 는 통계학의 초석:
\[ X_n = \frac{Y_1 + \cdots + Y_n - n\mu}{\sigma\sqrt n} \overset{d}{\to} N(0, 1). \]
그러나 수렴 속도 는 Berry-Esseen 정리에 의해
\[ |F_n(x) - \Phi(x)| \leq \frac{C\rho_3}{\sqrt n}. \]
\(O(n^{-1/2})\) 오차. 작은 \(n\) 에서는 \(\Phi\) 근사가 부정확할 수 있다.
Edgeworth series 는 CLT 를 한 차원 더 정밀하게 — cumulant 기반 보정을 추가해 오차를 \(o(n^{-1})\) 로 줄인다. 1905 년 Edgeworth 의 원 논문 이후 점근 통계의 표준 도구.
McCullagh-Nelder (1989) 의 Appendix B 는 Edgeworth 의 압축 소개 — 식과 해석만 제시하고 증명 생략. 이 포스트는 유도 아이디어 + 해석 + 실무 적용 + 수치 검증 을 심화한다.
1.1 왜 GLM 책에서 Edgeworth 인가
세 가지 활용:
- 작은 표본 정확성: CLT 가 부정확할 때 p-value · 신뢰구간의 고차 보정.
- Bartlett 조정 (§15.3) 유도: Bartlett 보정의 이론적 근거 가 Edgeworth 확장.
- Saddlepoint 근사 연결: 현대의 saddlepoint 가 Edgeworth 의 개선판.
2 Edgeworth 급수 — 연속 분포 (B.1)
2.1 정의
표준화 합 \(X_n = (\sum Y_i - n\mu)/(\sigma\sqrt n)\). 분포 함수 \(F_n(x) = \Pr(X_n \leq x)\).
Edgeworth 근사 (McCullagh-Nelder B.1):
\[ E_n(x) = \Phi(x) - \phi(x)\left\{ \frac{\rho_3 (x^2 - 1)}{6\sqrt n} + \frac{\rho_4 (x^3 - 3x)}{24 n} + \frac{\rho_3^2 (x^5 - 10x^3 + 15x)}{72 n} \right\}. \tag{B.1} \]
\(\rho_3 = \kappa_3/\kappa_2^{3/2}\) (표준화 왜도), \(\rho_4 = \kappa_4/\kappa_2^2\) (표준화 첨도).
오차: \(F_n(x) - E_n(x) = o(n^{-1})\) uniformly on bounded \(x\).
2.2 Hermite 다항식의 등장
(B.1) 의 괄호 안 항들 — \((x^2 - 1)\), \((x^3 - 3x)\), \((x^5 - 10x^3 + 15x)\) — 는 Hermite 다항식:
\[ H_2(x) = x^2 - 1, \quad H_3(x) = x^3 - 3x, \quad H_5(x) = x^5 - 10x^3 + 15x. \]
Hermite 다항식은 정규 밀도의 도함수 와 관련:
\[ \phi^{(k)}(x) = (-1)^k H_k(x) \phi(x). \]
2.3 왜 Hermite 인가
유도 직관: \(F_n - \Phi\) 가 \(\phi\) 에 직교 함수로 전개 될 수 있다. Hermite 가 정규 분포에 대한 직교 기저.
구체적으로 확률변수 \(X_n\) 의 특성함수 (characteristic function) 를 \(\log \psi_{X_n}\) (cumulant generating function) 으로 전개:
\[ \log \psi_{X_n}(t) = -t^2/2 + \frac{\rho_3}{6\sqrt n}(it)^3 + \frac{\rho_4}{24n}(it)^4 + \cdots. \]
역 푸리에 변환을 하면 밀도 근사:
\[ f_n(x) \approx \phi(x)\{1 + \frac{\rho_3}{6\sqrt n} H_3(x) + \frac{\rho_4}{24n} H_4(x) + \cdots\}. \]
(Hermite 등장.) 적분 → 분포 함수 형태가 (B.1).
2.4 각 보정 항의 의미
2.4.1 첫 번째 보정: \(\rho_3 / \sqrt n\)
\[\frac{\rho_3 (x^2 - 1)}{6\sqrt n}.\]
왜도 보정. \(\rho_3\) 가 크면 정규에서 가장 빨리 (= \(1/\sqrt n\) 속도) 이탈. 특히 이항 분포에서 \(\pi \neq 0.5\) 면 \(\rho_3 \neq 0\) — 편향 심각.
\(x^2 - 1\): \(|x| > 1\) 에서 양, \(|x| < 1\) 에서 음. 꼬리 (큰 \(|x|\)) 를 비대칭으로 조정.
2.4.2 두 번째 보정: \(\rho_4 / n\)
\[\frac{\rho_4 (x^3 - 3x)}{24 n}.\]
첨도 보정. \(\rho_4\) 가 크면 꼬리가 무겁다 (leptokurtic). 정규 대비 중심 첨단 + 꼬리 두꺼움.
\(x^3 - 3x\): 3 차 다항식. \(|x|\) 가 큰 영역에서 부호 변화 — 꼬리 밀도 조정.
2.4.3 세 번째 보정: \(\rho_3^2 / n\)
\[\frac{\rho_3^2 (x^5 - 10x^3 + 15x)}{72 n}.\]
왜도의 제곱 기여. 차수 \(1/n\) 이지만 \(\rho_3\) 가 두 번 등장 — 왜도 효과의 2차 성분.
왜도가 있으면 꼬리 비대칭 이 복잡해지고 5 차 다항식 형태로 보정.
2.5 크기 비교
\(n\) 이 클 때 항의 크기:
\[O(1) > O(n^{-1/2}) > O(n^{-1}) = O(n^{-1}).\]
실무적으로 첫 두 항이 주요 보정. 세 번째 항은 \(\rho_3^2\) 가 크면 중요.
2.6 Hermite 다항식 성질
Hermite 다항식의 유용한 성질:
- 직교성: \(\int H_m(x) H_n(x) \phi(x) dx = \delta_{mn} n!\).
- 회귀 관계: \(H_{n+1}(x) = xH_n(x) - nH_{n-1}(x)\).
- Rodrigues 공식: \(H_n(x) = (-1)^n e^{x^2/2} \frac{d^n}{dx^n} e^{-x^2/2}\).
3 번 공식이 Hermite 가 정규 밀도와 연결되는 이유.
CLT 는 \(f_n \approx \phi\) — 표준 정규 밀도. 그러나 실제 \(f_n\) 은 약간 비대칭 (skew) 이고 꼬리가 다르다.
Edgeworth 는 이 차이를 Hermite 다항식 기저 로 보정:
\[ f_n \approx \phi \times \{1 + \text{skew 보정} + \text{kurtosis 보정} + \cdots\}. \]
보정항은 \(n\) 이 커질수록 사라지지만, 작은 \(n\) 에서 극적 개선.
비유: CLT 가 “대략의 그림자”, Edgeworth 가 “그림자 + 미세 주름 복원”.
3 Lattice 분포의 문제 — Sheppard 보정 (B.2-3)
3.1 Lattice 분포의 본질적 차이
\(Y\) 가 이산 값 (정수, 유리수 배수) 만 가지는 경우. \(F_n(x)\) 는 계단 함수 — 점프가 있다.
점프 크기 ≈ 확률 질량 \(\Pr(Y = \text{특정 값})\) 이 \(O(n^{-1/2})\) 수준.
문제: Edgeworth 근사 \(E_n(x)\) 는 연속 함수. 점프를 표현 못 함. 따라서 \(F_n - E_n\) 이 \(O(n^{-1/2})\) 오차로 묶임 — 원래 Edgeworth 의 \(o(n^{-1})\) 개선이 무효.
3.2 Sheppard 보정
McCullagh-Nelder 의 해법 (B.2):
연속성 교정 abscissa:
\[ z = \frac{y_1 + \cdots + y_n - n\mu + 1/2}{\sigma\sqrt n}. \]
정밀도 조정:
\[ \tau = 1 + \frac{1}{24 n \sigma^2}. \]
조정된 Edgeworth:
\[ F_n(z) = E_n(\tau z) + o(n^{-1}). \tag{B.3} \]
3.3 두 보정의 역할
3.3.1 연속성 보정 (continuity correction)
\(y + 1/2\) 의 \(1/2\). “정수 눈금 사이의 중점” 으로 평가.
\(F_n\) 이 \([y, y+1)\) 구간에서 상수 → 중점 \(y + 1/2\) 에서 평가하면 한 구간 안 의 평균 오차 최소화.
효과: \(O(n^{-1/2})\) 크기의 오차 제거.
3.3.2 Sheppard 정밀도 조정
\(\tau z\) 의 \(\tau = 1 + \frac{1}{24 n\sigma^2}\).
약간 확대된 abscissa. \(1/24n\sigma^2\) 는 매우 작지만 \(O(n^{-1})\) 수준의 정밀도 추가.
Sheppard (1898) 의 원 논문이 이산화 편향의 \(1/12\) 차이 보정에서 유래 — 24 의 반수.
3.4 결과의 정밀도
continuous Edgeworth: \(O(n^{-1})\) 오차 (B.1). lattice + Sheppard: \(O(n^{-1})\) 오차 (B.3). 연속과 동등.
즉 lattice 의 구조적 문제가 올바른 보정으로 완전 극복 가능.
4 이항 분포에의 적용
4.1 이항 특수화
\(Y \sim B(m, \pi)\) — 단일 이항 관측. 적절한 \(z\), \(\tau\), \(\rho_3\), \(\rho_4\):
\[ z = \frac{y - m\pi + 1/2}{\sqrt{m\pi(1-\pi)}} \]
\[ \tau = 1 + \frac{1}{24 m\pi(1-\pi)} \]
\[ \rho_3 = \frac{1 - 2\pi}{\sqrt{m\pi(1-\pi)}} \]
\[ \rho_4 = \frac{1 - 6\pi(1-\pi)}{m\pi(1-\pi)} \]
4.2 \(n = 1\) 사용
이항 “표본 크기” 는 단일 관측 \(Y\) 이지만 효과적 “반복 수” 는 \(m\). McCullagh-Nelder: “\(n = 1\) 을 (B.1), (B.3) 에 대입 — \(m\) 은 이미 \(\rho_3, \rho_4\) 에 포함”.
4.3 정확도 조건
McCullagh-Nelder: “\(m\pi(1-\pi) > 2.0\) 이면 근사 상당히 정확”.
예시: \(m = 10, \pi = 0.5\) 이면 \(m\pi(1-\pi) = 2.5\) — OK. \(m = 10, \pi = 0.1\) 이면 \(0.9\) — 부적절.
경험 규칙: “expected number of successes” \(m\pi \geq 5\) 와 “expected failures” \(m(1-\pi) \geq 5\) 가 일반 기준. 둘 다 5 이상이면 Edgeworth 가 매우 정확.
4.4 \(\pi = 0.5\) 특수
\(\pi = 0.5\): \(\rho_3 = 0\) (대칭), \(\rho_4 = -2/m\) (약간 platykurtic — 정규보다 덜 뾰족).
이 경우 \(\rho_3 / \sqrt n\) 항 사라짐 — Edgeworth 가 CLT 와 더 가까움. \(\pi\) 가 극단일수록 왜도 커져 CLT 오차 큼 → Edgeworth 효과 큼.
5 Esseen (1945) 의 일반화
McCullagh-Nelder 마무리 언급:
“Approximation (B.3) is a simplified version of a series expansion given by Esseen (1945), who gives the expansion to higher order than that considered here.”
Esseen 의 기여: - 더 높은 차수 cumulant (5차, 6차) 포함. - 더 엄밀한 오차 경계 (Berry-Esseen 정리의 일반화). - 일반 lattice (정수 아닌 lattice) 적용.
실무에서는 3 항 (B.1) 또는 4 항 Edgeworth 로 충분한 경우 많음. Esseen 의 더 높은 차수 는 극도로 정밀한 tail probability 계산 (신뢰구간 극단 커버리지 등) 에서 활용.
6 현대 대안 — Saddlepoint Approximation
6.1 Saddlepoint 의 우월성
Daniels (1954) 의 saddlepoint approximation 이 Edgeworth 의 주요 대안:
\[ f_n(x) \approx \frac{1}{\sqrt{2\pi n K''(\widehat t)}} \exp(nK(\widehat t) - n \widehat t x). \]
\(K\) = cumulant generating function, \(\widehat t\) = saddlepoint (안장점).
6.2 두 근사 비교
| 측면 | Edgeworth | Saddlepoint |
|---|---|---|
| 중심 정확도 | 좋음 | 매우 좋음 |
| 꼬리 정확도 | 부족 (음수 밀도 가능) | 뛰어남 |
| 유도 복잡도 | 간단 | 비교적 복잡 |
| Non-regular 분포 | 제한적 | 넓게 적용 |
| 계산 비용 | 매우 낮음 | 낮음 |
Saddlepoint 의 결정적 우위: relative error 가 uniformly \(O(n^{-1})\) — Edgeworth 가 꼬리에서 실패하는 곳에서도 정확.
6.3 Edgeworth 가 여전히 유용한 이유
- 단순성: 공식이 명시적, 수계산 가능.
- Bartlett 유도: Bartlett 조정이 Edgeworth 로부터 도출.
- 분석적 통찰: 각 항이 cumulant 의 직접 기여 보여줌.
- 빠른 근사: 한 번의 다항식 평가.
실무 규칙: 중심 확률 (median 근처) 은 Edgeworth, 꼬리 확률 은 saddlepoint.
7 GLM 에서의 Edgeworth 활용
7.1 1. Bartlett 조정 (§15.3)
McCullagh (1987) 이 Edgeworth 확장으로 Bartlett 인수 \(b_p\) 를 유도:
\[ \epsilon_p = \text{linear combination of 6 invariants (15.9)}. \]
(15.9) 의 각 invariant 가 Edgeworth 전개의 특정 cumulant 항에서 나온다.
7.2 2. Score 검정의 정확도 개선
Score 검정 통계량의 분포 근사에 Edgeworth 사용. 작은 표본에서 \(\chi^2\) 근사 보다 정확한 p-value.
7.3 3. 신뢰구간 커버리지 보정
고차 정확 신뢰구간 (high-order accurate CI). 표준 Wald CI 의 커버리지 오차 \(O(n^{-1/2})\) → Edgeworth 기반 CI 오차 \(O(n^{-1})\).
예: exact 또는 second-order accurate CI 계산 패키지들이 Edgeworth 사용.
7.4 4. Bootstrap 의 점근적 정당화
Bootstrap 의 이론적 근거 가 Edgeworth 확장에서 나온다. Hall (1992) “The Bootstrap and Edgeworth Expansion” 이 표준 참고서.
Bootstrap 이 왜 CLT 보다 정확한가? Edgeworth 확장의 첫 두 항 을 자동으로 맞추기 때문. Hall 의 정리.
8 Python 시뮬레이션 — Edgeworth vs CLT
8.1 이항 분포 예제
import numpy as np
from scipy import stats, special
import matplotlib.pyplot as plt
def F_edgeworth_binomial(y, m, pi):
"""이항 분포의 Edgeworth 근사 (B.3 + Sheppard)."""
sigma = np.sqrt(m * pi * (1 - pi))
z = (y - m * pi + 0.5) / sigma
tau = 1 + 1 / (24 * m * pi * (1 - pi))
rho3 = (1 - 2*pi) / sigma
rho4 = (1 - 6*pi*(1-pi)) / (m * pi * (1-pi))
x = tau * z
Phi = stats.norm.cdf(x)
phi = stats.norm.pdf(x)
# Hermite H_2, H_3, H_5
H2 = x**2 - 1
H3 = x**3 - 3*x
H5 = x**5 - 10*x**3 + 15*x
correction = (rho3 * H2 / 6
+ rho4 * H3 / 24
+ rho3**2 * H5 / 72)
return Phi - phi * correction
def F_clt_binomial(y, m, pi):
"""단순 CLT 근사 (연속성 보정 포함)."""
sigma = np.sqrt(m * pi * (1 - pi))
z = (y - m * pi + 0.5) / sigma
return stats.norm.cdf(z)
def F_exact_binomial(y, m, pi):
"""정확한 이항 분포 함수."""
return stats.binom.cdf(y, m, pi)
# 비교
m, pi = 20, 0.3 # small m, asymmetric → CLT 부정확
y_values = np.arange(0, m+1)
F_ex = np.array([F_exact_binomial(y, m, pi) for y in y_values])
F_cl = np.array([F_clt_binomial(y, m, pi) for y in y_values])
F_ed = np.array([F_edgeworth_binomial(y, m, pi) for y in y_values])
print(f"{'y':>3} {'Exact':>10} {'CLT':>10} {'Edgeworth':>12} {'CLT err':>10} {'Edge err':>10}")
for y in y_values:
y_idx = y
print(f"{y:3d} {F_ex[y_idx]:10.4f} {F_cl[y_idx]:10.4f} {F_ed[y_idx]:12.4f} "
f"{F_cl[y_idx]-F_ex[y_idx]:+10.5f} {F_ed[y_idx]-F_ex[y_idx]:+10.5f}")기대 출력: Edgeworth 오차가 CLT 의 1/10 ~ 1/100. 특히 꼬리에서 차이 두드러짐.
8.2 시각화
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
axes[0].plot(y_values, F_ex, 'ko-', label='Exact', markersize=6)
axes[0].plot(y_values, F_cl, 's-', label='CLT', alpha=0.7)
axes[0].plot(y_values, F_ed, 'r^-', label='Edgeworth', alpha=0.7)
axes[0].set_xlabel('y'); axes[0].set_ylabel('F(y)')
axes[0].set_title(f'Binomial(m={m}, π={pi}) 분포 함수 근사')
axes[0].legend(); axes[0].grid(alpha=0.3)
# 오차
err_cl = F_cl - F_ex
err_ed = F_ed - F_ex
axes[1].plot(y_values, err_cl, 's-', label='CLT error', alpha=0.7)
axes[1].plot(y_values, err_ed, 'r^-', label='Edgeworth error', alpha=0.7)
axes[1].axhline(0, color='k', ls='--')
axes[1].set_xlabel('y'); axes[1].set_ylabel('근사 오차')
axes[1].set_title('근사 오차 비교')
axes[1].legend(); axes[1].grid(alpha=0.3)
plt.tight_layout()
plt.show()8.3 다양한 \((m, \pi)\) 에서 최대 오차
configs = [(10, 0.5), (10, 0.2), (20, 0.3), (50, 0.3), (100, 0.1)]
print(f"\n{'m':>4} {'π':>5} {'mπ(1-π)':>9} {'max|err CLT|':>12} {'max|err Edge|':>13} {'비율':>6}")
for m, pi in configs:
y_values = np.arange(0, m+1)
F_ex = np.array([F_exact_binomial(y, m, pi) for y in y_values])
F_cl = np.array([F_clt_binomial(y, m, pi) for y in y_values])
F_ed = np.array([F_edgeworth_binomial(y, m, pi) for y in y_values])
max_cl = np.max(np.abs(F_cl - F_ex))
max_ed = np.max(np.abs(F_ed - F_ex))
print(f"{m:4d} {pi:5.2f} {m*pi*(1-pi):9.2f} {max_cl:12.5f} {max_ed:13.5f} {max_cl/max_ed:6.1f}x")기대: “비율” 이 5 ~ 50 배 — Edgeworth 가 CLT 보다 그만큼 정확.
8.4 \(\pi = 0.5\) 에서의 특수 비교
m, pi = 30, 0.5
y_values = np.arange(0, m+1)
F_ex = np.array([F_exact_binomial(y, m, pi) for y in y_values])
F_cl = np.array([F_clt_binomial(y, m, pi) for y in y_values])
F_ed = np.array([F_edgeworth_binomial(y, m, pi) for y in y_values])
print(f"\nπ = 0.5 (대칭) 경우 m={m}:")
print(f"CLT 최대 오차: {np.max(np.abs(F_cl - F_ex)):.5f}")
print(f"Edgeworth 최대 오차: {np.max(np.abs(F_ed - F_ex)):.5f}")
print("(대칭에서는 ρ_3 = 0 이므로 차이 작음)")9 요약 — Appendix B 의 네 가지 교훈
9.1 교훈 1 — Edgeworth = CLT + cumulant 보정
정규 밀도에 Hermite 다항식 기반 보정 추가. \(\rho_3, \rho_4\) 가 클수록 큰 개선.
9.2 교훈 2 — 각 보정항은 점근 차수로 분류
- \(\rho_3/\sqrt n\): 1차 보정 (skewness).
- \(\rho_4/n\): 2차 보정 (kurtosis).
- \(\rho_3^2/n\): 2차 보정 (skewness 의 제곱).
차수가 낮을수록 더 큰 기여 — 왜도 보정이 첫 개선.
9.3 교훈 3 — Lattice 분포는 연속성 + Sheppard 보정 필수
이산 분포 (\(B(m,\pi)\) 등) 에 Edgeworth 를 직접 적용하면 \(O(n^{-1/2})\) 실패. 연속성 교정 + Sheppard \(\tau = 1 + 1/(24 n\sigma^2)\) 가 필수.
9.4 교훈 4 — Saddlepoint 와 역할 분담
- 중심 (median 근처): Edgeworth 우수.
- 꼬리 (극단 p-value): Saddlepoint 필수.
- Bartlett 조정 유도: Edgeworth 의 역할.
- Bootstrap 이론: Edgeworth 기반.
10 관련 주제
선행 지식
- Appendix A — Likelihood Theory (McCullagh) — 점근 이론의 기초
- Bartlett Adjustment (McCullagh §15.3) — Edgeworth 의 Bartlett 응용
- Further Topics — Ch.15 개관
관련 개념
- MGF 와 적률 생성 함수 (Casella-Berger §2.3) — cumulant 의 수학적 기초
- 중심극한정리 (Casella-Berger §5.5)
- 점근 이론 (Casella-Berger Ch.10)
참고 문헌
- Edgeworth, F. Y. (1905). “The law of error.” Trans. Cambridge Phil. Soc. 20: 35-65. 원 논문.
- Esseen, C. G. (1945). “Fourier analysis of distribution functions.” Acta Math. 77: 1-125. — 엄밀한 오차 경계.
- McCullagh, P. (1987). Tensor Methods in Statistics. Chapman & Hall. — GLM 맥락의 Edgeworth.
- Daniels, H. E. (1954). “Saddlepoint approximations in statistics.” Ann. Math. Stat. 25: 631-650. — Saddlepoint 대안.
- Hall, P. (1992). The Bootstrap and Edgeworth Expansion. Springer. — Bootstrap 이론적 근거.
- Barndorff-Nielsen, O. E. & Cox, D. R. (1989). Asymptotic Techniques for Use in Statistics. Chapman & Hall.
후속 주제
- Appendix C — Likelihood-Ratio Statistics — Bartlett 증명의 상세