ヘロログ
統計学

不偏推定量とバイアス・バリアンス分解

データの分散を計算するとき、n で割るべきか n-1 で割るべきか、迷ったことはないだろうか?

実は、統計ソフトの多くは n-1 で割る。その理由は「n で割ると真の値より小さめに推定してしまう」からである。この「系統的なズレ」をバイアス(偏り)と呼ぶ。バイアスがゼロの推定量を不偏推定量という。

本記事では、推定量の良さを評価する基準として、バイアス、分散(バリアンス)、そしてこれらを統合した平均二乗誤差バイアス・バリアンス分解について解説する。なお、バイアスをデータから推定して補正する手法としてジャックナイフ法がある。

推定量の良さとは

パラメータ \theta を推定したい。標本 X_1, \ldots, X_n から計算される推定量を \hat{\theta} とする。\hat{\theta} は標本に依存するので確率変数である。

「良い推定量」とは何か? 直感的には、真の値 \theta に近い値を返す推定量が良い。これを定量化する指標がいくつかある。

真の値 θ 推定量A: バイアス小、分散大 推定量B: バイアス大、分散小 推定量C: バイアス小、分散小
図1: 推定量の分布。真の値に近く、ばらつきが小さいほど良い推定量

バイアス(偏り)

推定量 \hat{\theta}バイアス(bias, 偏り)は、推定量の期待値と真の値との差として定義される。

バイアスの定義
\text{Bias}(\hat{\theta}) = E[\hat{\theta}] - \theta

バイアスは「平均的にどれだけズレているか」を表す。正ならば過大推定、負ならば過小推定の傾向がある。

不偏推定量

バイアスがゼロの推定量、すなわち

E[\hat{\theta}] = \theta

を満たす推定量を不偏推定量(unbiased estimator)という。「平均的には正しい値を返す」推定量である。

不偏推定量

推定量の期待値が真のパラメータに等しいとき、その推定量を不偏推定量という。

平均二乗誤差(MSE)

推定量の良さを総合的に評価する指標として、平均二乗誤差(Mean Squared Error, MSE)がある。

平均二乗誤差
\text{MSE}(\hat{\theta}) = E[(\hat{\theta} - \theta)^2]

MSE は「推定量と真の値のズレの二乗」の期待値であり、値が小さいほど良い推定量である。

バイアス・バリアンス分解

MSE は、バイアスの二乗と分散(バリアンス)の和に分解できる。これをバイアス・バリアンス分解(bias-variance decomposition)という。

導出

\mu = E[\hat{\theta}] とおく。\hat{\theta} - \theta(\hat{\theta} - \mu) + (\mu - \theta) と分解すると

\begin{aligned} \text{MSE}(\hat{\theta}) &= E[(\hat{\theta} - \theta)^2] \\[5pt] &= E[((\hat{\theta} - \mu) + (\mu - \theta))^2] \\[5pt] &= E[(\hat{\theta} - \mu)^2] + 2(\mu - \theta)E[\hat{\theta} - \mu] + (\mu - \theta)^2 \end{aligned}

ここで E[\hat{\theta} - \mu] = E[\hat{\theta}] - \mu = 0 なので、中央の項は消える。また E[(\hat{\theta} - \mu)^2] = V[\hat{\theta}]\mu - \theta = E[\hat{\theta}] - \theta = \text{Bias}(\hat{\theta}) より

バイアス・バリアンス分解
\text{MSE}(\hat{\theta}) = V[\hat{\theta}] + (\text{Bias}(\hat{\theta}))^2

つまり、MSE は「分散」と「バイアスの二乗」の和である。

バイアス・バリアンス分解の意味

推定の誤差は、ばらつき(分散)と系統的なズレ(バイアス)の2つの要因から生じる。不偏推定量ではバイアス項がゼロになるので、MSE = 分散 となる。

例1:標本平均

期待値 \mu、分散 \sigma^2 の分布から独立に得た標本 X_1, \ldots, X_n に対して、標本平均

\bar{X} = \dfrac{1}{n} \sum_{i=1}^{n} X_i

\mu の不偏推定量であることを示す。

期待値の計算

E[\bar{X}] = E\left[\dfrac{1}{n} \sum_{i=1}^{n} X_i\right] = \dfrac{1}{n} \sum_{i=1}^{n} E[X_i] = \dfrac{1}{n} \cdot n\mu = \mu

よって \text{Bias}(\bar{X}) = E[\bar{X}] - \mu = 0 となり、標本平均は母平均の不偏推定量である。

分散の計算

X_i が独立なので

V[\bar{X}] = V\left[\dfrac{1}{n} \sum_{i=1}^{n} X_i\right] = \dfrac{1}{n^2} \sum_{i=1}^{n} V[X_i] = \dfrac{1}{n^2} \cdot n\sigma^2 = \dfrac{\sigma^2}{n}

不偏なので MSE は分散に等しい:\text{MSE}(\bar{X}) = \dfrac{\sigma^2}{n}

例2:標本分散

次に、分散 \sigma^2 の推定量を考える。2つの推定量を比較しよう。

\begin{aligned} S_n^2 &= \dfrac{1}{n} \sum_{i=1}^{n} (X_i - \bar{X})^2 \quad \text{(n で割る:最尤推定量)} \\[8pt] s^2 &= \dfrac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar{X})^2 \quad \text{(n-1 で割る:不偏分散)} \end{aligned}

n で割る標本分散のバイアス

\sum_{i=1}^{n} (X_i - \bar{X})^2 の期待値を計算すると

E\left[\sum_{i=1}^{n} (X_i - \bar{X})^2\right] = (n-1)\sigma^2

となる(導出は下記(参考)を確認)。よって

E[S_n^2] = \dfrac{(n-1)\sigma^2}{n} = \left(1 - \dfrac{1}{n}\right)\sigma^2

これは \sigma^2 より小さい。バイアスは

\text{Bias}(S_n^2) = E[S_n^2] - \sigma^2 = -\dfrac{\sigma^2}{n}

n で割る標本分散は、分散を過小推定する傾向がある(負のバイアス)。

n-1 で割る不偏分散

E[s^2] = \dfrac{(n-1)\sigma^2}{n-1} = \sigma^2

n-1 で割る不偏分散は、分散の不偏推定量である。これが統計ソフトで n-1 で割る理由である。

なぜ n-1 になるか

\bar{X} を計算する際に1つの自由度を「使ってしまう」ため、偏差の二乗和の自由度は n-1 になる。これを自由度の概念で説明することもある。

(参考)期待値の導出

\sum (X_i - \bar{X})^2 = \sum X_i^2 - n\bar{X}^2 を使う。E[X_i^2] = V[X_i] + (E[X_i])^2 = \sigma^2 + \mu^2E[\bar{X}^2] = V[\bar{X}] + (E[\bar{X}])^2 = \dfrac{\sigma^2}{n} + \mu^2 より

\begin{aligned} E\left[\sum_{i=1}^{n} (X_i - \bar{X})^2\right] &= \sum_{i=1}^{n} E[X_i^2] - nE[\bar{X}^2] \\[5pt] &= n(\sigma^2 + \mu^2) - n\left(\dfrac{\sigma^2}{n} + \mu^2\right) \\[5pt] &= n\sigma^2 - \sigma^2 = (n-1)\sigma^2 \end{aligned}

バイアスとバリアンスのトレードオフ

「不偏推定量が常に最良か?」というと、そうとは限らない。バイアス・バリアンス分解から、MSE を小さくするには

  • バイアスを小さくする
  • 分散を小さくする

の両方が必要だが、これらはしばしばトレードオフの関係にある。

例:一様分布の上端の推定

一様分布 U(0, \theta) から標本を得たとき、\theta の推定量として以下の2つを考える。

\begin{aligned} \hat{\theta}_1 &= 2\bar{X} \quad \text{(モーメント法、不偏)} \\[5pt] \hat{\theta}_2 &= X_{(n)} \quad \text{(最大値、バイアスあり)} \end{aligned}

\hat{\theta}_1 = 2\bar{X} は不偏(E[\hat{\theta}_1] = 2 \cdot \dfrac{\theta}{2} = \theta)だが、分散が大きい。\hat{\theta}_2 = X_{(n)} はバイアスがある(E[X_{(n)}] = \dfrac{n}{n+1}\theta < \theta)が、分散が小さい。

MSE を比較すると、サンプルサイズが大きいときは最大値の方が MSE が小さくなる場合がある。不偏性にこだわりすぎると、かえって精度が落ちることがある

一様最小分散不偏推定量(UMVUE)

不偏推定量の中で分散が最小のものを一様最小分散不偏推定量(Uniformly Minimum Variance Unbiased Estimator, UMVUE)という。

不偏推定量ではバイアス項がゼロなので、MSE は分散に等しくなる。したがって UMVUE は、不偏推定量の中で MSE を最小化する推定量でもある。

一様最小分散不偏推定量

すべての不偏推定量の中で、どのパラメータ値に対しても分散が最小となる推定量を UMVUE という。

正規分布 N(\mu, \sigma^2) からの標本に対して、標本平均 \bar{X}\mu の UMVUE であることが知られている。推定量が UMVUE であるかを判定する方法として、クラメール・ラオの不等式が有用である。

練習問題

問1. 期待値 \mu、分散 \sigma^2 の分布からの標本 X_1, X_2(サンプルサイズ2)に対して、以下の推定量を考える。
\hat{\mu}_1 = \dfrac{X_1 + X_2}{2}, \quad \hat{\mu}_2 = \dfrac{2X_1 + X_2}{3}
(1) 両方とも \mu の不偏推定量であることを示せ。
(2) どちらの分散が小さいか。

(1) E[\hat{\mu}_1] = \dfrac{E[X_1] + E[X_2]}{2} = \dfrac{\mu + \mu}{2} = \mu

E[\hat{\mu}_2] = \dfrac{2E[X_1] + E[X_2]}{3} = \dfrac{2\mu + \mu}{3} = \mu

よって両方とも不偏推定量である。

(2) X_1, X_2 は独立なので

V[\hat{\mu}_1] = \dfrac{V[X_1] + V[X_2]}{4} = \dfrac{2\sigma^2}{4} = \dfrac{\sigma^2}{2}

V[\hat{\mu}_2] = \dfrac{4V[X_1] + V[X_2]}{9} = \dfrac{5\sigma^2}{9}

\dfrac{\sigma^2}{2} = \dfrac{4.5\sigma^2}{9} < \dfrac{5\sigma^2}{9} なので、\hat{\mu}_1 の方が分散が小さい

問2. ある推定量 \hat{\theta} のバイアスが 2、分散が 5 であるとき、MSE を求めよ。

バイアス・バリアンス分解より

\text{MSE} = V[\hat{\theta}] + (\text{Bias})^2 = 5 + 2^2 = 5 + 4 = 9
問3. ポアソン分布 \text{Po}(\lambda) からの標本 X_1, \ldots, X_n に対して、標本平均 \bar{X}\lambda の不偏推定量であることを示し、その分散と MSE を求めよ。

ポアソン分布では E[X_i] = \lambdaV[X_i] = \lambda である。

E[\bar{X}] = \lambda なので不偏推定量である。

X_i は独立なので、例1と同様に

V[\bar{X}] = \dfrac{V[X_i]}{n} = \dfrac{\lambda}{n}

不偏なので \text{MSE}(\bar{X}) = V[\bar{X}] = \dfrac{\lambda}{n}

まとめ

概念 定義
バイアス \text{Bias}(\hat{\theta}) = E[\hat{\theta}] - \theta
不偏推定量 E[\hat{\theta}] = \theta(バイアス = 0)
MSE \text{MSE}(\hat{\theta}) = E[(\hat{\theta} - \theta)^2]
バイアス・バリアンス分解 \text{MSE} = V[\hat{\theta}] + (\text{Bias})^2
UMVUE 不偏推定量の中で分散が最小
推定量 対象 不偏性
標本平均 \bar{X} 母平均 \mu ○ 不偏
n で割る標本分散 母分散 \sigma^2 × バイアスあり(過小推定)
n-1 で割る不偏分散 母分散 \sigma^2 ○ 不偏

Pythonで検証する

シミュレーションで、n で割る標本分散と n-1 で割る不偏分散のバイアスを検証する。

bias_variance.py
import numpy as np

np.random.seed(42)

# 真のパラメータ
true_mu = 5.0
true_sigma2 = 4.0  # σ² = 4
n = 10  # サンプルサイズ
n_sim = 10000  # シミュレーション回数

# 推定量を格納
sample_means = []
biased_vars = []    # n で割る
unbiased_vars = []  # n-1 で割る

for _ in range(n_sim):
    data = np.random.normal(true_mu, np.sqrt(true_sigma2), n)
    sample_means.append(data.mean())
    biased_vars.append(data.var(ddof=0))    # n で割る
    unbiased_vars.append(data.var(ddof=1))  # n-1 で割る

print("=== シミュレーション結果 ===")
print(f"サンプルサイズ: n = {n}")
print(f"シミュレーション回数: {n_sim}")
print(f"真の母平均: μ = {true_mu}")
print(f"真の母分散: σ² = {true_sigma2}")
print()

# 標本平均の検証
print("【標本平均(μの推定)】")
print(f"  E[X̄] の推定値: {np.mean(sample_means):.4f}")
print(f"  バイアス: {np.mean(sample_means) - true_mu:.4f}")
print(f"  分散: {np.var(sample_means):.4f}")
print(f"  理論値: σ²/n = {true_sigma2/n:.4f}")
print()

# n で割る標本分散の検証
print("【n で割る標本分散(σ²の推定)】")
print(f"  期待値: {np.mean(biased_vars):.4f}")
print(f"  理論値: (n-1)/n × σ² = {(n-1)/n * true_sigma2:.4f}")
print(f"  バイアス: {np.mean(biased_vars) - true_sigma2:.4f}")
print(f"  理論値: -σ²/n = {-true_sigma2/n:.4f}")
print()

# n-1 で割る不偏分散の検証
print("【n-1 で割る不偏分散(σ²の推定)】")
print(f"  期待値: {np.mean(unbiased_vars):.4f}")
print(f"  理論値: σ² = {true_sigma2:.4f}")
print(f"  バイアス: {np.mean(unbiased_vars) - true_sigma2:.4f}")
print()

# MSE の比較
mse_biased = np.mean((np.array(biased_vars) - true_sigma2)**2)
mse_unbiased = np.mean((np.array(unbiased_vars) - true_sigma2)**2)

print("【MSE の比較】")
print(f"  n で割る標本分散の MSE: {mse_biased:.4f}")
print(f"  n-1 で割る不偏分散の MSE: {mse_unbiased:.4f}")
=== シミュレーション結果 === サンプルサイズ: n = 10 シミュレーション回数: 10000 真の母平均: μ = 5.0 真の母分散: σ² = 4.0 【標本平均(μの推定)】 E[X̄] の推定値: 5.0019 バイアス: 0.0019 分散: 0.4141 理論値: σ²/n = 0.4000 【n で割る標本分散(σ²の推定)】 期待値: 3.5931 理論値: (n-1)/n × σ² = 3.6000 バイアス: -0.4069 理論値: -σ²/n = -0.4000 【n-1 で割る不偏分散(σ²の推定)】 期待値: 3.9924 理論値: σ² = 4.0000 バイアス: -0.0076 【MSE の比較】 n で割る標本分散の MSE: 2.9966 n-1 で割る不偏分散の MSE: 3.4952

シミュレーション結果から、n で割る標本分散は確かに負のバイアス(約 -0.4)をもち、n-1 で割る不偏分散はほぼバイアスがゼロであることが確認できた。興味深いことに、MSE は n で割る標本分散の方が小さい。これはバイアス・バリアンスのトレードオフの例である。