LoginSignup
15
7

More than 3 years have passed since last update.

ベイズの定理とベイズ更新

Last updated at Posted at 2019-09-09

はじめに

この記事では、ベイズの定理ならびにベイズ更新を復習します。
こちらの本
基礎からのベイズ統計学: ハミルトニアンモンテカルロ法による実践的入門」(アフィリエイトリンクではありません)
の第一章を参考に書きました。数字や例題は一部変更しています。

同時確率・周辺確率・乗法定理と全確率の公式

まずは、ベイズの定理を理解するのに、必要な前提知識をおさらいしておきます。

簡単な確率の問題として、100人の社員がいる会社から、無作為に一人選んだ場合、その人が女性である確率を考えましょう。
女性が40人、男性が60人いた場合、女性が選ばれる確率は0.4です。

p(女性) = \frac{40}{100} = 0.4

同時確率

次に性別だけでなく、血液型についても考えてみます。
利便性のために、性別(男・女)を$\{A_1, A_2\}$、血液型(A・B・O・AB)を$\{B_1, B_2, B_3, B_4\}$と表すことにします。
このとき、${A_i}$と${B_j}$が同時に起こる確率を

p({A_i}, {B_j})

このように表現し、これを同時確率と呼びます。
たとえば、女性が40人/100人、A型の男女が30人/100人いる場合、選んだ人が女性かつA型である同時確率は次のとおりです。

p(A_2, B_1) = 0.4 \times 0.3 = 0.12

周辺確率

試行によって$A_i$や$B_j$が得られることを「事象」と呼びますが、
周辺確率とは、他の事象とは関係なく、ある一つの事象が起こる確率のことを言います。
たとえば、事象$A_i$の周辺確率 $p(A_i)$や、事象$B_j$の周辺確率 $p(B_j)$ は、次のように表します。

p(A_i) = \sum_{j=1}^{b}p(A_i, B_j) \\
p(B_j) = \sum_{i=1}^{a}p(A_i, B_j)

条件付き確率

事象$B_j$が起こるという条件のもとで、事象$A_i$が起こる確率を条件付き確率と呼び、

p(A_i|B_j)

のように表現します。これは、次のように計算することができます。

p(A_i|B_j) = \frac{p(A_i, B_j)}{p(B_j)}

乗法定理と全確率の公式

この条件付き確率の式を変形した以下の式を、確率の乗法定理と言います。

p(A_i, B_j) = p(A_i|B_j)p(B_j)

この乗法定理を周辺確率の式、$p(A_i) = \sum_{j=1}^{b}p(A_i, B_j)$ に代入すると、次の全確率の公式が導けます。

p(A_i) = \sum_{j=1}^{b}p(A_i|B_j)p(B_j) \\

ベイズの定理

ここまでで、ベイズの定理を導出するのに必要な概念が出揃いました。
それでは、ベイズの定理を導いたうえで、実際にいくつかの例題に対して使ってみましょう。

先程の乗法定理

p(A_i, B_j) = p(A_i|B_j)p(B_j)

は、次のように順番を逆にしても成り立ちます。

p(A_i, B_j) = p(B_j|A_i)p(A_i)

この2式の右辺は等式でつなげるので、その上で両辺を $p(B_j)$で割ると、

p(A_i|B_j) = \frac{p(B_j|A_i)p(A_i)}{p(B_j)}

と変形できますが、これがベイズの定理です。
このとき $p(A_i)$ を事前確率、 $p(A_i|B_j)$ を事後確率と呼びます。

例題1: ベイズの定理を検診問題に使う

ベイズの定理を、以下のような例題において実際に使ってみしょう。

5%の人がかかっている病気Aがあります。実際に病気Aにかかっている人が検診Bを受けると90%の確率で陽性となり、病気にかかっていない人が検診Bを受けると70%の確率で陰性となります。さて、検診Bを受けた結果が陽性だった場合、実際に病気Aにかかっている確率はどのくらいでしょうか。

病気にかかっている・いないを $A_1・A_2$, 検診結果の陽性・陰性を$B_1・B_2$と表記すると、この問題はベイズの定理にしたがって、次のように計算できます。

p(A_1|B_1) = \frac{p(B_1|A_1)p(A_1)}{p(B_1|A_1)p(A_1)+p(B_1|A_2)p(A_2)}\\
= \frac{病気Aにかかっている人の検診結果が陽性である確率 \times 病気Aにかかっている確率}{検診結果が陽性である確率}\\
= \frac{0.9 \times 0.05}{0.9 \times 0.05 + (1-0.7)\times0.95}\\
= \frac{0.045}{0.045+0.285}\simeq0.136

この結果から、陽性判定を受けても実際に病気Aにかかっている確率は13.6%ほどだということがわかります。

ベイズ更新

検診Bを終えたあとに、新たに別の検診Cがはじまったとします。この検診Cの結果を使うと、ベイズ更新が行えるので復習していきましょう。

独立な確率

ベイズ更新を学習する前に、独立という概念を復習しておきます。
検診Bの結果と検診Cの結果が互いに影響しない場合、BとCは互いに独立である、と言います。このとき次の式が成り立ちます。

p(A_i, B_j) = p(A_i)p(B_j)\\

また、BとCが独立なら、実際に病気にかかっている確率Aに対して、次の式が成り立ちます。

p(B, C|A) = p(B|A)p(C|A)

ベイズ更新の流れ

おさらいすると検診Bの判定から、病気Aにかかっているか否かの確率は、以下のベイズの定理で表せます。

p(A|B) = \frac{p(B|A)p(A)}{p(B)}\\

ここで、新たにはじまった検診C(検診Bとは独立)と検診Bを両方受けたあとの、病気Aにかかっているか否かの確率は、以下のベイズ定理で計算できます。

p(A|B, C) = \frac{p(B,C|A)p(A)}{p(B, C)} = \frac{p(B|A)p(C|A)p(A)}{p(B)p(C)} = \frac{p(C|A)}{p(C)} \times \frac{p(B|A)p(A)}{p(B)}

2式目から3式目の変形では、独立な確率で紹介した2つの式を使っています。

ここで、最右辺の式を次のように式変形してみましょう。

\frac{p(C|A)}{p(C)} \times \frac{p(B|A)p(A)}{p(B)} = \frac{p(C|A)p(A|B)}{p(C)}

つまり、以下のようなベイズの定理の形をした式が導けます。

p(A|B, C) = \frac{p(C|A)p(A|B)}{p(C)}

これは、検査Bのみを受けた結果を事前確率、その後セカンドオピニオンとして検査Cを受けた結果を事後確率とする式と、時系列をつけて解釈することができます。
$p(A|B)$ はもともと $p(A)$ の事後確率だったので、検診Cを受けたことで $p(A|B)$ が事後確率から事前確率になっているのです。
このように、以前の推論で求めた事後確率を、次の推論の事前確率として使い、事後確率を更新していくことを、ベイズ更新と呼びます。

例題2: ベイズ更新を検診問題に使う

それでは、ベイズ更新を実際に計算してみましょう。例題1の検診問題に、検診Cの話を加えた上で整理します。

5%の人がかかっている病気Aに対して、新しい検査Cが行われることになりました。実際に病気Aにかかっている人が検診Cを受けると80%の確率で陽性となり、病気にかかっていない人が検診Cを受けると90%の確率で陰性となります。検診Bの結果が陽性だったあと、さらに検診Cを受けてその結果も陽性だった場合、病気Aにかかっている確率はどのくらいでしょうか。

例題1の答えを思い出すと、検診Bの結果が陽性だった場合に、実際に病気Aにかかっている確率は次のとおりでした。

p(A_1|B_1) \simeq 0.136

検診Cが陽性であることを$C_1$、陰性であることを$C_2$と書くことにします。検診Bの結果を受けた後に、さらに検診Cの結果がわかった場合、病気Aにかかっている確率は、以下のベイズ更新を行うことで導けます。

p(A_1|B_1, C_1) = \frac{p(C_1|A_1)p(A_1|B_1)}{p(C_1)} = \frac{p(C_1|A_1)p(A_1|B_1)}{p(C_1|A_1)p(A_1)+p(C_1|A_2)p(A_2)} \\
= \frac{0.8 \times 0.136}{0.8\times0.5+(1-0.9)\times0.95} \simeq 0.272

13.6%から27.2%に上がっていることがわかります。

終わりに

ベイズの定理とベイズ更新について復習しました。

今回参考にした「基礎からのベイズ統計学: ハミルトニアンモンテカルロ法による実践的入門」の第一章では、ベイズ統計学が主観的確率を用いるが故の危うさについて解説されていたり、より豊富な概念や例題が説明されています。ぜひ、参考にしてみてください。

15
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
7