중심극한정리: 표본 평균의 정규근사 조건과 한계

중심극한정리의 정규화 조건, Berry–Esseen 오차 상계, 의존성과 장꼬리 분포에서의 보완 전략을 실무 관점에서 정리한다.

2026-08-14 · 최초 발행 2024-04-29

표본 평균이 정규 근사에 도달하는 조건

서로 독립이고 동일한 분포를 따르며, 기댓값이 μ이고 유한한 분산 σ^2을 갖는 확률변수 X_i를 생각해 보자. 표본평균 X̄_n = (1/n)∑X_i는 다음과 같이 표준화했을 때 표준정규분포로 분포수렴한다.

√n(X̄_n − μ)/σ → N(0,1)

여기서 분포수렴은 n이 커질수록 표본평균의 분포를 정규분포로 근사할 수 있다는 뜻이다. 신뢰구간, 가설검정, 관리도처럼 평균을 중심으로 판단하는 방법이 이 정리에 기대는 이유도 여기에 있다.

동일분포는 충분조건일 뿐 유일한 경로는 아니다. 분산이 제한된 비동일 분포라도 Lindeberg 조건을 만족하면 Lindeberg–Feller CLT로 정규근사를 얻을 수 있다. 3차 절대모멘트의 유한성을 이용해 충분조건을 제시하는 Lyapunov CLT도 있다.

Berry–Esseen 한계는 근사오차를 C·E|X−μ|^3/(σ^3√n) 수준으로 제시하며, C는 약 0.47~0.56 범위다. 표본 크기를 4배로 늘리면 정규근사 오차는 절반 수준으로 감소한다.

독립성·분산·표준화가 깨질 때

강한 의존성이 있으면 중심극한정리가 성립하지 않을 수 있다. 반대로 혼합이나 마팅게일 차분처럼 약한 의존 구조에서는 약한 형태의 CLT가 성립할 수 있다. 시계열이나 군집 표본에서는 실제 표본 수보다 유효 표본 크기가 작아질 수 있으므로, 표준오차를 과소추정하지 않도록 주의해야 한다.

유한 분산도 단순한 형식 조건이 아니다. Pareto α ≤ 2처럼 꼬리가 두꺼워 분산이 무한한 경우에는 표본평균의 정규화가 붕괴한다. 이때는 정규근사를 적용하지 말고 안정분포(Stable law)로의 수렴 가능성을 검토해야 한다.

모집단 분산 σ를 알지 못할 때는 표본표준편차 s를 사용해 √n(X̄_n−μ)/s로 표준화한다. 큰 표본에서는 이 Studentization 이후에도 정규근사를 유지할 수 있다. 다만 왜도나 첨도가 큰 분포는 수렴하더라도 더 큰 n이 필요할 수 있으며, Berry–Esseen 한계는 보수적인 표본 크기 설계에 활용할 수 있다.

정리별 적용 범위와 오차 관리

항목 i.i.d. CLT Lyapunov CLT Lindeberg–Feller CLT Berry–Esseen Bound
적용성 i.i.d., Var < ∞ 비동일 분포 가능 가장 일반적, 삼각배열 i.i.d. 중심의 오차 상계
필요 조건 E[X]=μ, Var=σ^2<∞ (∑E|Y_i|^3)/s_n^3→0 Lindeberg 조건 E|X−μ|^3<∞
수렴 속도 비정량적 진술 비정량적 비정량적 O(1/√n), 상수 C≈0.47~0.56
견고성(heavy-tail) 낮음 중간 중간 3차 절대모멘트 요구
운영 편의 높음 중간 낮음(검증 난도) 근사오차 관리 용이

주: s_n^2 = ∑Var(Y_i)

근사를 적용하기 전의 판단 흐름

독립성 OK독립성 위반아니오아니오입력: 표본 {X1,...,Xn}조건 점검분산 유한성 OK?대응: 블록부트스트랩/뉴이웨스트, 유효 표본 크기 보정처리: 표준화 Z = √n(X̄−μ)/σ또는 s오류: Heavy-tail(Var=∞).정규근사 금지, 안정분포/트림적용표본 크기 충분?출력: 정규근사 기반추론(z-검정, 신뢰구간)대응: n 증대,변환/윈저라이즈,Berry–Esseen로 오차 상계산출

평균 기반 추론이 쓰이는 곳

온라인 A/B 테스트에서는 전환율 차이의 표본평균을 근사 정규화해 추정과 검정에 사용한다. 대규모 트래픽에서는 비모수 부트스트랩보다 계산 비용을 줄일 수 있다.

제조 공정의 X-bar 관리도는 배치별 평균의 정규근사를 바탕으로 관리한계를 계산한다. 공정 능력지수와 함께 사용하면 이상 탐지의 민감도를 조정할 수 있다.

금융 리스크 집계에서는 다양한 포지션 수익률 합의 근사 정규화를 VaR/ES 초기 추정에 이용한다. 장꼬리 분포가 의심되면 t-분포나 코퓰라로 보완한다.

신뢰구간 길이는 ≈ 2·z*{α/2}·σ/√n으로, 필요한 표본 크기는 n ≈ (z*{α/2}·σ/ε)^2로 산출할 수 있다. 오차가 1/√n 비율로 줄어든다는 점은 자원과 정확도 사이의 트레이드오프를 정량화하는 기준이 된다. 표준화된 절차는 모델을 단순하게 해석하게 하고, 조직 내 재현성과 의사결정의 일관성도 높인다.

의존성과 장꼬리 분포를 다루는 방법

시계열 데이터는 ACF/PACF와 Ljung–Box로 독립성을 점검하고, 군집 표본은 설계 기반 보정을 적용한다. 유한 분산 여부는 로그-로그 CCDF, Hill 추정, 극단값 영향 진단으로 살필 수 있다.

의존성이 확인되면 블록부트스트랩, 해시리샘플, 샌드위치(heteroskedasticity/auto-correlation robust) 분산을 사용할 수 있다. 장꼬리 또는 분산 무한 가능성이 있으면 log/Box–Cox 변환, 윈저라이즈/트림, 안정분포 또는 분위수 기반 추론으로 전환한다.

견고화 처리는 편향을 늘릴 수 있지만 분산과 근사 안정성을 개선할 수 있다. 반대로 정규근사는 계산 비용을 최소화하지만, 전제가 깨진 상태에서는 과신으로 이어질 위험이 있다.

정규근사 여부를 확인하는 시뮬레이션

전제: Python 3.10+, numpy, scipy 설치 필요.

import numpy as np
from scipy import stats

rng = np.random.default_rng(42)

def standardized_mean(dist, n, reps=1000):
    if dist == "exponential":
        x = rng.exponential(scale=1.0, size=(reps, n))
    elif dist == "pareto":
        # Pareto(alpha=1.5): 분산 무한
        alpha = 1.5
        x = (rng.pareto(alpha, size=(reps, n)) + 1.0)  # scale=1
    else:
        raise ValueError("unknown dist")
    xbar = x.mean(axis=1)
    s = x.std(axis=1, ddof=1)
    z = np.sqrt(n) * (xbar - x.mean()) / s  # Studentization
    return z

for dist in ["exponential", "pareto"]:
    print(f"== {dist} ==")
    for n in [30, 100, 1000]:
        z = standardized_mean(dist, n, reps=2000)
        ks = stats.kstest(z, "norm")
        print(f"n={n:4d} | mean={z.mean():+.3f}, std={z.std():.3f}, KS D={ks.statistic:.3f}, p={ks.pvalue:.3f}")

exponential은 n이 증가할수록 KS 통계가 감소하고 p-value가 증가하는 경향을 보여 정규근사 적합성이 개선된다. pareto는 n이 증가해도 KS 통계가 크게 남아 정규근사에 부적합한 경향이 이어진다.

중심극한정리통계정규근사표본평균가설검정