マルコフ連鎖モンテカルロ法(1)Metropolis-Hastingsアルゴリズム
はじめに
ちょっと趣向を変えて、ベイズ統計モデルでの推定に広く用いられているマルコフ連鎖モンテカルロ法(MCMC)について書いていこうと思う。統計解析をする時は、例えばSASという統計ソフトで言えばproc mixedなどのプロシージャ(組み込みのパッケージのようなもの)で一発で答えが出るようなシンプルで解釈のしやすい方法で済ませたいと思うのが人情なのだけれど、そうはいかず、いわばオーダーメイドの方法で問題を解決しないといけないこともある。さて、自分でベイズモデルを組むとなると、事後確率分布を簡単な形で書き下すなんてことはまずできないであろう。そのような場合にはMCMCがとても役に立つ。MCMCの計算も今の時代基本的に統計ソフトに組み込まれていると思うが、原理をきちんと知っておくことが大事だと思う。(なお、先ほど書いたSASにも「proc MCMC」という機能があったりする。僕は使ったことないけれど・・・)
まずは、代表的なアルゴリズムの1つであるMetropolis-Hastingsアルゴリズムを見ていきたい。
Metropolis-Hastings(MH)アルゴリズム
いま、サンプリングを行いたい確率分布があるのだが、この分布の具体的な形状が不明であるため直接サンプリングするのが困難だとする。ベイズモデルでデータを得た後の事後確率分布が典型的な例である。このような時に、サンプリングが簡単に行えるような代理の確率分布からサンプリングを行うこととし、両方の分布の違いを調整しながら本来得たい分布からのサンプルを得るというのがMHアルゴリズムの発想である。なお本来関心のある分布を目標分布、代理に用いる分布を提案分布と呼ぶ。
このアルゴリズムは、マルコフ連鎖が不変分布に収束する(つまりどの状態から出発してもある一つの確率分布に収束する)ための条件の一つである「詳細釣り合い条件」を満たすようにして構成されている。したがって、代理の提案分布を用いたとしても、きちんと目標分布をシミュレーションすることができるわけである。詳細釣り合い条件とは、全てのとりうる値に対して
が満たされることをいう。ただしは目標分布、はマルコフ連鎖を構成する確率分布であり、はからへ推移する確率を表す。は現在の時点における状態とする。詳細釣り合い条件とは、値からへの推移が可能であれば、逆にからへの推移も同じ確率で可能なことを意味している。
さて、提案分布をとすると、提案分布は必ずしも目標分布に収束するようなマルコフ連鎖ではないので、詳細釣り合い条件を満たしているとは一般には言えない。そのような状況は
と表せる。この状況では、はに推移することが多いが、逆にからに推移することは少ない。
詳細釣り合い条件を満たすようにするためには、提案分布を調整する必要がある。そのために推移を調整する確率を用いて、以下のように定義したが詳細釣り合い条件を満たすようにする:
つまり、
とする。ただし最後の等号は、からへの推移が少ないことから確率を最大値のに基準化したことによる。よって、からへの推移確率を調整するは
と設定すればよい。前述のように提案分布におけるからへの推移確率にを掛けることで詳細釣り合い条件を満たすようにしているので、サンプリングの方式としてはから得たサンプルを、さらに確率でのみ採用すればよいことになる。つまり、提案分布からの候補をまずサンプリングし、以下の確率でその候補を採用する:
これを十分な回数繰り返せば、目標分布からのサンプルが得られることになる。アルゴリズムを整理すると、以下の手順となる。
初期値を設定する。
を提案分布からサンプリングする。
採択確率を計算する。
]上の一様乱数を発生させる。
ならばを採択しとする。そうでなければ採択せずとする。
手順2に戻り、を提案分布からサンプリングする。以降手順2〜5を所定の反復回数繰り返す。
おわりに
MCMCの代表的なアルゴリズムの一つであるMetropolis-Hastingsアルゴリズムの概要を述べた。実装するには提案分布を具体的に決めなければならないが、それはまた具体例も交えて回を改めて書いてみたいと思う。
参考文献
豊田秀樹 他(2008), 「マルコフ連鎖モンテカルロ法」, 朝倉書店.
G.Petris 他(2013), 「Rによるベイジアン動的線型モデル」, 朝倉書店.