ボックスミュラー変換について解説します。これは、正規分布からデータをサンプリングする為の原理です。具体的には、一様分布から正規分布を作り出す事で正規分布に従う確率変数を作り出します。
正規分布から指数分布が出てくるので、一様分布から指数分布を作れば良いというのが教科書的な流れです。
確率密度関数の変数変換
確率変数\(X_1 , \cdots , X_n \) と、確率密度関数\(f_{X_1 , \cdots , X_n } (x_1 , \cdots , x_n ) \)がある時、\(T_i =g_i (X_1, \cdots , X_n) \)と確率変数を変数変換したとします。1 この時\(T_1 , \cdots , T_n \)が従う確率分布は、
$$\begin{eqnarray}
f_{T_1 , \cdots , T_n } (t_1 , \cdots , t_n ) = \det (J) f_{X_1 , \cdots , X_n } (x_1 , \cdots , x_n )
\end{eqnarray}$$
と書けます。ただし、\( \det \)は行列式を取る操作を表していて、\(J \)は変数変換\( X\mapsto T \)のヤコビ行列です。ヤコビ行列の成分は以下のように定義されます。2
$$\begin{eqnarray}
J_{ij} = \frac{\partial g_i } {\partial x_j }
\end{eqnarray}$$
行列式を取る操作は、行列の積と可換なので、
$$\begin{eqnarray}
\det(J^{-1} )= (\det(J))^{-1}
\end{eqnarray}$$
です。つまり、ヤコビアンは、計算しやすい方向の変換についてだけ計算しておけば良いという事です。
正規分布から指数分布
標準正規分布に従う独立な確率変数\(X,Y \sim \mathcal{N} (0,1) \)があるとします。これらを極座標で見てみます。3
$$\begin{eqnarray}
X&=& R\cos \Theta \\
Y &=& R \sin \Theta
\end{eqnarray}$$
ただし、\(R, \Theta \)の実現値は\( r, \theta \)で表し、\(0 < r < \infty , 0<\theta <2\pi \)です。
\(X,Y \)は等方的に散らばっているので,\(\theta \)は一様分布になると予測できます。
ヤコビアンは、\(r\)となります。これを踏まえると、
$$\begin{eqnarray}
f_{R, \Theta } (r, \theta ) &=& r f(r\cos \theta ) f(r \sin \theta ) \\
&=& \frac{1}{2\pi } r\exp(-\frac{r^2}{2} )
\end{eqnarray}$$
となります。\( r\exp(-\frac{r^2}{2} ) \)について、
$$\begin{eqnarray}
\int_{0}^{\infty} r\exp(-\frac{r^2}{2} ) dr =1
\end{eqnarray}$$
なので、\( f_R (r) = r\exp(-\frac{r^2}{2} ) \)は確率密度関数になっています。ここで、\(\hat{R} =R^2 \)と置くと、
$$\begin{eqnarray}
f_{\hat{R} } =\frac{1}{2} exp(-\frac{\hat{r} }{2} ) ={\rm Ex } (1/2 )
\end{eqnarray}$$
です。従って、独立な標準正規分布を極座標で見ると、確率変数は独立で、角度方向は一様分布、動径方向は指数分布に従います。
$$\begin{eqnarray}
f_{X,Y} \leftrightarrow f_{\hat{R} , \Theta } =f_{\hat{R} } f_{\Theta } ={\rm Uni} (0,2\pi ) {\rm Ex } (1/2)
\end{eqnarray}$$
一様分布から指数分布
一様分布に従う独立な確率変数\(U_1 , U_2 \sim {\rm Uni (0,1) } \)を考えます。これらから、\( {\rm Uni} (0,2\pi )\)と\( {\rm Ex } (1/2) \)を作る事を考えます。単純に、\(U_1 = \exp\left( \frac{ -r^2 } {2} \right) , U_2 = \frac{\theta}{2\pi} \)を目標に、以下のように変数変換します。
$$\begin{eqnarray}
r&=& \sqrt{-2\log U_1 } \\
\theta &=& 2\pi U_2
\end{eqnarray}$$
この変数変換のヤコビアンは\(\frac{r}{2\pi} \)です。
変数変換を行うと、一様分布の確率密度の値が一定で、ヤコビアンだけになるので
$$\begin{eqnarray}
f_{r , \theta } =\frac{r}{2\pi } \exp(-r^2 /2 )
\end{eqnarray}$$
となります。\( r\exp( -r^2 /2) \)は、変数変換すると\( {\rm Ex }(1/2) \) に従っていました。つまり、一様分布に従う独立な確率変数を極座標で見ると、角度方向は一様分布、動径方向は指数分布に従っています。式で書くと、
$$\begin{eqnarray}
f_{U_1 , U_2 } \leftrightarrow {\rm Uni} (0,2\pi ) {\rm Ex } (1/2)
\end{eqnarray}$$
という事です。
ボックスミュラー変換
以上の議論をまとめたものが、ボックスミュラー変換です。
[ボックスミュラー変換]
\(U_1 , U_2 \sim {\rm Uni} (0,1) \)として、
$$\begin{eqnarray}
R&=& \sqrt{-2\log U_1 } \\
\Theta &=& 2\pi U_2 \\
X&=& R\cos \Theta \\
Y &=& R \sin \Theta
\end{eqnarray}$$
とすると、\(X,Y\)は独立に標準正規分布\( \mathcal{N} (0,1) \)に従う
\(X \sim \mathcal{N}(0,1) \)なら、\(T= \sigma (X +\mu /\sigma ) \)と変数変換する事で、
$$\begin{eqnarray}
T \sim \mathcal{N} (\mu , \sigma ^2 )
\end{eqnarray}$$
と出来ます。一様分布があれば、任意のパラメーターを持った正規分布が作成できるという訳です。
正規分布に従うデータが欲しい時は、
- 一様分布に従うデータを生成する
- 上記の変数変換を施す
とすれば良いことが分かります。
まとめ
- 確率密度関数の変数変換の説明をした
- 正規分布から一様分布と指数分布が出てくることを説明した
- 一様分布から一様分布と指数分布が出てくることを説明した
- ボックスミュラー変換について説明した