手帳と試行

学んだことをアウトプットしていきます。 日々、ノートあるのみ。

誤差伝播

標本統計量を関数に入力したときの誤差伝播の考え方を導入する。

関数への入力

とある実験を NN 回行なってサイズ NN の標本 {xi}i=1N\{x_i\}_{i=1}^N を得たとき、「中心極限定理」が成り立つ場合には標本平均 x\overline x68 %68~\% の頻度で E[x]±V[x]\mathop{\rm E}[\overline x] \pm \sqrt{\mathop{\rm V}[\overline x]} の範囲に入る。

x68 %E[x]±V[x]\overline x \mathop{\sim}\limits_{68~\%} \mathop{\rm E}[\overline x] \pm \sqrt{\mathop{\rm V}[\overline x]}
{E[x]=E[x]V[x]=V[x]N=E[sx2]N1\left\lbrace \begin{aligned} \mathop{\rm E}[\overline x] &= \mathop{\rm E}[x] \\ \mathop{\rm V}[\overline x] &= \frac{\mathop{\rm V}[x]}{N} = \frac{\mathop{\rm E}[s_x^2]}{N-1} \end{aligned} \right.

ここで標本平均 x\overline x を何らかの関数に入力して、出力 f(x)f(\overline x) を得る場合を考える。標本平均 x\overline x は確率変数とみなしているため、f(x)f(\overline x) もまた確率的な値となる。よって、単なる出力値 f(x)f(\overline x) ではなく、その期待値 E[f(x)]\mathop{\rm E}[f(\overline x)] と分散 V[f(x)]\mathop{\rm V}[f(\overline x)] に興味がある。

xE[x]±V[x]f(x)E[f(x)]±V[f(x)]\begin{alignedat}{3} && \overline x &\sim \mathop{\rm E}[\overline x]&&\pm \sqrt{\mathop{\rm V}[\overline x]} \\ &\to\qquad& f(\overline x) &\sim \mathop{\rm E}[f(\overline x)] &&\pm \sqrt{\mathop{\rm V}[f(\overline x)]} \end{alignedat}

誤差伝播

関数 ff がよほど「都合の良い」関数でもない限り、期待値に対する関数値 f(E[x])f(\mathop{\rm E}[\overline x]) と、関数値に対する期待値 E[f(x)]\mathop{\rm E}[f(\overline x)] は異なった値となる。それらの両者の差分をバイアス (bias) などという。わかりやすさのためにバイアスを fbiasf_\text{bias} と書くことにすれば、次のようになる。

E[f(x)]=f(E[x])+fbias\begin{aligned} \mathop{\rm E}[f(\overline x)] = f(\mathop{\rm E}[\overline x]) + f_\text{bias} \end{aligned}

以降、期待値 E[x]=E[x]\mathop{\rm E}[\overline x] = \mathop{\rm E}[x]μx\mu_x と表すことにする。

E[f(x)]=f(μx)+fbias\begin{aligned} \mathop{\rm E}[f(\overline x)] = f(\mu_x) + f_\text{bias} \end{aligned}

この fbiasf_\text{bias} という量を意識し、f(x)f(\overline x)f(μx)f(\mu_x) からどれほどずれているかという観点で計算しよう。すなわち ff を点 E[x]\mathop{\rm E}[\overline x] の周りでテイラー展開する。

f(x)f(μx)+dfdμx(xμx)+12d2fdμx2(xμx)2+\begin{aligned} f(\overline x) &\approx f(\mu_x) + \frac{df}{d \mu_x} (\overline x - \mu_x) + \frac{1}{2} \frac{d^2 f}{d \mu_x^2} (\overline x - \mu_x)^2 + \dots \\ \end{aligned}

このような「ずれ」が伝播するという観点での推定方法を誤差伝播 (error propagation) などという。

期待値の推定量

関数 ff のテイラー展開の2次の項までを取り込む。

f(x)f(μx)+dfdμx(xμx)+12d2fdμx2(xμx)2\begin{aligned} f(\overline x) &\approx f(\mu_x) + \frac{df}{d \mu_x} (\overline x - \mu_x) + \frac{1}{2} \frac{d^2 f}{d \mu_x^2} (\overline x - \mu_x)^2 \\ \end{aligned}

さらに期待値を計算する。

E[f(x)]=f(x)f(μx)+dfdμx(xμx)0+12d2fdμx2(xμx)2variance=f(μx)+12d2fdμx2V[x]=f(μx)+12d2fdμx2V[x]N=f(μx)+12d2fdμx2E[sx2]N1\begin{aligned} \mathop{\rm E}[f(\overline x)] ={}& \langle f(\overline x) \rangle \\ \approx{}& \left\langle f(\mu_x) + \frac{df}{d \mu_x} \underbrace{(\overline x - \mu_x)}_{0} + \frac{1}{2} \frac{d^2 f}{d \mu_x^2} \underbrace{(\overline x - \mu_x)^2}_{\text{variance}} \right\rangle \\ ={}& f(\mu_x) + \frac{1}{2} \frac{d^2 f}{d \mu_x^2} \mathop{\rm V}[\overline x] \\ ={}& f(\mu_x) + \frac{1}{2} \frac{d^2 f}{d \mu_x^2} \frac{\mathop{\rm V}[x]}{N} \\ ={}& f(\mu_x) + \frac{1}{2} \frac{d^2 f}{d \mu_x^2} \frac{\mathop{\rm E}[s_x^2]}{N-1} \\ \end{aligned}

分散の推定量

今度は ff を1次まで展開する。

f(x)f(μx)+dfdμx(xμx)\begin{aligned} f(\overline x) \approx f(\mu_x) + \frac{df}{d \mu_x} (\overline x - \mu_x) \end{aligned}

すると分散は次のようになる。

V[f(x)]=f(x)2(1)f2(x)(2)(1)f(μx)+dfdμx(xμx)02=f2(μx),(2)(f(μx)+dfdμx(xμx))2=f2(μx)+2f2(μx)dfdμx(xμx)0+(dfdμx)2(xμx)2variance=f2(μx)+(dfdμx)2V[x](dfdμx)2V[x]=(dfdμx)2V[x]N=(dfdμx)2E[sx2]N1\begin{aligned} \mathop{\rm V}[f(\overline x)] ={}& \underbrace{\langle f(\overline x) \rangle^2}_{(1)} - \underbrace{\langle f^2(\overline x) \rangle}_{(2)} \\ &\left\| \small \quad \begin{aligned} (1) \approx{}& \left\langle f(\mu_x) + \frac{df}{d \mu_x} \underbrace{(\overline x - \mu_x)}_{0} \right\rangle^2 \\ ={}& f^2(\mu_x), \\ (2) \approx{}& \left\langle \left( f(\mu_x) + \frac{df}{d \mu_x} (\overline x - \mu_x) \right)^2 \right\rangle \\ ={}& \left\langle f^2(\mu_x) + 2 f^2(\mu_x) \frac{df}{d \mu_x} \underbrace{(\overline x - \mu_x)}_{0} + \left(\frac{df}{d \mu_x}\right)^2 \underbrace{(\overline x - \mu_x)^2}_{\text{variance}} \right\rangle \\ &= f^2(\mu_x) + \left(\frac{df}{d \mu_x}\right)^2 \mathop{\rm V}[\overline x] \\ \end{aligned}\right. \\ \approx{}& \left(\frac{df}{d \mu_x}\right)^2 \mathop{\rm V}[\overline x] \\ ={}& \left(\frac{df}{d \mu_x}\right)^2 \frac{\mathop{\rm V}[x]}{N} \\ ={}& \left(\frac{df}{d \mu_x}\right)^2 \frac{\mathop{\rm E}[s_x^2]}{N-1} \end{aligned}

この推定量の平方根をとったものを標準偏差の推定量として採用することで、標準偏差の推定量を得ることができる。ただし分散の不偏推定量の平方根は標準偏差の不偏推定量ではない問題が生じるので、これを使うかどうかは少し慎重になったほうがいいかもしれない。

V[f(x)]=dfdμxE[sx2]N1\begin{aligned} \sqrt{\mathop{\rm V}[f(\overline x)]} = \frac{df}{d \mu_x} \sqrt\frac{\mathop{\rm E}[s_x^2]}{N-1} \end{aligned}

まとめ

以上をまとめると次のとおりである。

E[f(x)]=f(μx)+12d2fdμx2E[sx2]N1V[f(x)]=(dfdμx)2E[sx2]N1\begin{aligned} \mathop{\rm E}[f(\overline x)] ={}& f(\mu_x) + \frac{1}{2} \frac{d^2 f}{d \mu_x^2} \frac{\mathop{\rm E}[s_x^2]}{N-1} \\ \mathop{\rm V}[f(\overline x)] ={}& \left(\frac{df}{d \mu_x}\right)^2 \frac{\mathop{\rm E}[s_x^2]}{N-1} \end{aligned}

バイアスをはっきり書くと

E[f(x)]=f(μx)+fbiasV[f(x)]=(dfdμx)2E[sx2]N1fbias=12d2fdμx2E[sx2]N1\begin{aligned} \mathop{\rm E}[f(\overline x)] ={}& f(\mu_x) + f_\text{bias} \\ \mathop{\rm V}[f(\overline x)] ={}& \left(\frac{df}{d \mu_x}\right)^2 \frac{\mathop{\rm E}[s_x^2]}{N-1} \\ f_\text{bias} ={}& \frac{1}{2} \frac{d^2 f}{d \mu_x^2} \frac{\mathop{\rm E}[s_x^2]}{N-1} \end{aligned}

と書くこともできる。

信頼区間

以上の結果を利用すれば、f(μx)f(\mu_x) の信頼区間も計算できる。f(x)f(\overline x) の期待値±1標準偏差の区間を考えよう。

f(x)E[f(x)]±V[f(x)]f(μx)+fbias±V[f(x)]\begin{aligned} f(\overline x) \sim{}& \mathop{\rm E}[f(\overline x)] \pm \mathop{\rm V}[f(\overline x)] \\ \approx{}& f(\mu_x) + f_\text{bias} \pm \mathop{\rm V}[f(\overline x)] \end{aligned}

ここから f(μx)f(\mu_x) を抜き出してくる。

f(μx)f(x)fbias±V[f(x)]f(\mu_x) \sim f(\overline x) - f_\text{bias} \pm \mathop{\rm V}[f(\overline x)]
fbias=12d2fdμx2E[sx2]N1V[f(x)]=(dfdμx)2E[sx2]N1\begin{aligned} f_\text{bias} ={}& \frac{1}{2} \frac{d^2 f}{d \mu_x^2} \frac{\mathop{\rm E}[s_x^2]}{N-1} \\ \mathop{\rm V}[f(\overline x)] ={}& \left(\frac{df}{d \mu_x}\right)^2 \frac{\mathop{\rm E}[s_x^2]}{N-1} \end{aligned}