MCMC法

マルコフ連鎖モンテカルロ法(Markov chain Monte Carlo methods)の略称。

ベイズ統計に固有の手法というわけではなく、ある種の積分計算を数値的に行うための手法である。

ベイズ推定

事後分布 \(\pi(\theta|D)\) から母数 \(\theta\) の値を推定する方法として、この分布の平均値を推定値とすることができる。その平均値は次式で得られるのであった。

\[\bar{\theta} = \int \theta\pi(\theta|D)d\theta\]

この積分計算を数値的に計算する方法としてMCMC法が利用できる。

モンテカルロ積分

確率密度関数を \(\pi(x)\) とすると、 \(f(x)\) の期待値は次式で定義される。

\[E[f] = \int f(x)\pi(x)dx\]

ここで \(f(x) = x\) とすると平均値、 \(f(x) = (x - \mu)^2\) とすると分散が得られる。

\[\begin{split}\mu &= \int x\pi(x)dx \\ \sigma^2 &= \int (x-\mu)^2\pi(x)dx\end{split}\]

この積分は次のようにして近似値を得ることができる。

まず、確率分布 \(\pi(x)\) に従ってサンプリングした点列 \(x_1,\cdots,x_n\) を得る。すると次式で積分の近似値が得られる。

\[E[f] \simeq \frac{1}{n}\sum_{i=1}^n f(x_i)\]

問題は確率分布に従ったサンプリング点 \(x_1,\cdots,x_n\) を得る方法である。MCMC法ではこのサンプリングにマルコフ連鎖を用いる。

メトロポリス法

マルコフ連鎖によってサンプリングする手法の一つ。 現在のサンプリング点 \(x_i\) から次のサンプリング点 \(x_{i+1}\) を次の手順で得る。

まずランダムに歩幅(ベクトル) \(\epsilon\) を決め、一歩先の地点を \(x' = x_i + \epsilon\) とする。そして次の比を得る。

\[r = \frac{\pi(x')}{\pi(x_i)}\]

\(r >= 1\) のときは、一歩先の地点のほうが確率分布の山を登っていることを意味している。このときは問答無用で一歩先へ進む: \(x_{i+1} = x'\)

一方 \(r < 1\) のときは一歩先の地点のほうが確率分布の山を下っていることを意味している。この場合には確率 \(r\) で一歩先へ進み(\(x_{i+1} = x'\) )、確率 \(1 - r\) でその場に留まる( \(x_{i+1} = x_i\) )。

直観的には、一歩先が今の地点よりも高いときは問答無用に登り、一歩先が今の地点より低いときは高低の比に応じた確率で下るアルゴリズムなので、高い地点ほど多くの足跡を残すようになるはずである。

(分からないことメモ) アルゴリズム(計算方法)は分かったが、この方法によるサンプリングが確率分布 \(\pi(x)\) にきちんと収束する数学的な根拠が分からない。