jiku log

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

シリーズ:ウィシャート分布 ~⑦逆ウィシャート分布~

はじめに

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


本記事では,逆ウィシャート分布の定義と導出手順を整理した。

逆ウィシャート分布の導出

逆ウィシャート分布の定義

 d次元正規分布 \mathcal{N}(\mathbfit{0}, \mathbfit{\Sigma})にしたがう n個の確率変数 \mathbfit{X}_1, ..., \mathbfit{X}_nの散布行列


 \begin{align}
\mathbfit{S} = \sum_{i=1}^n \mathbfit{X}_i \mathbfit{X}_i^T \\ \\
\end{align}
(ただし n \geq d)がしたがう確率分布を,自由度 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}
であらわされる。ただし \Gamma_d(n/2) は d次元のガンマ関数で,

 \begin{align}
\Gamma_d(n/2) = \pi^{d(d-1)/4} \prod_{i=1}^d \Gamma \left( \frac{n-i+1}{2} \right) \\ \\
\end{align}
で表される。


散布行列 \mathbfit{S}がウィシャート分布 W(\mathbfit{\Sigma}, d, n)にしたがうとき, \mathbfit{W} = \mathbfit{S}^{-1}がしたがう確率分布を逆ウィシャート分布 \text{inverse-Wishart}(\mathbfit{\Sigma}, d, n)と呼ぶ。


逆ウィシャート分布は,ベイズ統計学において,尤度が多変量正規分布のモデルにおける,分散共分散行列の事前分布として用いられる。

逆ウィシャート分布の導出

ヤコビアンの導出

本記事でも,ハーヴィル 著「統計のための行列代数〈下〉」の16章の公式をもとに説明する。


 \mathbfit{W}と \mathbfit{S}の間には, \mathbfit{W} = \mathbfit{S}^{-1}という逆行列の関係がある。

そのため,逆行列に関する以下の公式を用いる。

  • (6.20)式


 \begin{align}
\left \lvert
\frac{ \partial \mathrm{vech}( \mathbfit{X}^{-1} ) }{ \partial \mathrm{vech}( \mathbfit{X})^T } 
\right \rvert

= (-1)^{p(p+1)/2}  \lvert \mathbfit{X} \rvert^{-(p+1)} 
\\ \\
\end{align}


これを用いると, \mathbfit{W}と \mathbfit{S}との変数変換を行なうヤコビアン J_{WS}は,


 \begin{align}
J_{WS}
= 
\left \lvert
\frac{ \partial \mathrm{vech}( \mathbfit{W} ) }{ \partial \mathrm{vech}( \mathbfit{S})^T } 
\right \rvert

=
\left \lvert
\frac{ \partial \mathrm{vech}( \mathbfit{S}^{-1} ) }{ \partial \mathrm{vech}( \mathbfit{S})^T } 
\right \rvert

= (-1)^{d(d+1)/2}  \lvert \mathbfit{S} \rvert^{-(d+1)} 
\\ \\
\end{align}
となる。

確率密度関数の導出

これまでの結果をもとに,ウィシャート分布の確率密度関数 f_S(\mathbfit{S})から逆ウィシャート分布の確率密度関数 f_W(\mathbfit{W})を求めてみよう。


 \begin{align}
\mathrm{tr}(\mathbfit{\Sigma}^{-1} \mathbfit{S}) &= \mathrm{tr}(\mathbfit{\Sigma}^{-1} \mathbfit{W}^{-1}) \\ \\
\lvert \mathbfit{S} \rvert &= \lvert \mathbfit{W} \rvert^{-1} \\ \\
 f_W(\mathbfit{W}) &= \frac{1}{ \lvert J_{WS} \rvert } f_S(\mathbfit{S}) \\ \\
\end{align}
であるので,逆ウィシャート分布の確率密度関数は,

 \begin{align}
f_W(\mathbfit{W})

&= 
\frac{ \lvert \mathbfit{W} \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{W}^{-1}) \right) 
\times \lvert \mathbfit{W} \rvert^{-(d+1)}
\\ \\

\therefore
f_W(\mathbfit{W})
&= 
\frac{ \lvert \mathbfit{W} \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{W}^{-1}) \right) 
\\ \\
\end{align}
となる。

感想とまとめ

本記事では,逆ウィシャート分布の定義と導出手順を整理した。


逆ウィシャート分布の形は,ウィシャート分布と同じくらい複雑な形をしているが,逆行列に関するヤコビアンさえ求まれば,あとは代入すれば確率密度関数を導出することができた。


逆ウィシャート分布にかぎらず,行列を引数にする確率密度関数は,途中で出てくる微分計算が大変なので,vec作用素の公式をすぐに探せるようにしておくべきだと感じた。


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

参考文献