콘텐츠로 이동

S²의 표본분포 (Uniform)

개요

\(\bar X\)의 표본분포는 모집단이 무엇이든 중심극한정리를 타고 정규분포로 간다. \(S^2\)은 그렇지 않다. 카이제곱 결과

\[ \frac{(n-1)S^2}{\sigma^2} \sim \chi^2_{n-1} \]

는 정규모집단에서만 성립하며, 다른 모집단에서는 모집단의 4차 적률이 그대로 드러난다.

이 페이지는 균등모집단을 본다. 균등분포는 꼬리가 가벼워(첨도가 정규보다 작다) \(S^2\)의 흔들림이 카이제곱이 예측하는 것보다 작다. 그래서 카이제곱에 기댄 분산 신뢰구간은 지나치게 넓어지고, 명목 95% 구간이 실제로는 99%를 넘게 포함한다.

모집단 모형

\[ X \sim \text{Uniform}(0, 1), \qquad f(x) = 1, \quad 0 \le x \le 1 \]
\[ \mu = \frac12, \qquad \sigma^2 = \frac{1}{12} = 0.0833 \]

\(S^2\)의 거동을 정하는 것은 평균이나 분산이 아니라 4차 적률이다.

\[ \mu_4 = E[(X-\mu)^4] = \int_0^1 \left(x - \tfrac12\right)^4 dx = \frac{1}{80}, \qquad \beta_2 = \frac{\mu_4}{\sigma^4} = \frac{144}{80} = 1.8 \]

정규분포의 첨도 3보다 한참 작다(초과첨도 \(-1.2\)). 균등분포에는 꼬리라 할 것이 아예 없으니 당연하다.

표본분포 이론

불편성은 모집단을 가리지 않는다. 어떤 모집단에서도

\[ E[S^2] = \sigma^2 \]

이다. 달라지는 것은 분산이다.

\[ \text{Var}(S^2) = \frac{1}{n}\left(\beta_2 - \frac{n-3}{n-1}\right)\sigma^4 \]

카이제곱 모형이 예측하는 값은 \(2\sigma^4/(n-1)\)이므로, 둘의 비는

\[ \frac{\text{Var}(S^2)}{2\sigma^4/(n-1)} = \frac{n-1}{2n}\left(\beta_2 - \frac{n-3}{n-1}\right) \;\xrightarrow{\;n \to \infty\;}\; \frac{\beta_2 - 1}{2} \]

이다. 균등분포는 \(\beta_2 = 1.8\)이므로 배율이 \(0.4\)다.

이 어긋남은 표본을 키워도 사라지지 않는다

극한이 \((\beta_2-1)/2\)로 \(n\)에 의존하지 않는다. 정규모집단이면 \(\beta_2 = 3\)이라 배율이 정확히 1이 되지만, 균등모집단에서는 \(n\)이 아무리 커져도 \(S^2\)의 분산이 카이제곱 예측의 40%에 머문다. 표준편차로는 \(\sqrt{0.4} = 0.63\)배다.

\(\bar X\)와 대조적이다. \(\bar X\)는 모집단이 무엇이든 정규로 수렴하지만, \(S^2\)의 분포 모양은 정규로 가도 그 폭은 끝까지 첨도에 매여 있다.

X̄와 S²의 상관

일반적으로

\[ \text{Cov}(\bar X, S^2) = \frac{\mu_3}{n} \]

이며 \(\mu_3\)은 모집단의 3차 중심적률이다. 균등분포는 대칭이라 \(\mu_3 = 0\)이므로 \(\bar X\)와 \(S^2\)은 무상관이다.

그러나 독립은 아니다. \(\bar X\)가 0 근처에 있다면 표본의 모든 값이 0 근처에 몰려 있다는 뜻이므로 \(S^2\)도 작을 수밖에 없다. 상관계수는 선형 관계만 재기 때문에 이 관계를 놓친다. 3.4절 독립성과 무상관성의 차이에서 본 "무상관이라고 독립은 아니다"가 실물로 나타난 것이며, \(\bar X\)와 \(S^2\)이 정말로 독립인 것은 정규모집단뿐이다.

모의실험

보기 1. 균등모집단에서 S²의 표집분포. \(\text{Uniform}(0,1)\)에서 \(n = 10\)과 \(n = 100\)인 표본을 각각 10만 번 뽑아 \(S^2\)을 계산한다.

(1) 두 표본크기에서 \(E[S^2]\), \(\operatorname{sd}(S^2)\), 그리고 카이제곱이 예측하는 폭과의 분산 배율을 이론으로 적으시오.

(2) 모의실험으로 (1)을 확인하시오. 배율이 \(n\)에 따라 달라지는지 보시오.

풀이

(1) 이론값. \(\text{Uniform}(0,1)\)은 \(\sigma^2 = 1/12\), \(\beta_2 = 1.8\)이다. 불편성은 모집단을 가리지 않으므로 두 경우 모두

\[ E[S^2] = \sigma^2 = \frac{1}{12} = 0.083333 \]

이다. 폭은 \(\operatorname{Var}(S^2) = \left(\beta_2 - \frac{n-3}{n-1}\right)\sigma^4/n\)에 넣어 계산한다. \(\sigma^4 = 1/144\)이므로

\[ n = 10: \quad \operatorname{Var}(S^2) = \frac{1.8 - 7/9}{10 \cdot 144} = 7.0988 \times 10^{-4}, \qquad \operatorname{sd}(S^2) = 0.026644 \]
\[ n = 100: \quad \operatorname{Var}(S^2) = \frac{1.8 - 97/99}{100 \cdot 144} = 5.6959 \times 10^{-5}, \qquad \operatorname{sd}(S^2) = 0.0075471 \]

카이제곱 모형은 \(\operatorname{sd}(S^2) = \sqrt{2/(n-1)}\,\sigma^2\)을 예측하므로 각각 \(0.039284\)와 \(0.011844\)다. 분산 배율은 \(\frac{n-1}{2n}\left(\beta_2 - \frac{n-3}{n-1}\right)\)에서

\[ n = 10: \ \frac{9}{20} \times 1.02222 = 0.4600, \qquad n = 100: \ \frac{99}{200} \times 0.82020 = 0.4060 \]

이다. 극한값 \(0.4\)에 아직 도달하지 않았다. 배율은 위에서 아래로 \(0.46 \to 0.406 \to 0.4\)로 내려가며, \(n = 10\)에서 \(15\%\) 높은 것은 \(-\frac{n-3}{n-1}\) 항이 작은 \(n\)에서 느슨해지기 때문이다. 어느 쪽이든 \(1\)에서 한참 멀다.

(2) 모의실험.

import matplotlib.pyplot as plt
import numpy as np
from scipy import stats

rng = np.random.default_rng(1)

beta2, sigma2_true = 1.8, 1 / 12

fig, axes = plt.subplots(1, 2, figsize=(12, 3.5))
for ax, n in zip(axes, (10, 100)):
    # 표본을 10만 번 뽑아 매번 S^2 을 기록한다. 이 값들의 분포가 표집분포다.
    s2 = rng.uniform(size=(100_000, n)).var(axis=1, ddof=1)

    # 이론값과 모의값을 나란히 적는다.
    sd_true = np.sqrt((beta2 - (n - 3) / (n - 1)) * sigma2_true ** 2 / n)
    sd_chi2 = np.sqrt(2 / (n - 1)) * sigma2_true
    ratio_true = (n - 1) / (2 * n) * (beta2 - (n - 3) / (n - 1))
    print(f"n = {n}")
    print(f"  E[S^2]   이론 {sigma2_true:.6f}   모의 {s2.mean():.6f}   (MC오차 {sd_true / np.sqrt(len(s2)):.6f})")
    print(f"  sd(S^2)  이론 {sd_true:.6f}   모의 {s2.std(ddof=1):.6f}   (MC오차 {sd_true / np.sqrt(2 * len(s2)):.6f})")
    print(f"  카이제곱이 예측하는 sd = {sd_chi2:.6f}")
    print(f"  분산 배율  이론 {ratio_true:.4f}   모의 {(s2.std(ddof=1) / sd_chi2) ** 2:.4f}")

    # 오른쪽 꼬리의 극단값 때문에 가로축이 늘어나지 않도록 99.5백분위에서 자른다.
    hi = np.percentile(s2, 99.5)
    _, bins, _ = ax.hist(s2, bins=60, range=(0, hi), density=True,
                         alpha=0.5, edgecolor="white", label=r"simulated $S^2$")

    # 카이제곱이 예측하는 밀도를 S^2 의 눈금으로 옮겨 그린다.
    #   (n-1)S^2/sigma^2 ~ chi^2(n-1)  =>  S^2 = X/c,  c = (n-1)/sigma^2
    # 변수변환 Y = X/c 의 밀도는 f_X(cy)*c 이므로 마지막 c 가 야코비안이다.
    df, sigma2 = n - 1, 1 / 12
    c = df / sigma2
    g = np.linspace(1e-6, hi, 300)
    ax.plot(g, stats.chi2(df).pdf(g * c) * c, "--r", lw=2, label=r"$\chi^2$-based PDF")

    ax.set_title(f"Uniform(0,1),  n = {n}")
    ax.set_xlabel(r"$S^2$")
    ax.set_xlim(0, hi)

axes[0].set_ylabel("Density")
axes[1].legend(fontsize=8)
plt.tight_layout()
plt.show()

출력:

n = 10
  E[S^2]   이론 0.083333   모의 0.083383   (MC오차 0.000084)
  sd(S^2)  이론 0.026644   모의 0.026650   (MC오차 0.000060)
  카이제곱이 예측하는 sd = 0.039284
  분산 배율  이론 0.4600   모의 0.4602
n = 100
  E[S^2]   이론 0.083333   모의 0.083356   (MC오차 0.000024)
  sd(S^2)  이론 0.007547   모의 0.007582   (MC오차 0.000017)
  카이제곱이 예측하는 sd = 0.011844
  분산 배율  이론 0.4060   모의 0.4098

균등모집단에서 S²의 표집분포

여기서는 모집단이 실현된 유한집합이 아니라 \(\text{Uniform}(0,1)\) 그 자체다. 매번 새로 뽑으므로 이론값이 그대로 겨냥값이고, 앞 쪽들에서 끼어들던 "실현 모집단" 층이 없다.

불편성. \(n = 10\)에서 모의 \(E[S^2] = 0.083383\)이 이론값 \(0.083333\)에서 몬테카를로 오차 \(0.000084\)의 \(0.6\)배, \(n = 100\)에서 \(0.083356\)이 \(0.000024\)의 \(1.0\)배만큼 떨어져 있다. 둘 다 맞는다.

폭. \(n = 10\)에서 모의 \(0.026650\)이 이론 \(0.026644\)에 소수 다섯째 자리까지 맞는다(\(0.1\) 오차). \(n = 100\)에서는 모의 \(0.007582\)가 이론 \(0.007547\)보다 \(0.46\%\) 커서 몬테카를로 요동의 \(2\)배인데, 같은 일을 200 번 되풀이해 평균을 내면 \(0.0075479\)가 되어 이론값 \(0.0075471\)에 다섯째 자리까지 맞는다. 한 번의 요동이다.

배율이 \(n\)에 따라 달라지는가. 달라진다. \(n = 10\)에서 \(0.4602\)(이론 \(0.4600\)), \(n = 100\)에서 \(0.4098\)(이론 \(0.4060\))이다. 다만 \(0.4\) 쪽으로 내려가는 것이지 \(1\) 쪽으로 올라가는 것이 아니다. 표본을 열 배 키웠는데 어긋남이 오히려 조금 커졌다. 이것이 \(\bar X\)와 결정적으로 다른 점이며, 다음 보기에서 신뢰구간의 포함률로 그 대가를 치른다.

히스토그램이 빨간 곡선보다 좁고 높다. \(n = 100\)에서는 두 곡선이 같은 자리에 중심을 두면서도 폭이 뚜렷이 다르다는 것이 한눈에 보인다.

보기 2. 분산 신뢰구간의 실제 포함률. \(\text{Uniform}(0,1)\)에서 \(n = 10,\, 30,\, 100,\, 1000\)인 표본을 각각 10만 번 뽑고, 그때마다 카이제곱 공식으로 \(\sigma^2\)의 \(95\%\) 신뢰구간을 만들어 참값 \(1/12\)을 덮는 비율을 센다.

(1) 실제 포함률이 얼마가 될지 이론으로 예측하시오. \(n \to \infty\)에서의 값과 유한한 \(n\)에서의 값을 모두 적으시오.

(2) 모의실험으로 (1)을 확인하고, 예측이 잘 맞는 \(n\)의 범위를 말하시오.

풀이

(1) 이론 예측. 구간은 \(W = (n-1)S^2/\sigma^2\)이 \(\chi^2(n-1)\)의 \(2.5\)-\(97.5\) 백분위 \([\ell, u]\) 안에 있을 때 참값을 덮는다. 그러므로 포함률은 정확히 \(P(\ell \le W \le u)\)다. 카이제곱 모형은 \(W\)의 평균이 \(n-1\), 분산이 \(2(n-1)\)이라고 보는데, 실제로는

\[ E[W] = n-1, \qquad \operatorname{Var}(W) = \frac{(n-1)^2}{\sigma^4}\operatorname{Var}(S^2) = 2(n-1)\,r, \qquad r = \frac{n-1}{2n}\left(\beta_2 - \frac{n-3}{n-1}\right) \]

이다. 평균은 맞고 분산만 \(r\)배 작다. 균등에서 \(r \approx 0.4\)이니 \(W\)가 예상보다 \(\sqrt{0.4} = 0.63\)배 좁게 모여 있고, 그래서 구간이 참값을 너무 자주 덮는다.

\(n\)이 크면 \(W\)가 정규에 가까워지므로 \(\ell, u \approx (n-1) \pm 1.96\sqrt{2(n-1)}\)을 넣어

\[ \text{포함률} \;\to\; 2\Phi\!\left(\frac{1.96}{\sqrt{r}}\right) - 1 = 2\Phi\!\left(\frac{1.96}{\sqrt{0.4}}\right) - 1 = 2\Phi(3.0984) - 1 = 0.9981 \]

을 얻는다. \(0.95\)가 아니라 \(0.998\)로 굳는다는 예측이다.

유한한 \(n\)에서는 \(W\)가 아직 치우쳐 있으니 정규 대신 적률을 맞춘 카이제곱을 쓴다. \(W \approx r \cdot \chi^2\!\left(\frac{n-1}{r}\right)\)로 놓으면 평균 \(n-1\)과 분산 \(2(n-1)r\)이 둘 다 맞고, 포함률 예측은 \(P\!\left(\ell/r \le \chi^2\!\left(\frac{n-1}{r}\right) \le u/r\right)\)다. 네 표본크기에서 \(0.9960\), \(0.9975\), \(0.9979\), \(0.9980\)이 나온다.

(2) 모의실험.

import numpy as np
from scipy import stats

rng = np.random.default_rng(1)
sigma2 = 1 / 12          # Uniform(0,1)의 참 분산
beta2 = 1.8              # 균등분포의 첨도

print("명목 신뢰수준 95%")
for n in (10, 30, 100, 1000):
    s2 = rng.uniform(size=(100_000, n)).var(axis=1, ddof=1)
    lo, hi = stats.chi2(n - 1).ppf([0.025, 0.975])
    # 카이제곱 구간: [(n-1)s^2/hi, (n-1)s^2/lo]
    cover = np.mean(((n - 1) * s2 / hi <= sigma2) & (sigma2 <= (n - 1) * s2 / lo))

    # 이론 예측. W = (n-1)S^2/sigma^2 의 평균은 n-1, 분산은 2(n-1)r 이므로
    # 같은 두 적률을 갖는 r*chi^2((n-1)/r) 로 바꿔 놓고 구간에 넣는다.
    r = (n - 1) / (2 * n) * (beta2 - (n - 3) / (n - 1))
    pred = stats.chi2((n - 1) / r).cdf(hi / r) - stats.chi2((n - 1) / r).cdf(lo / r)
    print(f"n = {n:>4}:  실제 포함률 {cover:.3f}   배율 r = {r:.4f}   적률맞춤 예측 {pred:.4f}")

출력:

명목 신뢰수준 95%
n =   10:  실제 포함률 0.993   배율 r = 0.4600   적률맞춤 예측 0.9960
n =   30:  실제 포함률 0.997   배율 r = 0.4200   적률맞춤 예측 0.9975
n =  100:  실제 포함률 0.998   배율 r = 0.4060   적률맞춤 예측 0.9979
n = 1000:  실제 포함률 0.998   배율 r = 0.4006   적률맞춤 예측 0.9980

소수 다섯째 자리까지 적으면 포함률이 \(0.99262\), \(0.99671\), \(0.99758\), \(0.99810\)이다. 비율의 몬테카를로 오차는 \(\sqrt{0.998 \times 0.002/10^5} = 0.00014\)쯤이다.

\(n \ge 30\)에서는 예측이 맞는다. 어긋남이 \(n = 30\)에서 \(0.00075\)(오차의 \(4\)배), \(n = 100\)에서 \(0.00031\)(\(2\)배), \(n = 1000\)에서 \(0.00006\)(\(0.4\)배)로 줄어든다. 적률맞춤 근사가 두 적률만 맞춘 것이라 3차 이상의 어긋남이 남는데, 그 몫이 \(n\)과 함께 사라지는 것이다.

\(n = 10\)에서는 예측이 \(0.9960\)인데 실제는 \(0.99262\)로 \(0.0034\) 벗어난다. 오차의 \(12\)배이니 요동으로 볼 수 없다. 까닭은 \(n = 10\)에서 \(W\)의 왜도가 카이제곱의 왜도와 많이 다른데 적률맞춤이 그것을 손대지 않기 때문이다. 두 적률만 맞춘 근사의 한계이고, 적어도 방향과 크기는 바르게 짚는다(예측 \(0.996\), 실제 \(0.993\) — 둘 다 \(0.95\)에서 한참 위다).

요점은 마지막 두 줄이다. \(n = 100\)에서 \(n = 1000\)으로 열 배 키워도 포함률이 \(0.998\)에서 꼼짝하지 않는다. \(r\)이 \(0.4\)로 수렴해 버리기 때문이고, 이것은 표본을 더 모아서 고칠 수 있는 종류의 문제가 아니다.

표본을 100배 키워도 0.95로 돌아오지 않는다. 오히려 0.998에서 굳어 버린다. 구간이 실제 필요한 것보다 넓기 때문이며, 그 넓이의 비가 \(n\)과 무관한 \(1/\sqrt{0.4} = 1.58\)배이기 때문이다.

해석

주요 관찰

  1. 불편성은 살아남는다. \(E[S^2] = \sigma^2 = 1/12\)이 모든 \(n\)에서 성립한다. 어긋나는 것은 중심이 아니라 폭이다.
  2. 카이제곱은 지나치게 넓다. 균등분포는 꼬리가 가벼워 극단적인 \(S^2\)이 잘 나오지 않으므로, 실제 분산이 예측의 40%에 그친다.
  3. \(n\)을 키워도 고쳐지지 않는다. 배율 \((\beta_2-1)/2 = 0.4\)는 표본크기와 무관하다.
  4. 방향이 안전한 쪽이다. 포함률이 명목보다 높으므로 신뢰구간이 보수적이다. 다음 페이지의 지수모집단은 반대 방향으로 어긋나 훨씬 위험하다.

연습문제

연습문제 1. \(X \sim \text{Uniform}(0,1)\)의 4차 중심적률을 직접 적분해 \(\mu_4 = 1/80\)임을 보이고 첨도 \(\beta_2 = 1.8\)을 확인하라. \(\text{Uniform}(a,b)\)에서도 같은 값인가?

풀이

\(\mu = 1/2\)이므로 \(u = x - 1/2\)로 치환하면

\[ \mu_4 = \int_0^1\left(x-\tfrac12\right)^4 dx = \int_{-1/2}^{1/2} u^4\,du = \left[\frac{u^5}{5}\right]_{-1/2}^{1/2} = \frac{2}{5}\cdot\frac{1}{32} = \frac{1}{80} \]

이고 \(\sigma^2 = 1/12\)이므로 \(\sigma^4 = 1/144\)이다. 따라서

\[ \beta_2 = \frac{1/80}{1/144} = \frac{144}{80} = 1.8 \]

\(\text{Uniform}(a,b)\)에서도 같다. 첨도는 위치와 척도에 불변인 양이기 때문이다. \(X' = a + (b-a)X\)로 두면 \(\mu_4\)와 \(\sigma^4\)이 모두 \((b-a)^4\)배가 되어 비율은 변하지 않는다.

이것이 이 페이지의 결론이 구간과 무관한 이유다. 어떤 균등분포를 쓰든 배율은 언제나 0.4다.

연습문제 2. \(\text{Var}(S^2)\)과 카이제곱이 예측하는 값의 비가 \(n \to \infty\)에서 \((\beta_2-1)/2\)로 감을 보여라. 정규모집단에서 이 값이 1이 되는지 확인하라.

풀이

두 식을 나눈다.

\[ \frac{\frac{1}{n}\left(\beta_2 - \frac{n-3}{n-1}\right)\sigma^4}{\frac{2\sigma^4}{n-1}} = \frac{n-1}{2n}\left(\beta_2 - \frac{n-3}{n-1}\right) \]

\(n \to \infty\)이면 \(\frac{n-1}{2n} \to \frac12\)이고 \(\frac{n-3}{n-1} \to 1\)이므로 극한은 \(\frac{\beta_2-1}{2}\)이다. \(\square\)

정규모집단은 \(\beta_2 = 3\)이므로 \((3-1)/2 = 1\)이다. 두 식이 일치한다. 사실 정규분포에서는 극한이 아니라 모든 \(n\)에서 정확히 1이다. \(\beta_2 = 3\)을 넣으면

\[ \frac{n-1}{2n}\left(3 - \frac{n-3}{n-1}\right) = \frac{n-1}{2n}\cdot\frac{3n-3-n+3}{n-1} = \frac{n-1}{2n}\cdot\frac{2n}{n-1} = 1 \]

이 되기 때문이다. 카이제곱 결과가 정규모집단에서 정확한 정리이지 근사가 아니라는 사실이 여기서도 드러난다.

연습문제 3. 보기 2에서 포함률이 0.95보다 큰 이유를 설명하라. 포함률이 높으면 무조건 좋은가?

풀이

카이제곱 구간의 폭은 \(S^2\)의 분포가 \(\chi^2_{n-1}\)을 따른다는 가정으로 정해진다. 그 가정이 예측하는 흔들림이 실제보다 크므로 구간이 필요 이상으로 넓고, 넓은 구간은 참값을 더 자주 담는다. 그래서 포함률이 0.95를 넘는다.

좋기만 한 것은 아니다. 신뢰구간과 검정은 동전의 양면이므로, 구간이 넓다는 것은 대응하는 검정의 유의수준이 명목보다 낮다는 뜻이다. 즉 실제로 다른 분산을 가진 모집단을 놓고도 기각하지 못한다. 검정력을 잃는다.

어긋나는 방향 포함률 위험
가벼운 꼬리(\(\beta_2 < 3\)) 0.95보다 높다 검정력 손실(보수적)
무거운 꼬리(\(\beta_2 > 3\)) 0.95보다 낮다 잘못된 유의성(위험)

둘 다 "명목 수준이 지켜지지 않는다"는 같은 문제이고, 방향만 다르다. 실무에서 더 겁나는 쪽은 아래 줄이다.

연습문제 4. 균등모집단에서 \(\bar X\)와 \(S^2\)의 상관계수가 0임을 \(\text{Cov}(\bar X, S^2) = \mu_3/n\)로 설명하고, 그럼에도 두 통계량이 독립이 아님을 보여라.

풀이

균등분포는 \(\mu = 1/2\)을 중심으로 대칭이므로 홀수차 중심적률이 모두 0이다. 특히 \(\mu_3 = 0\)이고 따라서

\[ \text{Cov}(\bar X, S^2) = \frac{\mu_3}{n} = 0 \]

이다. 모의실험에서도 \(n = 100\)일 때 상관계수가 \(-0.000\)으로 나온다.

독립이 아님을 보이는 가장 쉬운 방법은 극단을 보는 것이다. \(\bar X\)가 \(0.02\)처럼 아주 작다고 하자. 모든 관측값이 \([0,1]\) 안에 있으므로 표본의 값들은 전부 0 근처에 몰려 있어야 하고, 그러면 \(S^2\)도 작을 수밖에 없다. 실제로 \(0 \le X_i \le 1\)이면

\[ S^2 \le \frac{n}{n-1}\,\bar X(1 - \bar X) \]

라는 부등식이 성립한다(베르누이 페이지에서는 이 부등식이 등식이 된다). 즉 \(\bar X\)가 \(S^2\)이 가질 수 있는 값의 범위를 제한하므로 두 통계량은 결코 독립일 수 없다. \(\square\)

무상관과 독립은 다르다. 상관계수는 선형 관계만 재는데 여기서는 \(\bar X\)가 \(S^2\)의 상한을 통해 영향을 주므로 관계가 비선형이다. 대칭성이 선형 성분을 정확히 0으로 만들었을 뿐이다.

연습문제 5. \(n\)이 크면 \(S^2\)의 분포가 어떤 정규분포로 수렴하는지 적고, 보기 1의 \(n = 100\) 그림에서 그 근사가 얼마나 잘 맞는지 설명하라.

풀이

\(S^2\)은 사실상 \((X_i - \mu)^2\)들의 평균이므로 중심극한정리가 적용된다.

\[ \sqrt n\,(S^2 - \sigma^2) \;\xrightarrow{d}\; N\!\left(0,\ \mu_4 - \sigma^4\right) = N\!\left(0,\ (\beta_2-1)\sigma^4\right) \]

균등분포에서는 \((\beta_2 - 1)\sigma^4 = 0.8/144 = 0.00556\)이므로 \(n = 100\)에서

\[ S^2 \;\dot\sim\; N(0.0833,\ 0.0000556), \qquad \text{SD} = 0.00745 \]

이다.

그림에서 히스토그램이 이미 좌우 대칭인 종 모양인 것이 이 수렴을 보여 준다. 반면 빨간 카이제곱 곡선도 \(n\)이 크면 종 모양이 되지만 폭이 다르다(\(\text{SD} = 0.0118\)로 1.58배). 즉 두 분포는 모양에서 가까워지고 폭에서 갈라진다.

\(S^2\)의 극한이 정규라는 사실은 실무적 대안을 준다. 첨도를 자료에서 추정해 \(\widehat{\text{Var}}(S^2) = (\hat\beta_2 - 1)s^4/n\)으로 두고 정규 기반 구간을 만들면 모집단 모양에 덜 민감하다. 다만 \(\hat\beta_2\) 자체가 불안정하므로 실무에서는 부트스트랩을 더 흔히 쓴다.

연습문제 6. \(\text{Var}(S^2) = \frac{1}{n}\left(\mu_4 - \frac{n-3}{n-1}\sigma^4\right)\)를 유도하라.

풀이

일반성을 잃지 않고 \(\mu = 0\)으로 둔다(\(S^2\)은 위치이동에 불변이다). 항등식

\[ (n-1)S^2 = \sum_i X_i^2 - n\bar X^2 \]

에서 시작해 \(E[\{(n-1)S^2\}^2]\)을 계산한다. 전개하면

\[ E\!\left[\left(\sum_i X_i^2\right)^2\right] - 2nE\!\left[\bar X^2\sum_i X_i^2\right] + n^2E[\bar X^4] \]

이고, 각 항을 독립성을 써서 적률로 바꾼다. \(E[X_i^2] = \sigma^2\), \(E[X_i^4] = \mu_4\)이므로

\[ E\!\left[\left(\sum_i X_i^2\right)^2\right] = n\mu_4 + n(n-1)\sigma^4 \]

이고, 나머지 두 항도 같은 방식으로 \(\mu_4\)와 \(\sigma^4\)의 조합으로 정리된다. 모으면

\[ \text{Var}\{(n-1)S^2\} = (n-1)\left\{(n-1)\mu_4 - (n-3)\sigma^4\right\} \]

을 얻고, 양변을 \((n-1)^2\)으로 나누면

\[ \text{Var}(S^2) = \frac{1}{n}\left(\mu_4 - \frac{n-3}{n-1}\sigma^4\right) \]

이다. \(\square\)

검산. 정규모집단에서 \(\mu_4 = 3\sigma^4\)을 넣으면

\[ \frac{1}{n}\left(3 - \frac{n-3}{n-1}\right)\sigma^4 = \frac{1}{n}\cdot\frac{2n}{n-1}\sigma^4 = \frac{2\sigma^4}{n-1} \]

로 카이제곱이 주는 값과 정확히 같다. 이 유도에서 정규성은 어디에도 쓰이지 않았다. 쓰인 것은 독립성과 4차 적률의 존재뿐이며, 그래서 이 식은 어떤 모집단에서도 성립한다.

연습문제 7. 균등모집단에서는 \(S\) 말고 범위 \(R = X_{(n)} - X_{(1)}\)로도 \(\sigma\)를 추정할 수 있다. \(\text{Uniform}(0,1)\)에서 \(E[R] = \frac{n-1}{n+1}\)임을 이용해 불편 추정량 \(R/d_2\)를 만들고, \(n=10\)에서 \(S\)와 정밀도를 비교하라. 결과가 뜻밖인가?

풀이

\(\sigma = 1/\sqrt{12}\)이므로 \(d_2 = E[R]/\sigma = \frac{n-1}{n+1}\sqrt{12}\)로 두면 \(R/d_2\)가 \(\sigma\)의 불편추정량이 된다.

import numpy as np

rng = np.random.default_rng(0)
n = 10
sig = 1 / np.sqrt(12)
U = rng.uniform(0, 1, (200_000, n))
R = U.max(1) - U.min(1)
S = U.std(1, ddof=1)
d2 = ((n - 1) / (n + 1)) / sig

print(f"  참 sigma = {sig:.5f}")
print(f"  E[R] 모의 {R.mean():.5f}   이론 (n-1)/(n+1) = {(n-1)/(n+1):.5f}")
print(f"  R/d2 : 평균 {np.mean(R/d2):.5f}  표준편차 {np.std(R/d2):.5f}")
print(f"  S    : 평균 {S.mean():.5f}  표준편차 {S.std():.5f}")
print(f"  범위 기반의 상대효율 = {(S.std()/np.std(R/d2))**2:.4f}")

출력:

  참 sigma = 0.28868
  E[R] 모의 0.81837   이론 (n-1)/(n+1) = 0.81818
  R/d2 : 평균 0.28874  표준편차 0.03928
  S    : 평균 0.28483  표준편차 0.04739
  범위 기반의 상대효율 = 1.4556

뜻밖이다. 범위가 \(S\)보다 낫다. 관측 두 개만 쓰는 추정량이 \(n\)개를 모두 쓰는 \(S\)보다 표준편차가 작다(\(0.0393\) 대 \(0.0474\)). 상대효율이 \(1.46\)으로, \(S\)를 쓰려면 표본이 약 \(1.5\)배 필요하다.

왜 이런 일이 생기는가. 균등분포에서 정보는 끝에 몰려 있다. 구간 \([a,b]\) 안쪽의 관측은 "여기에 점이 있다"는 사실 외에 \(a\)와 \(b\)에 대해 거의 말해 주지 않는 반면, 최솟값과 최댓값은 경계를 직접 가리킨다. 실제로 \((X_{(1)}, X_{(n)})\)은 균등분포의 충분통계량이다. 나머지 \(n-2\)개는 버려도 정보 손실이 없다.

\(S\)는 그 사실을 모르고 모든 관측을 똑같이 취급하므로 손해를 본다.

정규분포라면 정반대다. 정규분포에서 범위 기반 추정의 효율은 \(n=10\)에서 약 \(0.85\)이고 \(n\)이 커지면 \(0\)으로 간다. 꼬리가 무한히 뻗어 있어 극단값이 불안정하기 때문이다. 어느 쪽이 나은지는 모집단이 정한다.

모집단 끝점의 정보량 범위 기반 추정
균등 매우 높다(충분통계량) \(S\)보다 우수
정규 낮다(꼬리가 불안정) \(n\)이 크면 열등
지수 한쪽만 높다 비대칭적

역사적으로 범위가 널리 쓰인 이유가 따로 있다. 계산이 쉬워서다. 품질관리의 \(\bar X\)–\(R\) 관리도는 현장에서 손으로 계산하던 시절의 산물이며, 부분군 크기가 \(4\sim5\)로 작을 때는 \(S\) 대비 효율 손실도 크지 않다. 컴퓨터가 흔해진 지금은 \(S\) 관리도로 옮겨 가는 추세다.

연습문제 8. 연습문제 7에서 끝점이 정보를 쥐고 있다고 했다. 그렇다면 끝점으로 직접 구간 폭을 추정해 보자. \(\text{Uniform}(a,b)\)에서 폭의 불편추정량이 \(R\frac{n+1}{n-1}\)임을 이용해 \(\sigma\)를 추정하고, \(n = 5, 10, 20, 50\)에서 \(S\)와 정밀도를 비교하라. 수렴 속도에 주목하라.

풀이
import numpy as np

rng = np.random.default_rng(0)
sig = 1 / np.sqrt(12)
print(f"{'n':>5}{'S 의 표준편차':>16}{'끝점 기반':>12}{'비':>8}")
for n in (5, 10, 20, 50):
    U = rng.uniform(0, 1, (200_000, n))
    R = U.max(1) - U.min(1)
    S = U.std(1, ddof=1)
    sig_end = R * (n + 1) / (n - 1) / np.sqrt(12)
    print(f"{n:>5}{S.std():>16.5f}{sig_end.std():>12.5f}"
          f"{S.std()/sig_end.std():>8.2f}")

출력:

    n        S 의 표준편차       끝점 기반       비
    5         0.07794     0.07704    1.01
   10         0.04733     0.03931    1.20
   20         0.03104     0.01991    1.56
   50         0.01880     0.00811    2.32

격차가 \(n\)과 함께 벌어진다. \(n=5\)에서는 거의 같은데 \(n=50\)에서는 끝점 기반이 \(2.3\)배 정밀하다. 이것이 핵심이다.

수렴 속도가 다르기 때문이다.

\[ \operatorname{sd}(S) = O\!\left(\frac{1}{\sqrt n}\right), \qquad \operatorname{sd}(\widehat\sigma_{\text{끝점}}) = O\!\left(\frac{1}{n}\right) \]

표의 숫자로 확인할 수 있다. \(n\)을 \(5 \to 50\)으로 \(10\)배 키우면 \(S\)의 표준편차는 \(0.0779 \to 0.0188\)로 약 \(4.1\)배 줄었고(점근 속도는 \(\sqrt{10} \approx 3.2\)배이며, 작은 \(n\)에서는 \((n-3)/(n-1)\) 보정항이 남아 조금 더 줄어든다), 끝점 기반은 \(0.0770 \to 0.0081\)로 약 \(9.5\)배, 곧 \(10\)배 가까이 줄었다.

\(1/n\) 수렴을 "초효율"이라 부른다. 일반적인 추정량은 \(1/\sqrt n\)이 한계인데(크라메르–라오), 균등분포의 끝점 추정은 그 한계를 넘어선다. 모수가 분포의 받침(support) 경계에 있기 때문이며, 이런 경우를 정칙성 조건을 만족하지 않는 문제라 한다. 최대가능도의 표준 이론이 그대로 적용되지 않는 대표적인 예이고, 6장에서 다시 다룬다.

그러나 대가가 크다.

\(S\) 끝점 기반
수렴 속도 \(1/\sqrt n\) \(1/n\)
균등이 아니면 여전히 \(\sigma\) 추정 완전히 무너진다
이상치 하나 거의 영향 없음 치명적

세 번째 줄이 실무에서 결정적이다. 끝점 추정은 관측 두 개에 전부를 건다. 측정 오류로 큰 값 하나가 섞이면 추정값이 통째로 틀어진다. 연습문제 7의 표가 보였듯 균등이라는 가정이 정확할 때만 쓸 수 있으며, 그런 확신을 갖기가 실제로는 어렵다.

일반 교훈. 효율은 가정의 대가로 산다. 강한 가정을 쓰면 빠른 수렴을 얻지만 가정이 틀렸을 때 잃는 것도 크다. 지수모집단 문서 연습문제 8의 \(\bar X^2\) 대 \(S^2\) 비교와 똑같은 구도다.

연습문제 9. \(S^2\)의 분포가 정규에 얼마나 빨리 가까워지는지 모집단마다 비교하라. 균등·정규·지수에서 \(n = 10, 30, 100, 300\)일 때 \(S^2\)의 왜도를 재고, 순서가 왜 그렇게 나오는지 설명하라.

풀이
import numpy as np
from scipy import stats

rng = np.random.default_rng(0)
print(f"{'n':>5}{'균등':>12}{'정규':>12}{'지수':>12}")
for n in (10, 30, 100, 300):
    a = rng.uniform(0, 1, (150_000, n)).var(1, ddof=1)
    b = rng.normal(0, 1, (150_000, n)).var(1, ddof=1)
    c = rng.exponential(1, (150_000, n)).var(1, ddof=1)
    print(f"{n:>5}{stats.skew(a):>12.4f}{stats.skew(b):>12.4f}{stats.skew(c):>12.4f}")

출력:

    n          균등          정규          지수
   10      0.2205      0.9501      2.9002
   30      0.1269      0.5122      1.7687
  100      0.0700      0.2911      0.9427
  300      0.0312      0.1544      0.5401

균등이 가장 빠르고 지수가 가장 느리다. \(n=100\)에서 균등은 왜도가 \(0.070\)으로 사실상 정규인데, 지수는 \(0.943\)으로 여전히 뚜렷하게 치우쳐 있다. 지수의 \(n=300\)(\(0.540\))이 균등의 \(n=10\)(\(0.221\))보다도 나쁘다.

순서는 첨도가 정한다. \(S^2\)의 왜도는 대략 모집단의 6차 적률에 달려 있지만, 실용적으로는 \(\beta_2\)로 줄여 볼 수 있다.

모집단 \(\beta_2\) \((\beta_2-1)/2\) \(n=100\) 왜도
균등 \(1.8\) \(0.4\) \(0.070\)
정규 \(3.0\) \(1.0\) \(0.291\)
지수 \(9.0\) \(4.0\) \(0.943\)

꼬리가 두꺼울수록 \(S^2\)이 가끔 매우 큰 값을 낸다. 제곱합에 큰 관측 하나가 들어오면 \(S^2\)이 크게 튀는데, 그런 일이 지수에서는 자주, 균등에서는 거의 없다. 튀는 쪽이 오른쪽뿐이므로 왜도가 생긴다.

균등이 정규보다 빠르다는 점이 요점이다. 중심극한정리는 "\(n\)이 크면 정규"라고만 말하고 얼마나 커야 하는지는 모집단에 달려 있다. 균등처럼 꼬리가 아예 없는(유계인) 모집단에서는 수렴이 매우 빠르고, 지수처럼 꼬리가 있으면 느리다.

\(\bar X\)와 비교하면 차이가 더 분명하다. \(\bar X\)의 왜도는 \(\gamma_1/\sqrt n\)으로 줄어드는데 균등은 \(\gamma_1 = 0\)이라 \(n\)이 무엇이든 대칭이다. \(S^2\)은 균등에서도 \(n=10\)에 \(0.221\)이 남는다. \(S^2\)은 언제나 \(\bar X\)보다 느리게 정규에 다가간다는 이 절의 주제가 여기서도 확인된다.

연습문제 10. \(\sigma^2\)을 상대오차 \(10\%\) 이내로 추정하려면 표본이 얼마나 필요한가? 균등·정규·지수에서 각각 구하고, 같은 질문을 \(\mu\)에 대해 던졌을 때와 견주어라.

풀이

\(\operatorname{sd}(S^2)/\sigma^2 \approx \sqrt{(\beta_2-1)/n}\)을 \(0.10\) 이하로 만드는 \(n\)을 찾는다.

import numpy as np

print(f"{'모집단':>8}{'beta2':>8}{'분산 추정 n':>14}{'평균 추정 n':>14}")
for name, b2, cv in [("균등", 1.8, 0.5774), ("정규", 3.0, 1.0), ("지수", 9.0, 1.0)]:
    n1 = 2
    while np.sqrt((b2 - 1) / n1) > 0.10:
        n1 += 1
    # 평균: sd(Xbar)/mu = CV/sqrt(n) <= 0.10  (mu=1 로 맞춘 비교)
    n2 = int(np.ceil((cv / 0.10) ** 2))
    print(f"{name:>8}{b2:>8.1f}{n1:>14}{n2:>14}")

출력:

     모집단   beta2       분산 추정 n       평균 추정 n
      균등     1.8            80            34
      정규     3.0           200           100
      지수     9.0           800           100

분산 추정이 언제나 더 비싸다. 정규에서도 두 배(\(200\) 대 \(100\))이고, 지수에서는 여덟 배(\(800\) 대 \(100\))다.

필요 표본이 \(\beta_2 - 1\)에 정비례한다.

\[ n \ge \frac{\beta_2 - 1}{0.10^2} = 100(\beta_2-1) \]

균등 \(80\), 정규 \(200\), 지수 \(800\)이 정확히 이 식이다. 모집단의 꼬리가 두꺼울수록 분산 추정이 비싸진다.

평균 쪽은 첨도와 무관하다. \(\operatorname{sd}(\bar X)/\mu = \text{CV}/\sqrt n\)이라 변동계수만 있으면 되고 4차 적률은 필요 없다. 정규와 지수가 똑같이 \(100\)인 것이 그 때문이다(둘 다 \(\text{CV}=1\)로 맞춰 비교했다).

이것이 이 절의 결론을 표본크기 설계의 언어로 옮긴 것이다.

\(\bar X\) \(S^2\)
필요한 적률 2차 4차
첨도 의존 없음 정비례
모집단을 모를 때 설계 가능 설계 불가

세 번째 줄이 실무에서 곤란한 지점이다. 평균 추정의 표본크기는 변동계수만 대충 알면 정할 수 있지만, 분산 추정은 \(\beta_2\)를 알아야 하고 그것은 대개 모른다. 예비조사로 추정하려 해도 \(\beta_2\) 자체가 8차 적률에 의존하는 불안정한 양이다.

실용적 대처. 보수적으로 \(\beta_2\)를 크게 잡거나(\(\beta_2 = 9\) 정도), 분산 대신 사분위범위 같은 강건한 산포 측도의 정밀도로 설계한다. 어느 쪽이든 "분산은 평균보다 훨씬 비싸게 추정된다"는 사실은 바뀌지 않는다. \(\square\)


정리하며

  • 균등모집단에서 \(S^2\)은 여전히 불편이지만(\(E[S^2] = \sigma^2\)), 그 분산이 카이제곱 예측의 0.4배다.
  • 배율 \((\beta_2-1)/2\)는 표본크기와 무관하다. \(n\)을 키워도 어긋남이 사라지지 않는다는 점이 \(\bar X\)와 결정적으로 다르다.
  • 명목 95% 분산 신뢰구간의 실제 포함률이 99% 이상으로, 구간이 지나치게 넓다. 안전한 방향이지만 검정력을 잃는다.
  • 대칭 모집단이라 \(\text{Cov}(\bar X, S^2) = \mu_3/n = 0\)이지만 독립은 아니다. \(\bar X\)가 \(S^2\)의 상한을 제한한다.
  • 다음 페이지에서는 반대쪽 극단인 지수모집단을 본다. 거기서는 어긋남의 방향이 뒤집히고, 위험도 커진다.