正規分布の累積分布関数の近似式

昨日、Common Lisp正規分布の累積分布関数を作成しました。テイラー展開された式でいちいち計算するものですが、もっと単純で高精度な近似式があれば、そのほうが計算速度も向上します。ちょっと探してみたところ、以下のようなものがよく使われるとのことです。

まずは標準正規分布


 \displaystyle
\phi\left(z\right) = \frac{1}{\sqrt{2\pi}}e^{-\frac{1}{2}z^2}

その累積分布関数の近似式。


 \displaystyle
\int_{-\infty}^{f(\theta)}\phi\left(z\right) \mathrm{d}z \simeq \frac{1}{1+e^{-1.7f\left(\theta\right)}}

ロジスティック回帰で近似したのでしょうか。この1.7は経験的に得られた定数で、θの全域にわたって誤差が0.01以下になるということです。近似式というものは「値が近ければ良い」という世界だと思うので、あまり深く考えなくて良いでしょう。

使用用途によっては精度が若干心配なものの、ループも条件分岐もないので計算は比較にならない速さだと予想できます。