LoginSignup
0
1

More than 3 years have passed since last update.

【理工学書勉強会】ベイズ更新のメモ

Posted at

先日、塩尻市で開催された理工学書勉強会に参加してきました。

今回の内容は、ベイズの定理及びベイズ更新に関する内容でした。
非常に興味があるところであり、内容も充実しており面白かったです!
次回も予定されているようなので、楽しみです。

残った疑問

そのときの疑問として、複数回試行した結果があったとして、一回ずつベイズ更新を
適用した結果と、全ての結果をベイズの定理に突っ込んだ場合とで、結果が一致する
のか?
という議論になりました。

ベイズの定理を使いこなしている方にとっては当たり前の内容かもしれませんが、
普段使っていない自分にとっては「一致するはず...」という弱い主張しかできません。

そこで、実際に計算して確かめてみるしかない!と思いメモとして残すことに
しました。

問題設定

感染率が0.001の病気があり、その感染を検査する薬Aと薬Bがある。

そのとき、薬Aと薬Bの陽性/陰性の確率は以下のとおりである。
ただし、Xは薬の陽性/陰性反応を示し、Sは患者の感染/非感染を表している。

・薬A

S=非感染 S=感染
X=陰性 0.99 0.02
X=陽性 0.01 0.98
事前確率 0.999 0.001

・薬B

S=非感染 S=感染
X=陰性 0.96 0.03
X=陽性 0.04 0.97
事前確率 0.999 0.001

事前確率は感染率を意味しています。薬Aでも薬Bでも当然同じ確率です。

問いは、「薬Aを使って陽性であって、かつ薬Bを使って陽性であって、実際に
病気に感染している確率を求める」というものです。

詳しくは、以下のスライドP9,10をご覧ください。

ベイズの定理

皆さんよくご存知のベイズの定理を示しておきます。

p(S|X)=\frac{p(X|S)}{\sum_S p(X|S)p(S)}p(S)

ベイズ更新で計算

今回の問題は、ベイズ更新の方が式が分かりやすいので、ベイズ更新から計算します。
ベイズ更新は、「前の試行の事後確率が次の試行では事前確率として代入できる」手法です。

今回の問題では、「薬Aを使って陽性」→「薬Bを使って陽性」という二回の試行に
分けてしまいます。その上で、ベイズ更新を行います。

薬Aについて

まずは、「薬Aを使って陽性」の確率を計算します。
再掲する以下の表をベイズの定理に代入します。

S=非感染 S=感染
X=陰性 0.99 0.02
X=陽性 0.01 0.98
事前確率 0.999 0.001
\begin{align}
p(S=感染&|X=陽性)\\
               &=\frac{p(X=陽性|S=感染)p(S=感染)}{\sum_Sp(X=陽性|S)p(S)}\\
               &=\frac{p(X=陽性|S=感染)p(S=感染)}{p(X=陽性|S=感染)p(S=感染)+p(X=陽性|S=非感染)p(S=非感染)}\\
               &=\frac{0.98\times0.001}{0.98\times0.001+0.01\times0.999}\\
               &=0.089
\end{align}

薬Aで陽性であって、実際感染している確率は0.089となりました。
一見、かなり低い確率になりますが、感染率が0.001と低いのでこのような
結果になっています。

薬Bについて

次に「薬Bを使って陽性」の確率を求めます。
対応表はほとんど変わりませんが、事前確率が変わってきます。

S=非感染 S=感染
X=陰性 0.96 0.03
X=陽性 0.04 0.97
事前確率 0.911 0.089

事前確率が変わっているのは、「薬Aを使って陽性の事後確率」が事前確率として使えるからです。
式の内容は薬Aのときと同じです。

\begin{align}
p(S=感染&|X=陽性)\\
               &=\frac{p(X=陽性|S=感染)p(S=感染)}{\sum_Sp(X=陽性|S)p(S)}\\
               &=\frac{p(X=陽性|S=感染)p(S=感染)}{p(X=陽性|S=感染)p(S=感染)+p(X=陽性|S=非感染)p(S=非感染)}\\
               &=\frac{0.97\times0.089}{0.97\times0.089+0.04\times0.911}\\
               &=0.70
\end{align}

薬A単体のときと比べ、薬A→薬Bと併用することで、薬A,Bで陽性であれば
実際に感染している確率を0.70まで引き上げることができました。

ベイズの定理で計算

ここでは、一気に計算してしまいます。

すなわち、薬Aでも陽性で、かつ薬Bでも陽性であったときの病気に感染している
確率をベイズの定理に入れ求めます。

\begin{align}
p(S=感染&|X_A=陽性,X_B=陽性)\\
               &=\frac{p(X_A=陽性,X_B=陽性|S=感染)p(S=感染)}{\sum_Sp(X_A=陽性,X_B=陽性|S)p(S)}\\
               &=\frac{p(X_A=陽性,X_B=陽性|S=感染)p(S=感染)}{p(X_A=陽性,X_B=陽性|S=感染)p(S=感染)+p(X_A=陽性,X_B=陽性|S=非感染)p(S=非感染)}\\
               &=\frac{0.98\times0.97\times0.001}{0.98\times0.97\times0.001+0.01\times0.04\times0.999}\\
               &=0.70
\end{align}

先ほどの結果と一致しました。

まとめ

このケースに限っては、一回ずつベイズ更新を適用した結果と、全ての結果を
ベイズの定理に突っ込んだ場合とで、結果が一致する
ことが分かりました。

0
1
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
0
1