ベイズ推定３：共役事前分布

[「ベイズ推定２：正規分布のベイズ推定」](https://qiita.com/msekino/items/b4338dfac4d2c6d4d27f)に続き、ベイズ推定の解説記事第３回です。

# 共役事前分布
正規分布のベイズ推定では$\mu$の事前分布として天下り的に正規分布を用いました。実はこれは$\mu$についての関数形が、尤度関数$p(\\{x_n\\}\_{n=1}^N|\mu)$と事前分布$p(\mu)$で同じになるものを選ぶことで、事後分布が解析的に求まるように選んでいました。
先ほどの例だと対数尤度関数は

```math
\begin{align}
-\frac{1}{2} \ln(2\pi\lambda^{-1}) - \frac{\lambda}{2} \sum_{n=1}^N (x_n - \mu)^2
\end{align}
```
で、$\mu$に関して二次関数になっています。事前分布としても対数を取ったときに$\mu$に関して二次関数になる正規分布を用いれば、事後分布の対数も当然$\mu$に関して二次関数になり、事後分布は事前分布と同じく正規分布となります。
このように、**事前分布と事後分布が同じ関数形になる事前分布、すなわち尤度関数とパラメータについて同じ関数形を持つ事前分布を共役事前分布と言います。逆に言えば尤度関数の関数形から、共役事前分布の分布形を判断できます。**

共役事前分布を利用するメリットは、共役事前分布が正規分布やガンマ分布のようによく知られた分布であれば、**予測分布を求める際の事後分布によるモデル$p(X|\theta)$の期待値計算が解析的に行えたり、事後分布に従うサンプルを効率的に生成するサンプラーを利用できたりする**ことにあります。
ただしこれらのメリットを利用できるのは、尤度関数、すなわち予測に用いるモデル$p(X|\theta)$が$\theta$について既知の分布と同じ関数形である場合だけです。それ以外の場合には、後述する変分ベイズ法やMCMC法を用いることになります。

## 正規分布の精度パラメータの共役事前分布
今度は精度パラメータ$\lambda$が未知であるについて考えてみます。
対数尤度関数は

```math
\begin{align}
\ln p(\{x_n\}_{n=1}^N|\lambda)
 &= \ln \prod_{n=1}^N \mathcal{N}(x_n;\mu,\lambda^{-1}) \\
 &= \sum_{n=1}^N \ln \mathcal{N}(x_n;\mu,\lambda^{-1}) \\
 &= -\frac{N}{2} \ln 2\pi\lambda^{-1} - \frac{\lambda}{2} \sum_{n=1}^N (x_n - \mu)^2 \\
 &= \frac{N}{2} \ln \lambda - \frac{\lambda}{2} \sum_{n=1}^N (x_n - \mu)^2 + {\rm const.}
\end{align}
```
です。これはガンマ分布：

```math
\begin{align}
{\rm Gam}(\lambda|a,b)
 &= \frac{1}{\Gamma(a)} b^a \lambda^{a-1} \exp(-b\lambda)
\end{align}
```
の対数

```math
\begin{align}
(a-1) \ln \lambda - b \lambda + {\rm const.}
\end{align}
```
と$\lambda$について同じ関数形です。よって$\lambda$の共役事前分布はガンマ分布とわかります。$\lambda$の事前分布をガンマ分布${\rm Gam}(\lambda|a_0,b_0)$とすると事後分布の対数は

```math
\begin{align}
&\ln p(\lambda|\{x_n\}_{n=1}^N) \\
 &= \frac{N}{2} \ln \lambda - \frac{\lambda}{2} \sum_{n=1}^N (x_n - \mu)^2
  + (a_0-1) \ln \lambda - b_0 \lambda + {\rm const.} \\
 &= \left(a_0+\frac{N}{2} -1\right) \ln \lambda
  - \left(b_0 + \frac{1}{2} \sum_{n=1}^N (x_n - \mu)^2 \right) \lambda + {\rm const.}
\end{align}
```
となり、事後分布は

```math
\begin{align}
p(\lambda|\{x_n\}_{n=1}^N)
 &= {\rm Gam}(\lambda;a_N,b_N) \\
a_N
 &\equiv a_0+\frac{N}{2} \\
b_N
 &\equiv b_0 + \frac{1}{2} \sum_{n=1}^N (x_n - \mu)^2 
\end{align}
```
と求まります。

## ポアソン分布の共役事前分布
事象の発生回数が従う確率分布としてポアソン分布が用いられます。
ポアソン分布では発生回数が$k$の確率は

```math
\begin{align}
{\rm Pois}(X=k;\lambda) &= \frac{\lambda^k}{k!} \exp(-\lambda)
\end{align}
```
です。パラメータは$\lambda$で、平均も分散も$\lambda$となります。
発生回数のデータを$\\{x_n\\}\_{n=1}^N$とすると対数尤度は

```math
\begin{align}
\sum_{n=1}^N (x_n \ln \lambda - \ln x_n! - \lambda)
 &= \left( \sum_{n=1}^N x_n \right) \ln \lambda - N \lambda + {\rm const.}
\end{align}
```
なので、これもガンマ分布の対数

```math
\begin{align}
(a-1) \ln \lambda - b \lambda + {\rm const.}
\end{align}
```
と同じ関数形です。
よってポアソン分布の共役事前分布もガンマ分布です。

## 指数分布の共役事前分布
事象の発生間隔の分布として指数分布が用いられます。

```math
\begin{align}
{\rm Exp}(x;\lambda)
 &= \lambda \exp(-\lambda x)
\end{align}
```
$x$は非負です。パラメータは$\lambda$で、平均は$1/\lambda$、分散は$1/\lambda^2$です。発生間隔のデータを$\\{x_n\\}\_{n=1}^N$とすると対数尤度は

```math
\begin{align}
\sum_{n=1}^N (\ln \lambda - \lambda x_n)
 &= N \ln \lambda - \left( \sum_{n=1}^N x_n \right) \lambda
\end{align}
```
なので、これもガンマ分布の対数

```math
\begin{align}
(a-1) \ln \lambda - b \lambda + {\rm const.}
\end{align}
```
と同じ関数形です。
よって指数分布の共役事前分布もガンマ分布です。

次回は[「ベイズ推定４：正規線形回帰モデルのベイズ推定」](https://qiita.com/msekino/items/9ceeacfe5b2346b65e3c)です。