導入
Answers of exercises on Hoff, A first course in Bayesian statistical methods (標準ベイズ統計学の演習問題の解答例) を更新(10-4を追加)したので、このブログでもその内容をほんの少しだけ触れようと思います。
まず、この問題と教科書本文の関係について簡単に説明します。 以前 Hoff/標準ベイズのM-Hアルゴリズムがworkすることの証明でつまずいた話 という記事を書きましたが、Hoff (2009) では10章でM-Hアルゴリズムがうまくいくことの-証明を以下のステップで行っています。
M-Hアルゴリズムは、 irreducible (非可約), aperiodic (非周期的), positive recurrent (正再帰的) なマルコフ連鎖を生成する。
Ergodic Theoremより、\(s \to \infty\)で
- \(\mathrm{Pr}(x^{(s)} \in A) \to \pi(A)\) for any set \(A\);
- \(\frac{1}{S} \sum g(x^{(s)}) \to \int g(x) \pi(x) dx\).
を満たす\(\pi\)が一意に存在する。
このような\(\pi\)は定常分布と呼ばれ、以下の性質を持つ
If \(x^{(s)} \sim \pi\),
and \(x^{(s+1)} \) is generated from the Markov chain starting at \(x^{(s)}\),
then \(\mathrm{Pr}(x^{(s+1)} \in A) = \pi(A)\). (一度定常分布からサンプリングされると、 それ以降のサンプルも定常分布からサンプリングされる。)\(\pi(x) = p_0(x)\)が成り立つ。
1-4より、M-Hアルゴリズムによって生成されたマルコフ連鎖は、 目標分布\(p_0\)を近似できる。
4つめのステップの証明をHoff (2009) は1次元の離散的な場合のM-Hアルゴリズムを用いて行っていますが、 10-4の演習問題では、多次元・連続なパラメーターのギブスサンプリングの場合について証明を求められています。
具体的には、パラメーターベクトル\(\bm{\phi}\)に対し、 \(\bm{\phi}^{(s)}\)が目標分布\(p(\bm{\phi})\)からサンプリングされ、 \(\bm{\phi}^{(s+1)}\)がギブスサンプリングによって生成されるとき、 \(\text{Pr}(\bm{\phi}^{(s+1)} \in A) = \int_A p(\bm{\phi}) d \bm{\phi}\)が成り立つことを示す問題です。
自分の解答は以下の通りです。
自分の解答
\(\bm{\phi}\)は\(d\)次元の確率ベクトルとする。
\(\bm{\phi}_a\), \(\bm{\phi}_b\)をそれぞれ\(\mathbb{R}^d\)の任意の確率ベクトルとし、 \(\bm{\phi}_a = (a_1, \dots, a_d)\), \(\bm{\phi}_b = (b_1, \dots, b_d)\)とおくと、
\begin{equation} \label{eq:10-4-dbc} \begin{aligned} & p(\bm{\phi}_a) \mathrm{Pr}( \bm{\phi}^{(t)} = \bm{\phi}_a, \bm{\phi}^{(t+1)} = \bm{\phi}_b ) \\ = & p(a_1, \dots, a_d) p(b_1 | a_2, \dots, a_d) p(b_2 | b_1, a_3, \dots, a_d) \\ & \times p(b_3 | b_1, b_2, a_4, \dots, a_d) \dots p(b_d | b_1, \dots, b_{d-1}) \\ = & p(a_1|a_2, \dots, a_d) p(a_2, \dots, a_d) p(b_1 | a_2, \dots, a_d) p(b_2 | b_1, a_3, \dots, a_d) \\ & \times p(b_3 | b_1, b_2, a_4, \dots, a_d) \dots p(b_d | b_1, \dots, b_{d-1}) \\ = & p(a_1|a_2, \dots, a_d) p(b_1, a_2, \dots, a_d) p(b_2 | b_1, a_3, \dots, a_d) \\ & \times p(b_3 | b_1, b_2, a_4, \dots, a_d) \dots p(b_d | b_1, \dots, b_{d-1}) \\ = & p(a_1|a_2, \dots, a_d) p(a_2 | b_1, a_3, \dots, a_d) p(b_1, a_3, \dots, a_d) p(b_2 | b_1, a_3, \dots, a_d) \\ = & p(b_3 | b_1, b_2, a_4, \dots, a_d) \dots p(b_d | b_1, \dots, b_{d-1}) \\ = & p(a_1|a_2, \dots, a_d) p(a_2 | b_1, a_3, \dots, a_d) p(b_1, b_2, a_3, \dots, a_d) \\ = & p(b_3 | b_1, b_2, a_4, \dots, a_d) \dots p(b_d | b_1, \dots, b_{d-1}) \\ = & \ldots \\ = &p(a_1 | a_2, \dots, a_d) p(a_2 | b_1, a_3, \dots, a_d) \dots p(a_d | a_1, \dots, a_{d-1}) p(b_1, \dots, b_d) \\ = & p(\bm{\phi}_b) \mathrm{Pr}( \bm{\phi}^{(t)} = \bm{\phi}_b, \bm{\phi}^{(t+1)} = \bm{\phi}_a ) \\ \end{aligned} \end{equation}
が成り立つ。
よって、
\begin{equation*} \begin{aligned} \text{Pr}(\bm{\phi}^{(s+1)} \in A) &= \int_A \left[\int_{\mathbb{R}^d} p(\bm{\phi}^{(s)}) \mathrm{Pr}(\bm{\phi}^{(t)} = \bm{\phi}^{(s)}, \bm{\phi}^{(t+1)} = \bm{\phi}^{(s+1)}) d\bm{\phi}^{(s)}\right] d\bm{\phi}^{(s+1)} & (\text{by assumption}) \\ &= \int_A \left[\int_{\mathbb{R}^d} p(\bm{\phi}^{(s+1)}) \mathrm{Pr}(\bm{\phi}^{(t)} = \bm{\phi}^{(s+1)}, \bm{\phi}^{(t+1)} = \bm{\phi}^{(s)}) d\bm{\phi}^{(s)}\right] d\bm{\phi}^{(s+1)} &(\because \eqref{eq:10-4-dbc}) \\ &= \int_A p(\bm{\phi}^{(s+1)}) \left[\int_{\mathbb{R}^d} \mathrm{Pr}(\bm{\phi}^{(t)} = \bm{\phi}^{(s+1)}, \bm{\phi}^{(t+1)} = \bm{\phi}^{(s)}) d\bm{\phi}^{(s)}\right] d\bm{\phi}^{(s+1)} \\ &= \int_A p(\bm{\phi}^{(s+1)}) d\bm{\phi}^{(s+1)} \\ &= \int_A p(\bm{\phi}) d\bm{\phi} \end{aligned} \end{equation*}
問いた感想
前述の通り教科書にはM-Hアルゴリズムの場合の証明が載っており、 ギブスサンプリングはM-Hアルゴリズムの一種なので、 より一般的な証明が教科書にある以上、この問題は簡単だろうと舐めてかかりました。
ところが、この問題には以外と沼ってしまいました。(俺だけ?) その理由の一つに、Hoff (2009) は"カーネル"や"詳細釣り合い条件"という概念を使わずに証明を行っているため、他の教科書を参考にした時に、対応させるのが難しかったということが挙げられます。
Hoffの主義を尊重し、自分も"カーネル"や"詳細釣り合い条件"といった概念をexplicitに使わずに証明を行いました。 もし、間違いや、もっとスマートな解答があれば、ご指摘いただけると幸いです。 今回も最後まで読んでいただき、ありがとうございました。