ベイズ統計メモ

ベイズ統計の入門書を読んだので備忘メモ

- 涌井『身につくベイズ統計学』

# 1. ベイズの定理

## 1-1. 定理の概要
 「事象$D$ があった時その原因が$H$である確率 $Pr(H|D)$ を知りたい」という問題があるが、ベイズの定理より簡単に$Pr(H|D) = Pr(H)Pr(D|H)/Pr(D)$ で計算できる。特に、$H$が互いに排他な複数の原因として$i\in\Lambda$で指数付けして分割できる時「任意の$i\in\Lambda$について、事象$D$ の原因が $H_i$ である確率 $Pr(H_i|D)$ をそれぞれ知りたい」という問題に帰着する。その時のベイズの定理は:

$$Pr(H_i|D) = \frac{Pr(H_i)Pr(D|H_i)}{\Sigma_{n \in \Lambda} Pr(H_n)Pr(D|H_n)}$$

 分母は周辺尤度$Pr(D)$と呼び指数に依らない。分子は(事前確率)×(尤度)と読む。さて、事象が指数でなく連続的な確率変数をとる場合、確率は確率分布になるのでこう変形できる:

$$\pi(\theta|D) = \frac{\pi(\theta)f(D|\theta)}{\int \pi(\theta)f(D|\theta)d\theta}$$

この二つの式は「データが得られたときに主観確率を更新する手続き」を与えていると読める。つまり $Pr(H_i)$ は主観確率であるが、それが事象$D$によって $Pr(H_i|D)$ に更新され、以降はこの値を「よりよい」主観確率とする。これをベイズ更新と呼んだりする。反復試行などの時に逐次ベイズ更新しても、一括で更新しても結果は同じになる逐次合理性という性質を持つ。

## 1-2. 何が確率事象か？

$Pr(H_i)$ や $\pi(\theta)d\theta$ は確率である。それは何の確率かといえば「原因が$H_i$である」や「原因が$\theta$である」の確率となる。つまり原因そのものが確率事象なのだ。通常の確率論では結果が確率事象となるのと対照的であり、これはベイジアンの際立った特徴となる。

例としてコイントス。原因たる確率事象「表が出る確率が$\theta$である」に対して確率変数 $\theta$ を割り当てる。この確率変数に対して$\pi(\theta)$をその分布関数とする。なので、$\pi(\theta)$を一様分布とする場合は「表が出る確率が0～1のどの値も同様に確からしい」と事前分布に関する主張していることになるし、1/2で極大値を取るような分布関数を採用する場合は「歪んでいるとは言っても仮置きとしては表が出る確率は1/2が最もありえそうじゃない」と主張していることになる。結果$D$が「裏が出た」の場合、尤度$f(D|\theta)$はその定義から自明に$1-\theta$となる。

もう一つの例。原因たる確率事象として「観測値が正規分布$N(\mu,1^2)$に従う」に対して確率変数$\mu$を割り当てる。$\pi(\mu)$として一様分布を採用する場合は「観測値がいくつになるか全くわからない」と主張していることに相当し、特定の正規分布を採用する場合は「観測値のアタリがついている」と主張していることに相当する。このようにパラメトリックな事前分布を仮定する場合母数が確率変数になる。

## 1-3. 推定とモデル評価

得られた事後分布に対して機械的な手順で母数を推定したり（極大値を取る確率変数を推定値とみなすMAP推定法）、95%信用区間（頻度論での95%信頼区間に相当する概念）を算出できる。

一方、事後分布は事前分布として何を採用するかに依存する。そこで異なる事前分布のどちらが妥当かを評価する方法の一つに、ベイズ因子を用いるものがある。周辺尤度 $P(D)=\int \pi(\theta)f(D|\theta)d\theta$ もまた事前分布に依存して決まる定数なので、これが大きいほどその事前分布がよいとある種単純に判断する。そこで異なる二つのモデルの周辺尤度の比をベイズ因子と呼び1より大きいかどうかを判断基準とする。

## 1-4. 共役事前分布

解析的に事後分布を計算するためには、分母の周辺尤度の積分計算が煩雑になる。事前分布と尤度（正確には母数が規定する確率分布）の組み合わせが特定の組み合わせの場合には事後分布が簡単に計算できることが知られている。つまり、尤度の関数形に応じて事前分布を特定の関数形に制限することで事後分布の積分計算を回避できる。事後分布は事前分布の関数形に一致する。代表的な組み合わせとして (尤度の関数形,事前分布の関数形)として以下がある

- (二項分布,ベータ分布)
- (ベルヌーイ分布,ベータ分布)
- (正規分布,平均は正規分布で分散は逆ガンマ分布)
- (分散を確率変数としない正規分布,正規分布)
- (ポアソン分布, ガンマ分布)

## 1-5. 階層ベイズ法

一般に母数が少ない時データを説明するのに十分でない場合がある。そこで標本ごとに固有の母数（≒確率変数）を発行して自由度を限りなく大きくするとともに、それらの母数が特定の分布に従うと仮定することで、それらに少し制約を加えることができる。この母数群たる確率変数群が従う確率分布の母数をハイパーパラメータと呼ぶ。この作業はいくらでも続けることができるので階層ベイズ法と呼ぶ。

標本固有の確率変数には最大値と最小値を定めるなどの制約を課すためロジット変換したりすることで計算が楽になる。積分計算はモンテカルロ法をベースとしたMCMC法を使うことでコンピュータ上で計算することができる。




# 2. 具体例

## 2-1. 事前分布が離散化されている場合

Q.「くじAは10%の確率で、くじBは20%の確率で当たる。くじが当たった。このくじがAである確率は？」

A. 確率事象は二つあって「くじがAだった」と「くじがBだった」。それぞれ $H_1, H_2$ と名付ける。事前確率の情報がないので $Pr(H_1)=Pr(H_2)=1/2$ とする。(事前確率)×(尤度)の比は 1:2 となるので $Pr(H_1|D)=1/3$。

## 2-2. 事前分布が連続的である場合

Q「サイコロを投げたら1,2,1という順に目が出た。サイコロが1を出す確率はいくつと推定したらよいだろうか？」

A. 確率事象は「1の目が出る確率はθである」であるので、確率変数として連続値をとる$\theta$をあてる。事前確率を $\pi(\theta)=1$ という一様分布とする。尤度は、$f(D|\theta)=\theta^2(1-\theta)$となる。よって周辺尤度は$\int\theta(1-\theta)d\theta=1/12$となる。よって $f(\theta|D)=12\theta^2(1-\theta)$ この argmax を取って推定値とするのだが、対数にして微分すれば暗算で 2/3 ≒ 67% が推定値と計算できる。

## 2-3. 事前分布が連続的である場合2

Q「サイコロを3回投げたら1が2回出た。サイコロが1を出す確率はいくつと推定したらよいだろうか？」

A. 前節と同様だが尤度が二項分布$B(3,\theta)$になることを考慮すると、事前分布としてベータ関数が適当。$Be(1,5)$を仮定しよう。公式より事後分布は$Be(3,6)$となり、そのargmaxは 2/7 ≒ 28% となりこれを推定値とする。

# 3. 応用

## 3-1. ベイズフィルタ

ナイーブベイズと呼ばれる分類問題。例はスパムフィルタ。メール本文を解析してスパムか非スパムかに分類する。

「メールはスパムである」「メールはスパムでない」という二つの確率事象 $H_1, H_2$ の事後確率の大小関係でスパム判定をする。つまり $Pr(H_1|D)>Pr(H_2|D)$ ならばスパムと判定する。

ベイズ更新はメール本文に登場する単語列 $\{D_i\}$ で行う。例えば、メール本文に「無料」という単語 $D_1$ があったとしよう。あらかじめ作っておいたデータベースにおいて $Pr(D_1|H_1)=0.5, Pr(D_1|H_2)=0.1$ などを登録しておくと、$H_1,H_2$それぞれのベイズ更新ができる（最初の事前確率はメール全体のスパムの比率で計算する）。続いて「論文」という単語 $D_2$ に関してもデータベースを引っ張ってきて $Pr(D_2|H_1)=0.01, Pr(D_2|H_2)=0.1$ でベイズ更新する、後はその繰り返し。こうしてスパム判定が可能となる。

計算上の工夫はある。事後確率の具体的な値が必要ではなく両者の比さえわかればよいこと、順序を入れ替えてもよいこと、一連の更新をまとめて比率計算をすること、などを利用すると計算量は非常に少なくて済む。

## 3-2. ベイジアンネットワーク

これまでの議論においてデータの原因はただ一つだけだった(注: $H_1,H_2,...$は互いに排他な原因であり、$\{H_i\}$ 全体で一つの事柄であるというように計上する)。しかし、互いに独立な複数の原因 $H,G,...$ が事象D の原因となりうる。有名なのは、警報がなる原因は「地震が起きた場合」と「強盗を検知した場合」の二つ。また「アラームがなる/ならない」という結果が何か別のコトの原因となりうる。こうしてメッシュ状の因果の鎖の繋がったネットワークが完成する。これをベイジアンネットワークという。原因$H,G$と結果$D$の因果の鎖は事前に任意の $i,j,k \in \Lambda$ における $Pr(D_i|H_j,G_k)$ の値を与えることで確定させる。

ベイジアンネットワークにおいての利用例は例えば「警報が鳴った時、地震が起きていた確率を求めよ」という形で与えられる。

## 3-3. 回帰

ベイズ流では、回帰方程式の各係数が確率変数となり、典型的には各係数の事前分布として分散既知の正規分布を仮定する。すると尤度・事前分布は簡単に計算できるので事後分布の関数形も多変量正規分布であると決定できる。確率変数なので係数を決定できないけれど、MAP推定などの方法で特定の値を代表として取り出すことができる。