11.2 標準正規分布の確率の計算法

標準正規分布 $ N(0,1)$ に従う確率変数 $ Z$ を考える。その確率密度関数 は $ m=0$, $ \sigma^2=1$ として

$\displaystyle f_{\mbox{\scriptsize s}}(x)=\frac{1}{\sqrt{2\pi}}e^{-x^2/2}
$

である。

残念ながら $ f_{\mbox{\scriptsize s}}$ の原始関数は求められないので、

$\displaystyle \int_a^b f_{\mbox{\scriptsize s}}(x)\Dx
$

の計算に公式 $ \dsp\int_a^b F'(x)\Dx=F(b)-F(a)$ は使えない。

そこで、従来は数表を用意するのが普通であった。 例えば教科書の p. 55 にある数表は

$\displaystyle \phi(u)=P(0\leqq Z\leqq u)
=\int_{0}^u f_{\mbox{\scriptsize s}}(x) \Dx
$

で定義される関数の数値を表にしたものである。これから

(6) $\displaystyle P(a\leqq Z\leqq b) =\int_a^b f_{\mbox{\scriptsize s}}(x) \Dx =\i...
...ptsize s}}(x) \Dx -\int_0^a f_{\mbox{\scriptsize s}}(x) \Dx =\phi(b)-\phi(a),$

また被積分関数が偶関数であるから $ \phi $ は奇関数である。

(7) $\displaystyle \phi(-x)=-\phi(x).$

数表があるとき、公式 (6), (7) を用いれば、 確率は簡単に計算できる。例えば

$\displaystyle P(0.1\leqq Z\leqq 0.3)
=\phi(0.3)-\phi(0.1)\kinji 0.1179-0.0398=0.0781,
$

$\displaystyle P(-0.2\leqq Z\leqq 0.4)
=\phi(0.4)-\phi(-0.2)
=\phi(0.4)+\phi(0.2)
\kinji 0.1554+0.0793=0.2347.
$

最近は電卓でも計算できるようになっているし、プログラミング言語のライ ブラリィ関数にも用意されている。
余談: erf()
プログラミング言語 C の数学関数ライブラリィには、 erf(), erfc() という関数が用意されていることが多い (Mathematica にもあるみたい)。

$\displaystyle {\rm erf}(x):=\frac{2}{\sqrt{\pi}}\int_0^x e^{-t^2}\Dt,\quad
{\rm erfc}(x):=1-{\rm erf}(x).
$

容易に

$\displaystyle \phi(x)=\frac{1}{2} {\rm erf}\;\left(x/\sqrt{2}\right),
\quad
{\rm erf}(x)=2\phi\left(\sqrt{2}x\right)
$

であることが分かる。 それゆえ、 $ \phi(u)$ を計算する関数が欲しければ次のようなプログラムを書けばよい。
#include <math.h>

double phi(double u)
{
  return 0.5 * erf(u / sqrt(2.0));
}

(老婆心: erfc() を用意するのは桁落ち対策でしょうね。)


\begin{jexample}\upshape
\begin{displaymath}
\phi(u)=P(0\leqq Z\leqq u)=P(m\leq...
...70\leqq X\leqq 175)=\phi(1)\kinji0.34. \quad\qed
\end{displaymath}\end{jexample}



桂田 祐史