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

ボックス=ミュラー法

U1,U2U_1,U_2 が独立に [0,1][0,1] 上の一様分布に従うとき,

X1=2logU1cos2πU2X_1=\sqrt{-2\log U_1}\cos 2\pi U_2

X2=2logU1sin2πU2X_2=\sqrt{-2\log U_1}\sin 2\pi U_2

は独立に標準正規分布に従う。

正規分布に従う乱数を生成する方法ボックス=ミュラー法についてわかりやすく説明します。

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

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

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

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

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

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

定理

RR が平均 22 の指数分布に従い,Θ\Theta[0,2π][0,2\pi] 上の一様分布に(RR とは独立に)従うとき X1=RcosΘ,X2=RsinΘX_1=\sqrt{R}\cos\Theta,X_2=\sqrt{R}\sin\Theta は独立に標準正規分布に従う。

証明

ffX1X_1X2X_2 の同時確率密度関数,ggRRΘ\Theta の同時確率密度関数とする。

X1,X2X_1,X_2 が独立に標準正規分布に従う

    f(x1,x2)=12πex12+x222\iff f(x_1,x_2)=\dfrac{1}{2\pi}e^{-\frac{x_1^2+x_2^2}{2}}

    \iff g(r,θ)=12π12er2g(r,\theta)=\dfrac{1}{2\pi}\cdot\dfrac{1}{2}e^{-\frac{r}{2}}

    R\iff R が平均 22 の指数分布,Θ\Theta[0,2π][0,2\pi] の一様分布に独立に従う。

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

注: XRXΘYRYΘ=cosθ2RRsinθsinθ2RRcosθ=12\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}

後半(仕上げ)

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

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

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

まとめ

まとめると,

標準一様分布に従う乱数二つ(U1,U2U_1,U_2
→指数分布と [0,2π][0,2\pi] の一様分布に従う乱数一つずつ(R,ΘR,\Theta
→標準正規分布に従う乱数二つ(X1,X2X_1,X_2

という流れです!

二箇所の変換式をまとめると

X1=2logU1cos2πU2X_1=\sqrt{-2\log U_1}\cos 2\pi U_2

X2=2logU1sin2πU2X_2=\sqrt{-2\log U_1}\sin 2\pi U_2

となります。

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

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