初心にかえってベイズ推定

ベイズの定理からベイズ更新までの自分の理解を、基本から棚卸ししてみようと思い執筆。
これをみたベイズ初学者の理解のたしになればいいなと思う。（間違ってる点もあるかもなので、これで完結せず本を読むことをお勧めするが）

## 対象の人

高校レベルの確率統計は理解していること。
とくに、同時確率
$$p(a\cap b)=p(a|b)p(b)=p(b|a)p(a)$$
と周辺確率
$$p(a)=\sum_b p(a\cap b)$$
を前提に使います。

# ベイズの定理

wikiに書いてある通りだが、
$$p(\theta|X)=\frac{p(X|\theta)p(\theta)}{p(X)}$$
で表現される。
$X$は発生した事象、$p(\theta)$は**事前確率**、$p(\theta|X)$は**事後確率**。
導出は前提に書いた式を$a=\theta$, $b=X$として組み合わせればできるので省略する。
式の目的は、ある確率$p(\theta)$で起きると想定される事象$\theta$が、事象Xが起きた際にどう変化するかを計算する。


たとえば、$p(\theta)$が地震の発生する確率だとして、前兆かもしれない現象Xが発生したら、前兆発生時の地震発生率$p(\theta|X)$は$p(\theta)$よりも高く見積もられるだろう。
この式を使って、その確率の変化を推定することを**ベイズ推定**という。


## 尤度と周辺尤度

ここで、すでに起きている事象$X$についての$p(X|\theta)$, $p(X)$とはなんなのだろうか？

まず前者の項$p(X|\theta)$について考えよう。
これはベイズ推定では**尤度** (**Likelihood**)と呼び、$\theta$に対する関数として考える。
つまり、**ある事象$X$が$\theta$を原因として起きる確率**が$p(X|\theta)$に相当する。


分母について。ある事象$X$が発生する原因というのは1通りの$\theta$だけではないと考えると、分母は$p(X)=\sum_\theta p(X|\theta)p(\theta)$として周辺確率に置き換える。
ここで、やはり$p(X|\theta)$は尤度と考える。
尤度は確率変数ではなくパラメータについての関数だということで、
尤度関数を$L(\theta|X)=p(X|\theta)$として置き直せば、
$$p(\theta)=\frac{L(\theta|X)p(\theta)}{\sum_\theta L(\theta|X)p(\theta)}$$
となる。
あとは事前分布$p(\theta)$と尤度$L(\theta|X)$が既知であれば、事象$X$発生時の確率が求まる。

### 一旦例題

ある地域の、地震発生率、雷発生率、火事発生率を$\theta=0,1,2$とする。
確率はそれぞれ$p(\theta=0)=0.001, p(\theta=1)=0.1,p(\theta=2)=0.04$とする。 
そこで、$\theta=0,1,2$発生時に前兆現象Xが過去観測された確率は0.3, 0.5,0.2だったとして、現象発生時の地震雷火事発生率をもとめよ。


解答例。

$$p(X)=0.3\times 0.001+0.5\times 0.1+0.2\times 0.04=0.0583$$
$$p(\theta=0|X)=0.3\times0.001/p(X)=0.00514$$
$$p(\theta=1|X)=0.858$$
$$p(\theta=2|X)=0.137$$

つまり、どれも高くなるが雷発生率が突出して高くなる、つまり、すこしだけ地震に気をつけるべきだが、ほぼ雷のせいだろう、という風に読める。

なお、このように確率変数$\theta$によって異なる確率をもつとき、**分布する**という。とくに$p(\theta)$は$\theta=0,1,2$の**確率分布**という。


### 迷惑メールフィルター

全体のなかの迷惑メールの受信率が0.2だったとする。迷惑メール、非迷惑メールのなかで重要　お得 ラッキー　期間限定　がそれぞれ以下の確率で含むとする。

|語句|迷惑|非迷惑|
|---|---|---|
|重要|0.2|0.04|
|お得|0.3|0.1|
|ラッキー|0.2|0.01|
|期間限定|0.7|0.05|


このとき、
「重要なお知らせ！これを受信したあなたはラッキーです。お得な、、、」というもんごんのメールが迷惑メールである確率は、
ベイズの定理をチェーンして使えば計算できる。

|考慮にいれた情報|迷惑|非迷惑|
|---|---|---|
|事前|0.2|0.8|
|「重要」を含む|0.556|0.444|
|「ラッキー」も含む|0.962|0.038|
|「お得」も含む|0.987|0.013|

となり、これは98%迷惑メールである、と判定できる。このように、各メールに含まれる語句の出現率の差を考慮して推定し、一定以上の確率のメールを迷惑メールとしてフィルターすることができる。


## 決定論的考え方と、ベイズ的考え方

もう少し例題を掘ってみよう。
よく例題に挙げられる陽性陰性正答率の話はここまでの例題と比較して新しい知見はないので割愛する。
コイントスの話を考えよう。いま、コインの表裏がどの程度偏って出るかわからないコインを使って表がでるか裏がでるかを予想する事を考える。
あらかじめ素性を確認するため、$M=50$回試行したところ$m=16$回が表で残りが裏だったとしよう。

このコインで次に10回コインを振った際に表が出る回数に関する確率分布$p(n|M=50, m=16, N=10)$を考えよう。

### 決定論的考え方

決定論的考え方では50回試行して16回表だというので、このコインの表が出る確率は$\hat\theta=32%$だと考える。その上で、
$$p(n|N=10, \hat\theta)= {}_N C_np^n(1-p)^{N-n}$$
として求める。

だがそもそも、50回の試行から確率を一意に定めていいのだろうか？50回の試行から割り出した確率は真値ではなく、バラつきがあるはずである。
ベイジアン的考え方では、それを表現することを考える。

### ベイジアン的考え方

コインが表を出す確率$\theta$はバラつきをもつ想定で、コインが表を出す確率が$\theta$である確率を$q(\theta)$とした**確率分布**$q$を見積もることを考えよう。

今回の例題の最初の試行において、表がでる確率$\theta$のコインにおいて$M=50$回の試行から$m=16$回表がでた確率は

$$p(m=16|\theta,M=50)= {}_M C_m \theta^m (1-\theta)^{M-m}, M=50, m=16$$

となる(この式は確率変数mに関する式であり、$\theta$が確率変数ではない）。これを基に$q(\theta|m=16,M=50)$を求めるにはベイズの定理を使用する。

$$q(\theta|m=16,M=50)=\frac{p(m|\theta,M=50)q(\theta)}{p(m|M=50)}$$

いま、事前分布$q(\theta)$は一様分布を仮定しよう。つまり、どんな偏りをもった結果が得られるかは振ってみるまでわからない、というのを初期状態としよう。

このとき、式は以下のように整理される。

$$q(\theta|m=16,M=50)=\frac{\theta^m(1-\theta)^{M-m}}{\int \theta^m(1-\theta)^{M-m}d\theta}$$

分母の積分はベータ関数になっているので、

$$q(\theta|m-16,M=50)=\frac{\theta^m(1-\theta)^{M-m}}{B(m+1,M-m+1)}$$

となる。右辺のことを**ベータ分布**という。
つまり、コインの表がでる確率の分布をベイズ推定すると、その分布はベータ分布することがわかる。

得られた分布を用いて10回試行したときの回数に関する分布を求めると、

$$p(n|m=16,M=50,N=10)=\int p(n|N=10,\theta)q(\theta|m=10,M=50)d\theta$$

ここで、右辺は$\theta$に関する周辺化を行った（$m,M$に依存する項は$\theta$に押し付けたため、積分内の第一項は条件から$M,m$を外せる）。

$p(n|N=10,\theta)$および$q(\theta|m=10,M=50)$は上述の議論で既に定式化済みなので代入。積分を展開すると、

$$p(n|N,m,M)=\frac{_NC_n\int \theta^{n+m}(1-\theta)^{N-n+M-m}d\theta}{B(m+1,M-m+1)}$$


$$p(n|N,m,M)=_NC_n\frac{B(n+m+1,N+M-n-m+1)}{B(m+1,M-m+1)}$$

今回は、まあまあ綺麗な形になった。

決定論的に出した確率分布と、ベイジアン的に出した分布を比較すると以下のようになる。

![fig0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/ceae788c-b52e-c22c-983d-d000115e8111.png)


赤が決定論的、青がベイジアン的の分布である。
今回の場合、どちらで計算してもあまり変わらない結果となった。50回の試行回数から決定論的に出すには、そこそこいいということかもしれない。
なお、今回$\hat \theta=16/50$と決定論的に推定したが、この値は尤度関数$L(\theta|M=50,m=16)$がピークをもつ点である(下図、赤線は尤度最大点）。

![fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/4f22b64a-99d5-1329-91c9-31385acfc9f6.png)





一度尤度関数を得てから最大値をとる操作
$$\hat\theta=\arg\max_\theta L(\theta|m,M)$$

を**最尤法**による点推定とよぶ。以降、決定論的とは最尤法で点推定したもののことを言うことにする

(今回のようなケースはわざわざ最尤法を意識する理由がないようにみえるが、最尤法でないと一点に決められないケースが出てくる。気が向いたら記載する)

最尤法とベイジアンで生まれる結果の差は、尤度が高い点が最大値周りに局在していれば少なくなり、局在せず、例えばふた山だったりブロードに分布していると差が大きくなる。
ためしに$M=200, m=64$で試行した場合の最尤法とベイズ推定の結果を比較する。

![fig02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/ab4c58b6-cd44-3d1e-81d9-f6411b05130d.png)


ほとんど違いがない。なぜかは、尤度の形状をみれば明らかだ（赤線は尤度最大点）。

![fig12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/dd30b9ff-4a4a-3f65-7bbe-a0515ed3ecfe.png)


次に、$M=3, m=1$で比較しよう。

![fig03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/3ede7cfc-3611-e070-1606-c9d3168fae53.png)


ここまでくると、だいぶ差が生まれる。
尤度は以下のようになる。

![fig13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/a018519e-35e5-50f9-6371-86987c4b2da1.png)



さて、点推定とベイズ推定でどちらがより正確そうな描写といえるだろうか。
今回、点推定（赤線）ではたった3回の試行で確率を決めた結果、10回中8回以上裏がでる確率は限りなくゼロに近いと推定されてしまったが、エビデンスとなっているデータをやり直したら3回中2回、と触れる可能性がある(つまり、実は裏表偏りのないなコインである可能性が捨てきれない）
その場合、点推定結果は裏表真逆に触れることになる。ようは、信頼性がない。
一方、ベイズ推定の立場では**3回というデータがコインの素性を決めるには不十分であることを織り込んで考える**ため、エビデンスの揺らぎに対してロバストな結果となる。
つまり、エビデンスが少ないときにはベイズ推定を使った方が安全と言えそうだ。

一応、$M=3,m=2$の結果も乗せておこう。

![fig04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/f6acd4c7-5fef-bb8b-e5f3-d927dbbe68fc.png)

![fig14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902764/9f01b6e5-7320-f594-ca6f-f1d3937a97d0.png)


一方、やはり不十分なエビデンスでベイズ推定を行うと、あまり精度の高い結果になるとは言えなそうだ。

## 次の予定

例題の話とコインのベイズ推定の話で繋がりがわかりにくそうなので、次回はその辺の話と、先入観とベイズ推定、ベイズ推定は現実的に厳しいので系な話をしようかなと。次回は独自研究多め予定。