十分統計量とは?フィッシャー・ネイマンの因子分解定理

100個のデータ $x_1, x_2, \ldots, x_{100}$ が正規分布 $N(\mu, \sigma^2)$ から得られたとします。母平均 $\mu$ を推定したいとき、100個のデータすべてを覚えておく必要があるでしょうか。

実は、標本平均 $\bar{x}$ さえ知っていれば、元の100個のデータを知っていたときと同じ精度で $\mu$ を推定できます。$\bar{x}$ は $\mu$ に関する情報を「すべて」含んでいるのです。

この「パラメータに関する情報を全く失わない要約統計量」が十分統計量(sufficient statistic)です。フィッシャーが1920年代に導入したこの概念は、データ圧縮の理論的限界を示す深い結果であり、推定理論の土台となっています。

十分統計量を理解すると、以下のような場面で理論的な根拠を得ることができます。

  • データの要約: どの統計量がパラメータの情報を保存するか
  • 推定量の改良: ラオ・ブラックウェルの定理による推定量の改善
  • 分布族の理解: 指数型分布族の構造と自然パラメータ
  • 統計的決定理論: 十分性に基づく推定量の最適化

本記事の内容

  • 十分統計量の直感的な意味と数学的定義
  • フィッシャー・ネイマンの因子分解定理
  • 指数型分布族と十分統計量の関係
  • 最小十分統計量
  • ラオ・ブラックウェルの定理
  • Pythonでの確認

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

十分統計量とは

日常のアナロジー

大学の期末試験の成績を考えてみましょう。教授が「クラスの平均点」だけを知っているとします。もし試験の得点分布が正規分布に従うなら、平均点を知るだけで、個々の学生の得点を知っていたときと同等に母平均を推定できます。

逆に、「最高点」だけを知っている場合はどうでしょうか。最高点からも母平均についてある程度の情報は得られますが、平均点を知っているときほどの推定精度は達成できません。最高点は母平均について「十分な」情報を持っていないのです。

数学的定義

統計量 $T = T(X_1, \ldots, X_n)$ がパラメータ $\theta$ に関する十分統計量であるとは、$T$ が与えられたときのデータ $\bm{X} = (X_1, \ldots, X_n)$ の条件付き分布が $\theta$ に依存しないことです。

$$ \begin{equation} P(\bm{X} = \bm{x} | T(\bm{X}) = t) \quad \text{が } \theta \text{ に依存しない} \end{equation} $$

直感的な意味は次の通りです。$T$ の値を固定すると、残りのデータの「ばらつき方」はパラメータ $\theta$ と無関係です。つまり、$T$ がわかれば、元のデータの中に $\theta$ に関する追加情報は残っていません。

簡単な例

ベルヌーイ分布: $X_1, \ldots, X_n \sim \text{Bernoulli}(p)$ のとき、$T = \sum_{i=1}^n X_i$(成功の回数)は $p$ の十分統計量です。

なぜなら、$T = t$ が与えられたとき、$n$ 回中 $t$ 回成功した具体的なパターンの条件付き確率は

$$ P(\bm{X} = \bm{x} | T = t) = \frac{p^t(1-p)^{n-t}}{\binom{n}{t}p^t(1-p)^{n-t}} = \frac{1}{\binom{n}{t}} $$

であり、$p$ に依存しません。成功の合計回数さえわかれば、どの試行で成功したかという情報は $p$ の推定に全く寄与しません。

この定義からの直接的な確認は面倒な場合が多いため、次に紹介する因子分解定理が実用上非常に重要です。

フィッシャー・ネイマンの因子分解定理

定理の主張

統計量 $T(\bm{X})$ がパラメータ $\theta$ の十分統計量であるための必要十分条件は、同時密度(または確率質量関数)が次のように因子分解できることです。

$$ \begin{equation} f(\bm{x} | \theta) = g(T(\bm{x}), \theta) \cdot h(\bm{x}) \end{equation} $$

ここで – $g(T(\bm{x}), \theta)$ は $T$ と $\theta$ のみの関数($\bm{x}$ 全体には依存しない) – $h(\bm{x})$ は $\bm{x}$ のみの関数($\theta$ に依存しない)

定理の直感

尤度関数が $T(\bm{x})$ を通じてのみ $\theta$ に依存する、ということです。$h(\bm{x})$ は $\theta$ に関係しないため、推定には寄与しません。データが $\theta$ に関して持つ情報は、$T$ にすべて凝縮されています。

適用例

正規分布 $N(\mu, \sigma^2)$($\sigma^2$ 既知)での $\mu$ の十分統計量:

$$ f(\bm{x}|\mu) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(x_i – \mu)^2}{2\sigma^2}\right) $$

指数の部分を展開します。

$$ = \left(\frac{1}{2\pi\sigma^2}\right)^{n/2}\exp\left(-\frac{\sum x_i^2 – 2\mu\sum x_i + n\mu^2}{2\sigma^2}\right) $$

$T = \sum x_i = n\bar{x}$ として整理すると、

$$ = \underbrace{\exp\left(-\frac{-2\mu T + n\mu^2}{2\sigma^2}\right)}_{g(T, \mu)} \cdot \underbrace{\left(\frac{1}{2\pi\sigma^2}\right)^{n/2}\exp\left(-\frac{\sum x_i^2}{2\sigma^2}\right)}_{h(\bm{x})} $$

因子分解定理により、$T = \sum x_i$(あるいは等価な $\bar{X}$)は $\mu$ の十分統計量です。

ポアソン分布 $\text{Poisson}(\lambda)$:

$$ f(\bm{x}|\lambda) = \prod_{i=1}^n \frac{e^{-\lambda}\lambda^{x_i}}{x_i!} = \underbrace{e^{-n\lambda}\lambda^{\sum x_i}}_{g(\sum x_i, \lambda)} \cdot \underbrace{\prod_{i=1}^n \frac{1}{x_i!}}_{h(\bm{x})} $$

$T = \sum x_i$ が $\lambda$ の十分統計量です。

一様分布 $U(0, \theta)$:

$$ f(\bm{x}|\theta) = \frac{1}{\theta^n} \cdot \prod_{i=1}^n \mathbf{1}(0 \leq x_i \leq \theta) = \frac{1}{\theta^n}\mathbf{1}(x_{(n)} \leq \theta) \cdot \prod_{i=1}^n \mathbf{1}(x_i \geq 0) $$

$T = X_{(n)} = \max(X_1, \ldots, X_n)$ が $\theta$ の十分統計量です。最大値だけで $\theta$ に関するすべての情報が得られます。

因子分解定理は十分統計量を見つけるための強力なツールですが、十分統計量は一意ではありません。次に、指数型分布族との関係を通じて十分統計量の構造をより深く理解しましょう。

指数型分布族と十分統計量

指数型分布族

多くの重要な分布(正規、ポアソン、二項、ガンマ、ベータなど)は指数型分布族に属します。

$k$ パラメータの指数型分布族は次の形を持ちます。

$$ \begin{equation} f(x | \bm{\theta}) = h(x) \exp\left(\sum_{j=1}^k \eta_j(\bm{\theta}) T_j(x) – A(\bm{\theta})\right) \end{equation} $$

ここで $\eta_j(\bm{\theta})$ は自然パラメータ、$T_j(x)$ は十分統計量、$A(\bm{\theta})$ は対数分配関数です。

$n$ 個のiid標本の場合

$$ f(\bm{x}|\bm{\theta}) = \left(\prod_{i=1}^n h(x_i)\right) \exp\left(\sum_{j=1}^k \eta_j(\bm{\theta})\sum_{i=1}^n T_j(x_i) – nA(\bm{\theta})\right) $$

因子分解定理により、$\left(\sum_{i=1}^n T_1(x_i), \ldots, \sum_{i=1}^n T_k(x_i)\right)$ が $\bm{\theta}$ の十分統計量です。

具体例

分布 自然パラメータ $\eta$ 十分統計量 $\sum T_j(X_i)$
$N(\mu, \sigma^2)$ $\mu/\sigma^2, -1/(2\sigma^2)$ $\sum X_i, \sum X_i^2$
$\text{Poisson}(\lambda)$ $\ln\lambda$ $\sum X_i$
$\text{Exp}(\lambda)$ $-\lambda$ $\sum X_i$
$\text{Gamma}(\alpha, \beta)$ $\alpha – 1, -1/\beta$ $\sum \ln X_i, \sum X_i$
$\text{Bernoulli}(p)$ $\ln(p/(1-p))$ $\sum X_i$

指数型分布族では、$k$ 個の十分統計量の次元が固定されており、サンプルサイズ $n$ によらず同じ次元でデータを要約できるのが特徴です。

最小十分統計量

定義

$T$ は最小十分統計量(minimal sufficient statistic)であるとは、$T$ が十分統計量であり、かつ他の任意の十分統計量 $T’$ の関数として表せることです。つまり、最小十分統計量は「最も圧縮された形」の十分統計量です。

判定方法

$f(\bm{x}|\theta)/f(\bm{y}|\theta)$ が $\theta$ に依存しないための必要十分条件が $T(\bm{x}) = T(\bm{y})$ であるとき、$T$ は最小十分統計量です。

正規分布 $N(\mu, \sigma^2)$(両方未知)の場合:

$$ \frac{f(\bm{x}|\mu,\sigma^2)}{f(\bm{y}|\mu,\sigma^2)} = \exp\left(-\frac{\sum x_i^2 – \sum y_i^2}{2\sigma^2} + \frac{\mu(\sum x_i – \sum y_i)}{\sigma^2}\right) $$

これが $(\mu, \sigma^2)$ に依存しないことは $\sum x_i = \sum y_i$ かつ $\sum x_i^2 = \sum y_i^2$ と同値です。

したがって $(\sum X_i, \sum X_i^2)$ あるいは等価な $(\bar{X}, S^2)$ が最小十分統計量です。

十分統計量の概念がわかったところで、推定量の改良にどう使えるかを見ていきましょう。

ラオ・ブラックウェルの定理

定理の主張

$\hat{\theta}$ を $\theta$ の任意の不偏推定量、$T$ を十分統計量とします。このとき

$$ \begin{equation} \hat{\theta}^* = E[\hat{\theta} | T] \end{equation} $$

は以下の性質を持ちます。

  1. $\hat{\theta}^*$ も $\theta$ の不偏推定量
  2. $V[\hat{\theta}^*] \leq V[\hat{\theta}]$ (等号は $\hat{\theta}$ が既に $T$ の関数のときのみ)
  3. $\hat{\theta}^*$ は $T$ の関数(十分統計量にのみ依存する)

直感的な意味

十分統計量で条件付けて「平均化」することで、パラメータに関する情報を失わずに推定のばらつきを減らせます。イメージとしては、十分統計量以外のランダム性(ノイズ)を平均化して除去しているのです。

証明の概略

不偏性: $E[\hat{\theta}^*] = E[E[\hat{\theta}|T]] = E[\hat{\theta}] = \theta$(全期待値の法則)

分散の減少: 全分散の法則により

$$ V[\hat{\theta}] = E[V[\hat{\theta}|T]] + V[E[\hat{\theta}|T]] = E[V[\hat{\theta}|T]] + V[\hat{\theta}^*] $$

$E[V[\hat{\theta}|T]] \geq 0$ なので $V[\hat{\theta}^*] \leq V[\hat{\theta}]$ が成り立ちます。

具体例

一様分布 $U(0, \theta)$ からの標本 $X_1, \ldots, X_n$ で $\theta$ を推定します。

不偏推定量として $\hat{\theta} = 2X_1$ があります($E[2X_1] = 2 \cdot \theta/2 = \theta$)。

十分統計量は $T = X_{(n)} = \max(X_i)$ です。

ラオ・ブラックウェル化:

$$ \hat{\theta}^* = E[2X_1 | X_{(n)}] $$

$X_{(n)} = t$ が与えられたとき、$X_1$ の条件付き分布は $[0, t]$ 上の一様分布と他の $X_i$ の情報を合わせた分布になりますが、対称性から $E[X_1 | X_{(n)} = t] = t \cdot \frac{n+1}{2n}$ と… ここでは代わりに十分統計量に基づく直接的な不偏推定量 $\hat{\theta}^* = \frac{n+1}{n}X_{(n)}$ を使います。

$V[2X_1] = 4V[X_1] = \theta^2/3$ に対し、$V[\frac{n+1}{n}X_{(n)}] = \frac{\theta^2}{n(n+2)}$ であり、大幅に分散が減少します。

Pythonでこれらの性質を視覚的に確認しましょう。

Pythonでの確認

因子分解定理の視覚的確認

異なるパラメータ値でのデータの条件付き分布が、十分統計量を固定すると同一になることを確認します。

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

np.random.seed(42)

fig, axes = plt.subplots(1, 3, figsize=(16, 5))

# (a) ベルヌーイ: T=sum(Xi)を固定したときの条件付き分布
ax = axes[0]
n = 5
t_fixed = 2  # 成功回数を2に固定

# すべての可能なパターン
from itertools import product
patterns_all = list(product([0, 1], repeat=n))
patterns_t2 = [p for p in patterns_all if sum(p) == t_fixed]

p_values = [0.2, 0.5, 0.8]
for p in p_values:
    # 条件付き確率 P(X=x | T=t)
    probs = []
    for pat in patterns_t2:
        # P(X=x) / P(T=t)
        px = p**sum(pat) * (1-p)**(n-sum(pat))
        pt = stats.binom.pmf(t_fixed, n, p)
        probs.append(px / pt)
    ax.bar(np.arange(len(patterns_t2)) + p_values.index(p)*0.25 - 0.25,
           probs, width=0.2, alpha=0.7, label=f'p={p}')

ax.set_xlabel('Pattern index', fontsize=12)
ax.set_ylabel('$P(X=x | T=2)$', fontsize=12)
ax.set_title(f'Conditional Distribution\ngiven T={t_fixed} (Bernoulli)', fontsize=12)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
# ラベル
pattern_labels = [''.join(map(str, p)) for p in patterns_t2]
ax.set_xticks(range(len(patterns_t2)))
ax.set_xticklabels(pattern_labels, fontsize=7, rotation=45)

# (b) 正規分布: xbar を固定したときの残差の分布
ax = axes[1]
n = 20
n_sim = 5000

mu_values = [0, 3, 6]
xbar_target = 3.0  # 標本平均をこの値に固定
sigma = 1.0
tolerance = 0.05

for mu in mu_values:
    residuals = []
    for _ in range(n_sim * 5):
        sample = np.random.normal(mu, sigma, n)
        xbar = np.mean(sample)
        if abs(xbar - xbar_target) < tolerance:
            # xbar ≈ xbar_target のサンプルだけを使う
            residuals.append(sample[0] - xbar)
            if len(residuals) >= 500:
                break

    if len(residuals) > 50:
        ax.hist(residuals, bins=30, density=True, alpha=0.4,
                label=f'$\\mu = {mu}$')

ax.set_xlabel('$X_1 - \\bar{X}$', fontsize=12)
ax.set_ylabel('Density', fontsize=12)
ax.set_title(f'Residual Distribution given $\\bar{{X}} \\approx {xbar_target}$\n(Normal)', fontsize=12)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)

# (c) 一様分布: max を固定したときの分布
ax = axes[2]
n = 5
n_sim = 50000

theta_values = [3, 5, 8]
max_target = 2.5
tolerance_max = 0.1

for theta in theta_values:
    first_values = []
    for _ in range(n_sim):
        sample = np.random.uniform(0, theta, n)
        max_val = np.max(sample)
        if abs(max_val - max_target) < tolerance_max:
            first_values.append(sample[0])

    if len(first_values) > 50:
        ax.hist(first_values, bins=30, density=True, alpha=0.4,
                label=f'$\\theta = {theta}$ (n={len(first_values)})')

ax.set_xlabel('$X_1$', fontsize=12)
ax.set_ylabel('Density', fontsize=12)
ax.set_title(f'$X_1$ given $X_{{(n)}} \\approx {max_target}$\n(Uniform)', fontsize=12)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('sufficient_statistic_conditional.png', dpi=150, bbox_inches='tight')
plt.show()

このグラフから十分統計量の本質が確認できます。

  1. 左図(ベルヌーイ分布): $T = \sum X_i = 2$ を固定したとき、各パターン(10100, 01100, …)の条件付き確率は $p$ の値(0.2, 0.5, 0.8)によらず同一です。これが十分統計量の定義そのものです

  2. 中央図(正規分布): $\bar{X} \approx 3$ を固定したとき、残差 $X_1 – \bar{X}$ の分布は $\mu = 0, 3, 6$ のいずれでもほぼ同じ形状をしています。つまり、$\bar{X}$ が与えられれば、個々のデータの $\bar{X}$ からのずれのパターンは $\mu$ に依存しません

  3. 右図(一様分布): $X_{(n)} \approx 2.5$ を固定したとき、$X_1$ の分布は $\theta = 3, 5, 8$ のいずれでもほぼ同じ($[0, 2.5]$ 上の一様分布に近い形)です。最大値に情報が集約されています

ラオ・ブラックウェルの定理の確認

推定量の改良効果をシミュレーションで確認します。

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(42)

# 一様分布 U(0, theta) からの推定
theta_true = 5.0
n_sim = 10000
sample_sizes = [5, 10, 20, 50]

fig, axes = plt.subplots(1, 2, figsize=(14, 5.5))

# (a) 推定量の分布比較
ax = axes[0]
n = 10

estimates_2x1 = []      # 不偏だが非効率: 2X_1
estimates_rb = []        # ラオ・ブラックウェル化: (n+1)/n * X_(n)
estimates_mle = []       # MLE: X_(n) (バイアスあり)

for _ in range(n_sim):
    sample = np.random.uniform(0, theta_true, n)
    estimates_2x1.append(2 * sample[0])
    estimates_rb.append((n + 1) / n * np.max(sample))
    estimates_mle.append(np.max(sample))

ax.hist(estimates_2x1, bins=60, density=True, alpha=0.4, color='red',
        label=f'$2X_1$ (V={np.var(estimates_2x1):.3f})')
ax.hist(estimates_rb, bins=60, density=True, alpha=0.4, color='blue',
        label=f'$(n+1)X_{{(n)}}/n$ (V={np.var(estimates_rb):.3f})')
ax.hist(estimates_mle, bins=60, density=True, alpha=0.4, color='green',
        label=f'$X_{{(n)}}$ (V={np.var(estimates_mle):.3f})')
ax.axvline(theta_true, color='black', linewidth=2, linestyle='--',
           label=f'$\\theta = {theta_true}$')
ax.set_xlabel('Estimate', fontsize=12)
ax.set_ylabel('Density', fontsize=12)
ax.set_title(f'Estimator Comparison for $U(0, \\theta)$, n={n}', fontsize=13)
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)

# (b) MSE vs n
ax = axes[1]
mse_2x1 = []
mse_rb = []
mse_mle = []

for n in sample_sizes:
    e1, e2, e3 = [], [], []
    for _ in range(n_sim):
        sample = np.random.uniform(0, theta_true, n)
        e1.append((2*sample[0] - theta_true)**2)
        e2.append(((n+1)/n*np.max(sample) - theta_true)**2)
        e3.append((np.max(sample) - theta_true)**2)
    mse_2x1.append(np.mean(e1))
    mse_rb.append(np.mean(e2))
    mse_mle.append(np.mean(e3))

ax.plot(sample_sizes, mse_2x1, 'ro-', linewidth=2, markersize=8, label='$2X_1$ (unbiased)')
ax.plot(sample_sizes, mse_rb, 'bs-', linewidth=2, markersize=8, label='$(n+1)X_{(n)}/n$ (R-B)')
ax.plot(sample_sizes, mse_mle, 'g^-', linewidth=2, markersize=8, label='$X_{(n)}$ (MLE, biased)')
ax.set_xlabel('Sample size $n$', fontsize=12)
ax.set_ylabel('MSE', fontsize=12)
ax.set_title('MSE Comparison', fontsize=13)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
ax.set_yscale('log')

plt.tight_layout()
plt.savefig('rao_blackwell.png', dpi=150, bbox_inches='tight')
plt.show()

# 分散の理論値
print(f"\n分散の理論値 (theta={theta_true}, n=10):")
print(f"  2X_1:              V = theta^2/3 = {theta_true**2/3:.3f}")
print(f"  (n+1)X_(n)/n:      V = theta^2/(n(n+2)) = {theta_true**2/(10*12):.3f}")
print(f"  改善率: {(theta_true**2/3) / (theta_true**2/(10*12)):.1f}倍")

このグラフからラオ・ブラックウェルの定理の威力が確認できます。

  1. 左図(推定量の分布): $2X_1$(赤)は真の値を中心に大きく広がっていますが、ラオ・ブラックウェル化した推定量 $(n+1)X_{(n)}/n$(青)は真の値の近くに集中しています。分散が $2X_1$ の約 $3n(n+2)/n = 36$ 分の1に縮小しています。MLEの $X_{(n)}$(緑)はバイアスがありますが、分散は最も小さいです

  2. 右図(MSE): サンプルサイズの増加とともに全ての推定量のMSEが減少しますが、ラオ・ブラックウェル化推定量とMLEは $2X_1$ より桁違いに速く減少します。十分統計量の関数として推定量を構成することの重要性がわかります

まとめ

本記事では、十分統計量の理論について解説しました。

  • 十分統計量 $T$ は、$T$ が与えられたときのデータの条件付き分布が $\theta$ に依存しない統計量。パラメータに関する情報をすべて保存する
  • フィッシャー・ネイマンの因子分解定理: $f(\bm{x}|\theta) = g(T(\bm{x}), \theta) \cdot h(\bm{x})$ と分解できることが十分統計量の必要十分条件
  • 指数型分布族では十分統計量が自然に得られ、次元は固定される
  • 最小十分統計量は最も圧縮された十分統計量であり、尤度比の条件で判定できる
  • ラオ・ブラックウェルの定理: 十分統計量で条件付けることで、推定量の分散を減少させられる

次のステップとして、以下の記事も参考にしてください。