指数関数の定積分:正規分布の累積分布関数の計算への応用 #
概要 #
指数関数の定積分 のページでは,指数関数に関するいくつかの定積分の表示について説明しました.本ページでは,その応用として,正規分布の累積分布関数の計算への応用について説明します.
例えば,C++17 では,標準ライブラリに std::erfc
関数(相補誤差関数)がありますが,正規分布の累積分布関数を直接計算する関数は提供されていません.
しかし,相補誤差関数と正規分布の累積分布関数はスケールが異なるだけなので,std::erfc
関数があれば,正規分布の累積分布関数は計算できます.
そこで,本ページでは,指数関数の定積分 の結果を用いて,相補誤差関数と正規分布の累積分布関数の具体的な関係式を導出します.
正規分布 #
正規分布 とは,連続型確率変数のしたがう確率分布のひとつで,様々な場面で用いられます.
平均 \(\mu\) , 分散 \(\sigma^2\) の正規分布の 確率密度関数 は, \[ f_X(x)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) \] と表されます. ここで, \[ F_X(x)=\int_{-\infty}^xf_X(x)dx \] とおくと, \(F_X(x)\) は,正規分布に従う確率変数 \(X\) が \(x\) 以下である確率を表します. 一般に,確率密度関数 \(f_X\) を用いて上記の \(F_X\) のように定義される関数を 累積分布関数 と呼びます.
正規分布の累積分布関数と誤差関数 #
いま, \[ -\frac{(x-\mu)^2}{2\sigma^2}=-\frac{1}{2\sigma^2}x^2+\frac{\mu}{\sigma^2}x-\frac{\mu^2}{2\sigma^2} \] なので, \[ \begin{aligned} &a=-\frac{1}{2\sigma^2},\\ &b=\frac{\mu}{\sigma^2},\\ &c=-\frac{\mu^2}{2\sigma^2} \end{aligned} \] として,指数関数の定積分の定積分3を適用すると, \[ \begin{aligned} &\frac{\sqrt{\pi}}{2\sqrt{-a}}=\frac{\sqrt{\pi}}{2\sqrt{1/(2\sigma^2)}} =\frac{\sqrt{\pi}\sqrt{\sigma^2}}{\sqrt{2}},\\ &\frac{b^2-4ac}{4a}=\frac{b^2}{4a}-c=\frac{\mu^2/\sigma^4}{-2/\sigma^2}-\left(-\frac{\mu^2}{2\sigma^2}\right)=0\\ &\frac{b}{2a} =\frac{\mu/\sigma^2}{-1/\sigma^2} =-\mu \end{aligned} \] より, \[ \begin{aligned} &\int_{\alpha}^{\beta}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)dx\\ &=\frac{\sqrt{\pi}\sqrt{\sigma^2}}{\sqrt{2}}\\ &\quad\times\left(\mathrm{erfc}\left(\frac{1}{\sqrt{2\sigma^2}}(\alpha-\mu)\right)-\mathrm{erfc}\left(\frac{1}{\sqrt{2\sigma^2}}(\beta-\mu)\right)\right) \end{aligned} \] となります.特に, \(\beta=x\) , \(\alpha\to-\infty\) のとき, \[ \begin{aligned} &\int_{-\infty}^x\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)dx\\ &=\frac{\sqrt{\pi}\sqrt{\sigma^2}}{\sqrt{2}}\left(2-\mathrm{erfc}\left(\frac{1}{\sqrt{2\sigma^2}}(x-\mu)\right)\right) \end{aligned} \] です.
ところで, \[ \begin{aligned} &2-\mathrm{erfc}(z)\\ &=\frac{2}{\sqrt{\pi}}\left(\int_{-\infty}^{\infty}-\int_z^{\infty}\right)\exp(-t^2)dt\\ &=\frac{2}{\sqrt{\pi}}\int_{-\infty}^{z}\exp(-t^2)dt\\ &=\frac{2}{\sqrt{\pi}}\int_{-z}^{\infty}\exp(-t^2)dt\\ &=\mathrm{erfc}(-z) \end{aligned} \] なので, \[ \begin{aligned} &\int_{-\infty}^x\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)dx\\ &=\frac{\sqrt{\pi}\sqrt{\sigma^2}}{\sqrt{2}}\mathrm{erfc}\left(-\frac{1}{\sqrt{2\sigma^2}}(x-\mu)\right) \end{aligned} \] より, \[ \begin{aligned} &F_X(x)\\ &=\frac{1}{\sqrt{2\pi\sigma^2}}\int_{-\infty}^x\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)dx\\ &=\frac{1}{2}\mathrm{erfc}\left(-\frac{1}{\sqrt{2\sigma^2}}(x-\mu)\right) \end{aligned} \] と表せます.
まとめ #
本ページでは,正規分布の累積分布関数と相補誤差関数の関係式を求めました.結果は,以下のとおりです.
Proposition 1. \(X\) を平均 \(\mu\), 分散 \(\sigma^2\) の正規分布に従う確率変数とする.\(F_X\) を \(X\) の累積分布関数,\(\mathrm{erfc}(x)=(2/\sqrt{\pi})\int_x^{\infty}\exp(-t^2)dt\) とする.このとき,以下の式が成り立つ.
\[ F_X(x)=\frac{1}{2}\mathrm{erfc}\left(-\frac{1}{\sqrt{2\sigma^2}}(x-\mu)\right). \]