回帰モデルのギブスサンプラーを導出します。教科書は「マルコフ連鎖モンテカルロ法」(豊田秀樹著)。こちら
http://jinya.seesaa.net/article/427453869.html の続きです。
回帰モデル
\begin{align}
y=X \beta + \varepsilon, \: \varepsilon \sim N(0,\tau^{-1}I_n)
\end{align}
但し、サンプル数は\(n\)、説明変数の数は\(K-1\)個(定数項を入れて\(K\)次元)とする。\(I_n\)は\(n\times n\)の単位行列。なお、教科書では\(n\)の所を\(I\)としていますが、単位行列の\(I\)と間違いやすいのでここでは\(n\)を使います。
このモデルに対して、事前分布を次のように採ります。
\begin{align}
[\beta | \tau,X,y] \sim N(b_0, \tau^{-1}B_0), \: [\tau,\beta,X,y] \sim Ga(n_0 / 2, n_0 S_0 /2)
\end{align}
この事前分布から事後分布を求めます。
【事前分布(同時)\(\pi(\beta,\tau)\)】
\begin{align}
&\pi(\beta,\tau ) \\
&\propto \tau^{K/2} \exp \left( -\frac{1}{2}(\beta-b_0)'(\tau^{-1}B_0)^{-1}(\beta-b_0) \right) \tau^{n_0/2-1}\exp \left( -\frac{n_0S_0}{2} \tau \right) \\
&=\tau^{(n_0+K)/2-1} \exp \left( -\frac{\tau}{2} \left( n_0S_0 + (\beta-b_0)'(\tau^{-1}B_0)^{-1}(\beta-b_0) \right) \right)
\end{align}
【尤度関数】
\begin{align}
\pi(y|\beta,\tau,X) \propto \tau^{n/2}\exp \left( -\frac{\tau}{2}(y-X\beta)'(y-X\beta) \right)
\end{align}
【事後分布】
事後分布は定数の差を除いて事前分布と尤度関数とのかけ算なので、
\begin{align}
\pi(&\beta,\tau | X,y) \propto \tau^{(n_0+n+K)/2-1} \\
& \times \exp \left( -\frac{\tau}{2} \left( \underline{ n_0S_0 + (\beta-b_0)'B_0^{-1}(\beta-b_0) + (y-X\beta)'(y-X\beta)}_{\fbox{1}} \right) \right)
\end{align}
\(\fbox{1}\)について、
\begin{align}
\fbox{1} = n_0S_0 + (\beta-b_0)'B_0^{-1}(\beta-b_0) + \underline{(y-X\beta)'(y-X\beta)}_{\fbox{2}}
\end{align}
\(\fbox{2}\)について、最尤推定された\(\beta\)を\(\hat{\beta}\)とすると、\( y = \hat{y} + \varepsilon, \: \hat{y} = X\hat{\beta} \) を用いて、
\begin{align}
& (y-X\beta)'(y-X\beta) \\
&= ( \varepsilon + \hat{y} - X\beta)'( \varepsilon + \hat{y} - X\beta) \\
&= \varepsilon' \varepsilon + (\hat{y} - X\beta)'(\hat{y} - X\beta) + \varepsilon'(\hat{y} - X\beta) + (\hat{y} - X\beta)' \varepsilon \\
&= S_e + (\hat{\beta}-\beta)'X'X(\hat{\beta}-\beta) + \underline{\varepsilon'X}(\hat{\beta}-\beta)+ (\hat{\beta}-\beta)'\underline{X'\varepsilon} \\
&= S_e + Q(\beta)
\end{align}
但し、\(S_e=\varepsilon'\varepsilon\), \(Q(\beta)=(\hat{\beta}-\beta)'X'X(\hat{\beta}-\beta)\)とした。下線部はゼロ。
戻って、
\begin{align}
\fbox{1}=n_0S_0 + S_e + \underline{(\beta-b_0)'B_0^{-1}(\beta-b_0) + Q(\beta)}_\fbox{3}
\end{align}
\(B_1^{-1}=B_0^{-1}+X'X\)及び\( b_1=B_1(B_0^{-1}b_0 + X'X\hat{\beta}) \)とすると、
\begin{align}
\fbox{3}
&=(\beta-b_0)'B_0^{-1}(\beta-b_0)+(\hat{\beta}-\beta)'X'X(\hat{\beta}-\beta) \\
&= \beta'B_0^{-1}\beta - \beta'B_0^{-1}b_0 - b_0'B_0^{-1}\beta + b_0'B_0^{-1}b_0 \\
&+ \hat{\beta}'X'X\hat{\beta} - \beta'X'X\hat{\beta} - \hat{\beta}'X'X\beta + \beta'X'X\beta \\
&= \beta'(B_0^{-1}+X'X)\beta - \beta'(B_0^{-1}b_0+X'X\hat{\beta}) \\
& - (b_0'B_0^{-1}+\hat{\beta}'X'X)\beta + \underline{b_0'B_0^{-1}b_0 + \hat{\beta}'X'X\hat{\beta}}_{\fbox{4}} \\
&= \beta'B_1^{-1}\beta - \beta'B_1^{-1}b_1 - b_1'B_1^{-1}\beta + \fbox{4}
\end{align}
ここで、\(B_0, X'X\)は対称行列なので\(B_1\)も対称行列であり、さらにそれらの逆行列も対称行列である性質を使っています。
\begin{align}
\fbox{4}&=b_0'B_0^{-1}b_0 + \hat{\beta}'X'X\hat{\beta} \\
&= b_0' B_1^{-1} B_1 B_0^{-1} b_0 + \hat{\beta}' B_1^{-1} B_1 X'X \hat{\beta} \\
&= b_0' (B_0^{-1}+X'X) B_1 B_0^{-1} b_0 + \hat{\beta}' (B_0^{-1}+X'X) B_1 X'X \hat{\beta} \\
&= b_0' B_0^{-1} B_1 B_0^{-1} b_0 + b_0' X'X B_1 B_0^{-1} b_0
+ \hat{\beta}' B_0^{-1} B_1 X'X \hat{\beta} + \hat{\beta}' X'X B_1 X'X \hat{\beta} \\
&= (b_0'B_0^{-1}+\hat{\beta}'X'X)B_1(B_0^{-1}b_0+X'X\hat{\beta}) \\
& -b_0'B_0^{-1}B_1X'X\hat{\beta} -\hat{\beta}' X'X B_1 B_0^{-1} b_0
+ b_0' X'X B_1 B_0^{-1} b_0 + \hat{\beta}' B_0^{-1} B_1 X'X \hat{\beta} \\
&= b_1'B_1^{-1}b_1 + (b_0'-\hat{\beta}')X'XB_1B_0^{-1}b_0 - (b_0'-\hat{\beta})B_0^{-1}B_1X'X\hat{\beta} \\
&= b_1'B_1^{-1}b_1 + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta})
\end{align}
よって、
\begin{align}
\fbox{3}&=\beta'B_1^{-1}\beta - \beta'B_1^{-1}b_1 - b_1'B_1^{-1}\beta + b_1'B_1^{-1}b_1 + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta}) \\
&= (\beta-b_1)'B_1^{-1}(\beta-b_1) + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta})
\end{align}
\begin{align}
\fbox{1}&= n_0S_0 + S_e + \fbox{3} \\
&= n_0S_0 + (\beta-b_1)'B_1^{-1}(\beta-b_1)
+ \underline{S_e + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta})}_\fbox{5}
\end{align}
\begin{align}
\fbox{5}&=S_e + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta}) \\
&= \underline{S_e + (\hat{\beta}-b_0)'B_0^{-1}B_1X'X \hat{\beta}}_\fbox{6}
+ \underline{(b_0-\hat{\beta})'B_0^{-1}B_1X'X b_0}_\fbox{7}
\end{align}
ここで、\(B_1^{-1}=B_0^{-1}+X'X \)より、\(B_0^{-1}B_1=(B_1^{-1}-X'X)B_1 = I-X'XB_1\)を用いて
\begin{align}
\fbox{6}&=S_e + (\hat{\beta}-b_0)'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'B_0^{-1}B_1X'X \hat{\beta} - b_0'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}' (I-X'XB_1) X'X \hat{\beta} - b_0'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - \hat{\beta}' X'XB_1 X'X \hat{\beta} - b_0'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - (\hat{\beta}' X'X + b_0'B_0^{-1})B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - (B_1(B_0^{-1}b_0 + X'X\hat{\beta}))' X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - b_1' X'X \hat{\beta} \\
&= S_e + (\hat{\beta}-b_1)'X'X\hat{\beta} \\
&= \varepsilon'\varepsilon + (\hat{\beta}-b_1)'X'X\hat{\beta} \\
&= (\varepsilon' + (\hat{\beta}-b_1)'X')(\varepsilon + X\hat{\beta}) \\
&= (\varepsilon + \hat{y} -X b_1)'(\varepsilon + \hat{y}) \\
&= (y -X b_1)'y
\end{align}
\begin{align}
\fbox{7}&=(b_0-\hat{\beta})'B_0^{-1}B_1X'X b_0 \\
&= b_0'B_0^{-1}B_1X'X b_0 -\hat{\beta}'B_0^{-1}B_1X'X b_0 \\
&= b_0'B_0^{-1}B_1(B_1^{-1}-B_0^{-1}) b_0 -\hat{\beta}'X'XB_1B_0^{-1} b_0 \\
&= b_0'B_0^{-1}b_0 - b_0'B_0^{-1}B_1 B_0^{-1} b_0 -\hat{\beta}'X'XB_1B_0^{-1} b_0 \\
&= b_0'B_0^{-1}b_0 - (b_0'B_0^{-1} + \hat{\beta}'X'X) B_1 B_0^{-1} b_0 \\
&= b_0'B_0^{-1} b_0 - b_1' B_0^{-1} b_0 \\
&= (b_0-b_1)'B_0^{-1} b_0 \\
\end{align}
よって、\(\fbox{1}\)まで戻って、また、\(n_1=n_0+n\)、\(n_1S_1=n_0S_0 + (y -X b_1)'y + (b_0-b_1)'B_0^{-1} b_0 \)とすると、
\begin{align}
\fbox{1} &= n_0S_0 + (\beta-b_1)'B_1^{-1}(\beta-b_1) + \fbox{6} + \fbox{7} \\
&= \underline{n_0S_0 + (y -X b_1)'y + (b_0-b_1)'B_0^{-1} b_0} + (\beta-b_1)'B_1^{-1}(\beta-b_1) \\
&= n_1S_1 + (\beta-b_1)'B_1^{-1}(\beta-b_1)
\end{align}
さて、事後分布はどうだったかというと、
\begin{align}
&\pi(\beta,\tau | X,y)
\propto \tau^{(n_0+n+K)/2-1} \exp \left( -\frac{\tau}{2} \left( \fbox{1} \right) \right) \\
&= \underline{\tau^{K/2} \exp \left( -\frac{\tau}{2}(\beta-b_1)'B_1^{-1}(\beta-b_1) \right)}_\fbox{8}
\times \underline{\tau^{n_1/2-1} \exp \left( -\frac{\tau}{2} n_1S_1 \right)}_\fbox{9}
\end{align}
すると、\(\fbox{8}\)は正規分布\([\beta | \tau,X,y] \sim N(b_1,\tau B_1)\)の密度関数、\(\fbox{9}\)はガンマ分布\( [\tau | \beta,X,y] \sim Ga(n_1/2,n_1S_1/2)\)の密度関数であり、事後分布を解析的に書き下すことができた。さらに、\(\tau\)の従うガンマ分布の母数には\(\beta\)が入っていないので、\(\tau\)のサンプリングには\(\beta\)を必要としないこともわかる。