ヘロログ
統計学

デルタ法

コインの面積を推定したいとする。面積は \pi r^2 だが、半径 r を直接測るのは難しいので、複数回測定して平均をとる。5回測定して平均が 9.04 mm だったとき、面積の推定値は \pi \times 9.04^2 \approx 257 mm² となる。

ここで疑問が生じる。この推定値はどれくらいばらつくのか? 半径の測定誤差が面積の推定にどう影響するかを知りたい。半径の平均 \bar{r} の分布は中心極限定理でわかるが、その二乗 \bar{r}^2 の分布はどうなるのか?

デルタ法(delta method)は、まさにこの問題を解決する手法である。標本平均 \bar{X} の分布がわかっているとき、その関数 f(\bar{X})(たとえば二乗、対数、逆数など)の分布を求めることができる。

直感的理解:接線で近似する

デルタ法のアイデアは単純である。曲線を接線で近似する

下のグラフは f(x) = x^2 のグラフと、x = 3 での接線を示している。標本平均 \bar{X} が真の値 \mu = 3 の周りでばらつくとき、f(\bar{X}) = \bar{X}^2 がどれくらいばらつくかを考えよう。

f(x) 0 5 10 15 20 25 x 1 2 3 4 5 X̄ のばらつき f(x) = x² 接線 μ = 3
図1: f(x) = x² と μ = 3 での接線。X̄ が μ の周りでばらつくとき、接線の傾きで変動が増幅される

サンプルサイズが大きいと、\bar{X}\mu の近くに集中する。この狭い範囲では、曲線はほぼ直線(接線)で近似できる。

ポイントは接線の傾きである。f(x) = x^2x = 3 での傾きは f'(3) = 2 \times 3 = 6。つまり、\bar{X} が 1 だけ動くと、f(\bar{X}) は約 6 動く。傾きが大きいほど、入力のばらつきが出力で増幅される

デルタ法の本質

\bar{X} のばらつきが \dfrac{\sigma^2}{n} なら、f(\bar{X}) のばらつきは (f'(\mu))^2 \times \dfrac{\sigma^2}{n} になる。傾きの二乗で増幅される。

具体例:まず数字で確認

抽象的な公式の前に、具体的な数字で計算してみよう。

X_1, \ldots, X_n が平均 \mu = 3、標準偏差 \sigma = 2 の分布に従うとする。標本平均 \bar{X} の二乗 \bar{X}^2 の分布を考える。

ステップ1:X̄ の分布

中心極限定理より、\bar{X} は近似的に正規分布に従う:

\bar{X} \sim N\left( 3, \dfrac{4}{n} \right)

(分散は \dfrac{\sigma^2}{n} = \dfrac{4}{n}

ステップ2:傾きを計算

f(x) = x^2 の導関数は f'(x) = 2xx = \mu = 3 での傾きは:

f'(3) = 2 \times 3 = 6

ステップ3:f(X̄) の分散を計算

デルタ法により、\bar{X}^2 の分散は:

\text{Var}[\bar{X}^2] \approx (f'(\mu))^2 \times \text{Var}[\bar{X}] = 6^2 \times \dfrac{4}{n} = \dfrac{144}{n}

結論

\bar{X}^2 は近似的に正規分布に従う:

\bar{X}^2 \sim N\left( 9, \dfrac{144}{n} \right)

たとえば n = 100 なら、\bar{X}^2 の標準偏差は \sqrt{\dfrac{144}{100}} = 1.2 となる。

定義

上の例を一般化しよう。

X_1, \ldots, X_n が独立に同じ分布に従い、平均 \mu、分散 \sigma^2 をもつとする。関数 f が滑らかで f'(\mu) \neq 0 のとき:

デルタ法
f(\bar{X}_n) \sim N\left( f(\mu), \dfrac{(f'(\mu))^2 \sigma^2}{n} \right) \quad \text{(近似的に)}

より正確には、n \to \infty のとき

\sqrt{n}(f(\bar{X}_n) - f(\mu)) \xrightarrow{d} N(0, (f'(\mu))^2 \sigma^2)

が成り立つ。記号 \xrightarrow{d} は「n が大きくなると、左辺の分布が右辺の分布に近づく」という意味である。

なぜこうなるのか(導出)

デルタ法はテイラー展開に基づく。f(x)x = \mu の周りで1次まで展開すると:

f(x) \approx f(\mu) + f'(\mu)(x - \mu)

x = \bar{X}_n を代入して整理すると:

f(\bar{X}_n) - f(\mu) \approx f'(\mu)(\bar{X}_n - \mu)

両辺に \sqrt{n} を掛けると:

\sqrt{n}(f(\bar{X}_n) - f(\mu)) \approx f'(\mu) \cdot \sqrt{n}(\bar{X}_n - \mu)

右辺について、中心極限定理より \sqrt{n}(\bar{X}_n - \mu) \xrightarrow{d} N(0, \sigma^2) なので、左辺は N(0, (f'(\mu))^2 \sigma^2) に近づく。

他の関数への適用

逆数 f(x) = \dfrac{1}{x}

f'(x) = -\dfrac{1}{x^2} より f'(\mu) = -\dfrac{1}{\mu^2}。よって:

\dfrac{1}{\bar{X}_n} \sim N\left( \dfrac{1}{\mu}, \dfrac{\sigma^2}{n\mu^4} \right) \quad \text{(近似的に)}

対数 f(x) = \log x

f'(x) = \dfrac{1}{x} より f'(\mu) = \dfrac{1}{\mu}。よって:

\log \bar{X}_n \sim N\left( \log \mu, \dfrac{\sigma^2}{n\mu^2} \right) \quad \text{(近似的に)}

分散 \dfrac{\sigma^2}{\mu^2} は変動係数(= 標準偏差 ÷ 平均)の二乗に一致する。

平方根 f(x) = \sqrt{x}

f'(x) = \dfrac{1}{2\sqrt{x}} より f'(\mu) = \dfrac{1}{2\sqrt{\mu}}。よって:

\sqrt{\bar{X}_n} \sim N\left( \sqrt{\mu}, \dfrac{\sigma^2}{4n\mu} \right) \quad \text{(近似的に)}

よく使う関数の公式

関数 f(x) 導関数 f'(x) f(X̄) の近似分散
x^2 2x \dfrac{4\mu^2 \sigma^2}{n}
x^3 3x^2 \dfrac{9\mu^4 \sigma^2}{n}
\dfrac{1}{x} -\dfrac{1}{x^2} \dfrac{\sigma^2}{n\mu^4}
\log x \dfrac{1}{x} \dfrac{\sigma^2}{n\mu^2}
\sqrt{x} \dfrac{1}{2\sqrt{x}} \dfrac{\sigma^2}{4n\mu}
e^x e^x \dfrac{e^{2\mu} \sigma^2}{n}

傾きが0のとき(2次のデルタ法)

f'(\mu) = 0 の場合、接線が水平なので1次近似では変動が捉えられない。このときは2次までテイラー展開する。

結果として、n(f(\bar{X}_n) - f(\mu)) は正規分布ではなく、カイ二乗分布のスカラー倍に近づく:

n(f(\bar{X}_n) - f(\mu)) \xrightarrow{d} \dfrac{f''(\mu) \sigma^2}{2} \chi^2_1

たとえば f(x) = x^2\mu = 0 の場合がこれに該当する。

練習問題

問1. X_1, \ldots, X_{100} が独立に平均 4、分散 9 の分布に従うとする。\bar{X}^2 の近似的な分布を求めよ。

f(x) = x^2f'(x) = 2x より f'(4) = 8

デルタ法より:

\text{Var}[\bar{X}^2] \approx 8^2 \times \dfrac{9}{100} = \dfrac{576}{100} = 5.76

よって \bar{X}^2 \sim N(16, 5.76)(近似的に)。標準偏差は約 2.4。

問2. ポアソン分布 \text{Po}(\lambda) では平均も分散も \lambda である。n 個の標本から \sqrt{\bar{X}} を計算するとき、その近似分散を求めよ。この結果の特徴は何か。

f(x) = \sqrt{x}f'(x) = \dfrac{1}{2\sqrt{x}} より f'(\lambda) = \dfrac{1}{2\sqrt{\lambda}}

ポアソン分布では \mu = \sigma^2 = \lambda なので:

\text{Var}[\sqrt{\bar{X}}] \approx \left( \dfrac{1}{2\sqrt{\lambda}} \right)^2 \times \dfrac{\lambda}{n} = \dfrac{1}{4\lambda} \times \dfrac{\lambda}{n} = \dfrac{1}{4n}

分散が \dfrac{1}{4n} となり、パラメータ λ に依存しない。これを分散安定化変換という。ポアソン分布のデータには平方根変換が有効である。

問3. 指数分布 \text{Exp}(\theta)(平均 \dfrac{1}{\theta}、分散 \dfrac{1}{\theta^2})から n 個の標本を取り、\hat{\theta} = \dfrac{1}{\bar{X}}\theta を推定する。\hat{\theta} の近似分布を求めよ。

f(x) = \dfrac{1}{x}f'(x) = -\dfrac{1}{x^2}\mu = \dfrac{1}{\theta} より f'(\mu) = -\theta^2

デルタ法より:

\text{Var}[\hat{\theta}] \approx (-\theta^2)^2 \times \dfrac{1}{n\theta^2} = \dfrac{\theta^2}{n}

よって \hat{\theta} \sim N\left( \theta, \dfrac{\theta^2}{n} \right)(近似的に)。

まとめ

項目 内容
目的 標本平均の関数 f(\bar{X}) の分布を求める
考え方 曲線を接線で近似する(テイラー展開)
近似分散 \dfrac{(f'(\mu))^2 \sigma^2}{n}(傾きの二乗で増幅)
前提条件 f が滑らか、f'(\mu) \neq 0n が十分大きい
f'(μ) = 0 の場合 2次のデルタ法を使用(カイ二乗分布に収束)

Pythonで検証する

デルタ法の結果をシミュレーションで確認する。f(x) = x^2\mu = 3\sigma = 2 の場合。

delta_method.py
import numpy as np

np.random.seed(42)

# パラメータ
mu, sigma = 3.0, 2.0
n_simulations = 100000

print("=== デルタ法の検証: f(x) = x² ===")
print(f"μ = {mu}, σ = {sigma}")
print(f"f'(μ) = 2μ = {2*mu}")
print(f"理論的な分散係数: (f'(μ))² × σ² = {(2*mu)**2 * sigma**2}")
print()

for n in [30, 100, 500]:
    # 正規分布から標本平均を生成
    X_bar = np.random.normal(mu, sigma/np.sqrt(n), n_simulations)
    
    # f(X_bar) = X_bar²
    f_X_bar = X_bar ** 2
    
    # 理論値
    theory_mean = mu ** 2  # = 9
    theory_var = (2*mu)**2 * sigma**2 / n
    
    # シミュレーション結果
    sim_mean = f_X_bar.mean()
    sim_var = f_X_bar.var()
    
    print(f"n = {n}:")
    print(f"  平均: 理論 {theory_mean:.2f}, 実測 {sim_mean:.2f}")
    print(f"  分散: 理論 {theory_var:.2f}, 実測 {sim_var:.2f}")
    print()
=== デルタ法の検証: f(x) = x² === μ = 3.0, σ = 2.0 f'(μ) = 2μ = 6.0 理論的な分散係数: (f'(μ))² × σ² = 144.0 n = 30: 平均: 理論 9.00, 実測 9.14 分散: 理論 4.80, 実測 4.84 n = 100: 平均: 理論 9.00, 実測 9.04 分散: 理論 1.44, 実測 1.44 n = 500: 平均: 理論 9.00, 実測 9.01 分散: 理論 0.29, 実測 0.29

n が大きくなるにつれて、シミュレーション結果が理論値に近づいている。