Python
機械学習
DeepLearning
数学
統計学

【プログラマーのための統計学】ベイズの定理

目次

プログラマーのための統計学 - 目次

前提

事前に以下の記事を読むことをおすすめします。

ベイズの定理

事象Aが起こるという条件のもと、i種類の事象Bが起こる場合の条件付確率は以下で求められます。
K種類の事象Bは、B_1, B_2, B_3・・・B_i というように定義し、お互いは排反とします。

事象Aが起こるという条件のもと事象Biが起こる条件付確率は、以下の式で求められます。

P(B_i|A) = \frac{P(A∩B_i)}{P(A)}

P(A∩B_i)の部分に、
乗法定理 (P(A∩B)=P(A)×P(A|B))を使って、P(A)×P(A|B) を代入します。
すると、以下の式に置き換えられます。

P(B_i|A) = \frac{P(B_i) \cdot P(A|B_i)}{P(A)}

これがベイズの定理です。
それぞれの変数は、以下のような意味になります。

変数 説明
P(A) A が起きる確率
P(B) B が起きる確率(事前確率)
P(A|B) B の後でA が起きる確率(条件付き確率、尤度)
P(B|A) A の後でB が起きる確率(条件付き確率、事後確率)

ベイズの定理の証明

詳しくは、こちらのベイズの定理の証明を参照していただきたいのですが、

B の後で A が起きる確率(条件付き確率)× Bが起きる確率は、
A の後で B が起きる確率(条件付き確率)× Aが起きる確率と同じ。

つまり、

P(B_i|A) \cdot P(A) = P(A|B_i) \cdot P(B_i)

ということになります。
これの両辺をP(A)で割ると、以下の形になります。

P(B_i|A) = \frac{P(B_i) \cdot P(A|B_i)}{P(A)}

ベイズの定理を展開

また、ベイズの定理は、このような形に展開して使われることも多いです。

P(B_i|A) = \frac{P(B_i)\cdot P(A|B_i)}{\sum_{j=1}^{k}P(B_j)\cdot P(A|B_j)} 

参考