「データ解析のための統計モデリング入門」8章 メトロポリス法 [階層ベイズ]
「データ解析のための統計モデリング入門」8章 MCMCとメトロポリス法について。
ふらふら試行錯誤からメトロポリス法へ
1. ある初期値からスタートする。(例:q = 0.30)
2. 0.01、あるいは、-0.01だけ変化させる。
3. 対数尤度が改善されれば、その値を採用し、そうでない場合は、元の値を採用する。
↑
ふらふら試行錯誤の場合
3. ある一定の確率 r で、値が悪くても新しい値を採用する
↑
ふらふら試行錯誤からメトロポリス法へ
r = L(q新)/L(q)
(例)
元 q = 0.30, -46.378
新 q_new = 0.290, -47.619
r = exp(-47.619 + 46.378) = 0.289
【r】というノードを作成しています。
min(1, exp(function_new_Sum - function_Sum))
同時に【rand】という乱数を発生させ、r の値と比較することで、
"ある一定の確率 r で、値が悪くても新しい値を採用する"
という状態を作ることができます。
シミュレーションの結果は、こちら。
データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)
- 作者: 久保 拓弥
- 出版社/メーカー: 岩波書店
- 発売日: 2012/05/19
- メディア: 単行本
ふらふら試行錯誤からメトロポリス法へ
1. ある初期値からスタートする。(例:q = 0.30)
2. 0.01、あるいは、-0.01だけ変化させる。
↑
ふらふら試行錯誤の場合
3. ある一定の確率 r で、値が悪くても新しい値を採用する
↑
ふらふら試行錯誤からメトロポリス法へ
r = L(q新)/L(q)
(例)
元 q = 0.30, -46.378
新 q_new = 0.290, -47.619
r = exp(-47.619 + 46.378) = 0.289
【r】というノードを作成しています。
min(1, exp(function_new_Sum - function_Sum))
同時に【rand】という乱数を発生させ、r の値と比較することで、
"ある一定の確率 r で、値が悪くても新しい値を採用する"
という状態を作ることができます。
シミュレーションの結果は、こちら。
コメント 0