日々の記録

メモ代わりにも使ってます

MCMC②

MCMC①の続き。

 

事後分布π*が多次元である場合に、一部のパラメータθiに関する周辺事後密度π(θi|x)を数値積分により求めたり、それに基づく推論を行うことは難しい。

 

そこで、事後分布を定常分布に持つようなマルコフ連鎖を構成することにより、マルコフ連鎖の確率標本を事後分布からの確率標本とする。

 

つまり

マルコフ連鎖の性質を利用したモンテカルロ法アルゴリズムにより、推測の対象である未知母数の事後分布が複雑な場合も、これに従う乱数を発生させることが可能になる」

というわけである。

 

定常分布を持つマルコフ連鎖を仮定しないと、つまりただのサンプリングだとどうなるかは、githubを見てほしい。

 

ここでマルコフ連鎖モンテカルロ法について紹介する。

マルコフ連鎖

時間にしたがって確率的に状態が変化する系列を確率過程という。
例えば、過去の状態の履歴により状態が推移する確率過程を考える。
過去の状態の履歴が与えられた下での条件付確率を用いて、tにおいて状態がiである人が次のt+1においてjとなる確率は
{\displaystyle P(x^{(t+1)}=j|x^{(1)}=i_1, ... , x^{(t)}=i)}
となる。
ここでさらに、未来の状態x(t+1)は現在の状態x(t)のみに依存し、x(t)が所与のもとでは、過去の状態の履歴とは独立になるものをマルコフ連鎖という。
つまり、上の式が、
{\displaystyle  P(x^{(t+1)}=j|x^{(1)}=i_1, ... , x^{(t)}=i) = P(x^{(t+1)}=j|x^{(t)}=i)}
となる。

モンテカルロ法
ベイズ推測における母数の推定値として、事後分布の期待値を計算する際などに、積分を求める必要がある。
いま、いま積分の対象である関数をh(x)とする。
もし、独立に同一の分布p(x)に従う乱数{\displaystyle x^{(1)}, ..., x(T) }を生成することができれば、積分
{\displaystyle \int h(x)p(x)dx \approx \frac{1}{T}\{h(x^{(1)}+ ... +h(x^{(T)})\}}
と近似できる。