2015/07/03

ボックス=ミュラー法(正規乱数の生成)の証明


ボックス=ミュラー法
$U_1,U_2$ が独立に $[0,1]$ 上の一様分布に従うとき,
$X_1=\sqrt{-2\log U_1}\cos 2\pi U_2$
$X_2=\sqrt{-2\log U_1}\sin 2\pi U_2$
は独立に標準正規分布に従う。

ボックス=ミュラー法の動機

$[0,1]$ 上の一様分布に従う乱数は簡単に生成できるので,これを使って正規分布に従う乱数を生成したいという状況を考えます。

累積分布関数の逆関数が明示的に書ける場合,その分布に従う乱数は逆関数法で生成できました→逆関数法を用いた乱数生成の証明と例。しかし,正規分布の累積分布関数は解析的に計算出来ないので別の方法が必要なのです。

そこで,極座標変換を考えることで標準正規分布に独立に従う乱数を二つ同時に作り出してしまおうというのがボックス=ミュラー法の考え方です。

前半(核心部分),その証明

標準正規分布をいきなり作るのは難しそうなので,極座標変換を使うことで指数分布と $[0,2\pi]$ 上の一様分布に目標をすりかえます。

定理:$R$ が平均 $2$ の指数分布に従い,$\Theta$ が $[0,2\pi]$ 上の一様分布に($R$ とは独立に)従うとき $X_1=\sqrt{R}\cos\Theta,X_2=\sqrt{R}\sin\Theta$ は独立に標準正規分布に従う。

証明

$f$ を $X_1$ と $X_2$ の同時確率密度関数,$g$ を $R$ と $\Theta$ の同時確率密度関数とする。

$X_1,X_2$ が独立に標準正規分布に従う
$\iff f(x_1,x_2)=\dfrac{1}{2\pi}e^{-\frac{x_1^2+x_2^2}{2}}$
$\iff$ $g(r,\theta)=\dfrac{1}{2\pi}\cdot\dfrac{1}{2}e^{-\frac{r}{2}}$
$\iff R$ が平均 $2$ の指数分布,$\Theta$ が $[0,2\pi]$ の一様分布に独立に従う。

ただし赤色の両矢印は変数変換のヤコビアンが $\dfrac{1}{2}$ である(→注)ことを用いた。

注:$\begin{vmatrix}\dfrac{\partial X}{\partial R}&\dfrac{\partial X}{\partial \Theta}\\\dfrac{\partial Y}{\partial R}&\dfrac{\partial Y}{\partial \Theta}\end{vmatrix}=\begin{vmatrix}\dfrac{\cos\theta}{2\sqrt{R}}&-\sqrt{R}\sin\theta\\\dfrac{\sin\theta}{2\sqrt{R}}&\sqrt{R}\cos\theta\end{vmatrix}=\dfrac{1}{2}$

後半(仕上げ)

先ほどの定理より,平均 $2$ の指数分布に従う乱数 $R$ と $[0,2\pi]$ 上の一様分布に従う乱数 $\Theta$ が生成できれば,標準正規分布に従う乱数が生成できます。

・平均 $2$ の指数分布に従う乱数の生成法
$[0,1]$ 上の一様分布に従う乱数 $U_1$ を使って $R=-2\log U_1$ とすればOKです(逆関数法)。

・ $[0,2\pi]$ 上の一様分布に従う乱数の生成法
$[0,1]$ 上の一様分布に従う乱数 $U_2$ を使って $\Theta=2\pi U_2$ とすればOKです(引き伸ばすだけ)。

まとめ

まとめると,
標準一様分布に従う乱数二つ($U_1,U_2$)
→指数分布と $[0,2\pi]$ の一様分布に従う乱数一つずつ($R,\Theta$)
→標準正規分布に従う乱数二つ($X_1,X_2$)
という流れです!

二箇所の変換式をまとめると
$X_1=\sqrt{-2\log U_1}\cos 2\pi U_2$
$X_2=\sqrt{-2\log U_1}\sin 2\pi U_2$

となります。

ミュラー,ミューラー,マーラー,どれが正しいんでしょうかね。

Tag: 数学的モデリングまとめ