jiku log

データサイエンスの核心を掴む : 学びと発見の記録

シリーズ:ウィシャート分布 ~⑨ウィシャート分布のモーメント母関数~

はじめに

ウィシャート分布は,ベイズ統計学や機械学習でも登場する確率分布である。
定義は教科書に書かれているものの,その複雑な確率密度関数がなぜ得られるのか,ということについて説明している入門書が少ないため,自分なりに調べてみた。


本記事では,ウィシャート分布のモーメント母関数について説明する。

ウィシャート分布の確率密度関数

自由度 nのウィシャート分布(Wishart distribution) W(\mathbfit{\Sigma}, d, n)の確率密度関数は,


 \begin{align}
f(\mathbfit{S})
= \frac{ \lvert \mathbfit{S} \rvert^{(n-d-1)/2} }{ 2^{nd/2} \lvert \mathbfit{\Sigma} \rvert ^{n/2}    \Gamma_d(n/2) } 
\exp \left( -\frac{1}{2} \mathrm{tr} (\mathbfit{\Sigma}^{-1} \mathbfit{S}) \right) \\ \\
\end{align}
で表される。

ウィシャート分布の積分

ウィシャート分布の確率密度関数は,積分すると1になるので,


 \begin{align}
&\int_{\mathbfit{S}} f(\mathbfit{S}) d\mathbfit{S} = 1 \\ \\

\therefore & \int_{\mathbfit{S}} \lvert \mathbfit{S} \rvert^{(n-d-1)/2} \exp \left( -\frac{1}{2} \mathrm{tr} (\mathbfit{\Sigma}^{-1} \mathbfit{S}) \right) d\mathbfit{S} 
= 2^{nd/2} \lvert \mathbfit{\Sigma} \rvert ^{n/2}    \Gamma_d(n/2)  
\equiv C(\mathbfit{\Sigma}) \\ \\
\end{align}
この右辺は \mathbfit{\Sigma}の関数とみなせるので, C(\mathbfit{\Sigma})と表す。

モーメント母関数

スカラー・ベクトルの確率変数に関するモーメント母関数

スカラー量の確率変数 X \in \mathbb{R}がしたがう確率密度関数を f_X(x)とすると,モーメント母関数は


 \begin{align}
M_X(t) = E[ \exp(tX) ] \\ \\
\end{align}
となる。


ベクトル量の確率変数 \mathbfit{X} \in \mathbb{R}^{d}が確率密度関数を f_{\mathbfit{X}}(\mathbfit{x})とすると,モーメント母関数は


 \begin{align}
M_{\mathbfit{X}}(\mathbfit{t}) = E[ \exp(\mathbfit{t}^T \mathbfit{X}) ] \\ \\
\end{align}
となる。

ただし \mathbfit{t} \in \mathbb{R}^dであるので,


 \begin{align}
\mathbfit{t}^T \mathbfit{X} = \sum_{i=1}^d t_i X_i \\ \\
\end{align}
である。

行列の確率変数に関するモーメント母関数

ウィシャート分布は,散布行列 \mathbfit{S} \in \mathbb{R}^{d \times d}の確率密度関数である。ベクトル量の確率変数に関するモーメント母関数と同様に考えると,ウィシャート分布のモーメント母関数は,


 \begin{align}
M_{\mathbfit{S}}(\mathbfit{t}) = E\left[ \exp\left( \sum_{i=1}^d \sum_{j=1}^d t_{ij} s_{ij} \right) \right] \\ \\
\end{align}
となる。


 t_{ij}を要素に持つ行列を \mathbfit{T} \in \mathbb{R}^{d \times d}とする。行列 \mathbfit{T} \mathbfit{S}の (i, j)成分は


 \begin{align}
( \mathbfit{T} \mathbfit{S} )_{ij} = \sum_{k=1}^d t_{ik} s_{kj} \\ \\
\end{align}
なので,行列 \mathbfit{T} \mathbfit{S}の (i, i)成分は

 \begin{align}
( \mathbfit{T} \mathbfit{S} )_{ii} = \sum_{k=1}^d t_{ik} s_{ki} \\ \\
\end{align}
となる。


ここで, \mathbfit{S}は対称行列であり, s_{ik} = s_{ki}であるため,


 \begin{align}
\mathrm{tr}( \mathbfit{T} \mathbfit{S} ) = \sum_{i=1}^d \sum_{k=1}^d t_{ik} s_{ki} = \sum_{i=1}^d \sum_{j=1}^d t_{ij} s_{ik} \\ \\
\end{align}
は, \mathbfit{T}と \mathbfit{S}の要素積の総和となる。


したがって,行列の確率変数に関するモーメント母関数は,


 \begin{align}
M_{\mathbfit{S}}(\mathbfit{T}) = E[ \exp\left( \mathrm{tr}( \mathbfit{T} \mathbfit{S} ) \right) ] \\ \\
\end{align}
で表される。

ウィシャート分布のモーメント母関数

ウィシャート分布のモーメント母関数は,


 \begin{align}
M_{\mathbfit{S}}(\mathbfit{T}) 

&= E[ \exp\left( \mathrm{tr}( \mathbfit{T} \mathbfit{S} ) \right) ] \\ \\

&= \frac{1}{ C(\mathbfit{\Sigma}) }

\int_{\mathbfit{S}} \lvert \mathbfit{S} \rvert^{(n-d-1)/2} \exp \left( \mathrm{tr}( \mathbfit{T} \mathbfit{S} ) -\frac{1}{2} \mathrm{tr} (\mathbfit{\Sigma}^{-1} \mathbfit{S}) \right) d\mathbfit{S} \\ \\

&= \frac{1}{ C(\mathbfit{\Sigma}) }

\int_{\mathbfit{S}} \lvert \mathbfit{S} \rvert^{(n-d-1)/2} \exp \left( -\frac{1}{2} \mathrm{tr} ( (\mathbfit{\Sigma}^{-1} - 2\mathbfit{T}) \mathbfit{S}) \right) d\mathbfit{S} \\ \\

\end{align}
となる。


ここで, \mathbfit{\Sigma}^{-1} - 2\mathbfit{T} \equiv \mathbfit{\Lambda}^{-1}とおくと,


 \begin{align}
M_{\mathbfit{S}}(\mathbfit{T}) 
&= \frac{ C(\mathbfit{\Lambda}) }{ C(\mathbfit{\Sigma}) }

= \frac{ 2^{nd/2} \lvert \mathbfit{\Lambda} \rvert ^{n/2}    \Gamma_d(n/2)  } { 2^{nd/2} \lvert \mathbfit{\Sigma} \rvert ^{n/2}    \Gamma_d(n/2)  } \\ \\

&= \frac{1}{ \lvert \mathbfit{\Lambda}^{-1} \mathbfit{\Sigma} \rvert ^{n/2} } \\ \\

&= \frac{1}{ \lvert (\mathbfit{\Sigma}^{-1} - 2\mathbfit{T}) \mathbfit{\Sigma} \rvert ^{n/2} } \\ \\

&= \frac{1}{ \lvert \mathbfit{I} - 2\mathbfit{T} \mathbfit{\Sigma}  \rvert ^{n/2} } \\ \\

\therefore M_{\mathbfit{S}}(\mathbfit{T}) &= \lvert \mathbfit{I} - 2\mathbfit{T} \mathbfit{\Sigma}  \rvert ^{-n/2}

\end{align}
が得られた。

感想とまとめ

本記事では,ウィシャート分布のモーメント母関数について説明した。


参考文献[1]では,ウィシャート分布のモーメント母関数として,いきなり M_{\mathbfit{S}}(\mathbfit{T}) = E[ \exp\left( \mathrm{tr}( \mathbfit{T} \mathbfit{S} ) \right) ] という式が登場しているが,ベクトル量の確率変数に関するモーメント母関数とのアナロジーを考えることで,理解することができる。


期待値計算をする際には,ガンマ分布のときと同様に,「確率密度関数を積分すると1になる」という性質を用いると計算の手間をかなり省くことができた。


本記事を最後まで読んでくださり,どうもありがとうございました。

参考文献