ベイズの定理
事象 H が発生すると思われる確率(事前確率)を P(H)
事象 D が起きた(調査などをした)ときの、Hが発生する確率(事後確率)を P(H|D)
とすると、
事象 D が起きた後での、H が発生する確率 P(H|D)は
P(H)*P(D|H)
P(H|D) = ────────
P(H)
事象が複数あるときは、
P(Hi)*P(D|Hi)
P(Hi|D) = ──────────
ΣP(Hi)*P(D|Hi)
となります。これをベイズ(Bayes)の定理といいます。
ベイズの理論は、事前確率と事後確率の考え方、主観確率と客観確率との組み合わせができることが特徴です。
問題1 天気予報
昔は、明日の天気を空を見て、50%は晴、50%は雨というように予想していました。
また、下駄を投げて表なら晴、裏なら雨という科学的予知方法がありました、信頼性は低いのですが、経験的に
表になったときに、実際に晴れる確率は60%、雨になる確率は40%
裏になったときに、実際に雨になる確率は70%、晴れになる確率は30%
だと知られていました。
下駄を投げたら表がでました。このことから、明日が晴になる確率はどうなるでしょうか?
●解答
ベイズの推論の用語に置き換えます。
H1:晴である H2:雨である
D1:晴と判断 D2:雨と判断
事前確率(主観確率) 晴:P(H1) = 0.5, 雨:P(H2) = 1-P(H1) = 0.5
ゲタの結果による確率(客観確率)
ゲタが表になったとき、実際に晴の確率 P(D1|H1) = 0.6, 実際は雨の確率 P(D2|H1) = 1-P(D1|H1) = 0.4
ゲタが裏になったとき、実際に雨の確率 P(D2|H2) = 0.7, 実際は晴の確率 P(D1|H2) = 1-P(D2|H2) = 0.3
ゲタが表になったときに明日が晴になる確率(事後確率)は P(Hi|D1) です。
P(H1|D1) = P(H1)*P(D1|H1) / { P(H1)*P(D1|H1) + P(H2)*P(D1|H2) }
= 0.5*0.6 / (0.5*0.6 + 0.5*0.3)
= 0.67
すなわち、事前確率では50%だったのが、ゲタの客観確率が表(1)になったことにより、事後確率は67%に増加しました。
問題2 交通情報
(上級システムアドミニストレータ試験、平成20年度、問48)
本社から工場まで車で行くのに、一般道路では80分かかる。
高速道路を利用すると、混雑していなければ50分、混雑していれば100分かかる。
交通情報が「順調」ならば高速道路を利用し、「渋滞」ならば一般道路を利用するとき、期待できる平均所要時間は約何分か。
ここで、高速道路の混雑具合の確率は、混雑している状態が0.4、混雑していない状態が0.6とし、
高速道路の真の状態に対する交通情報の発表の確率は表のとおりとする。
高速道路の真の状態
混雑している 混雑していない
交通 渋滞 0.9 0.2
情報 順調 0.1 0.8
ア 62 イ 66 ウ 68 エ 72
●解答
交通情報が「渋滞」であったとき、真に「混雑」している確率はいくらか(およびその逆)を求めることがポイント
「混雑」している事象が事象A、「渋滞」と発表する事象が事象B
・事前確率(主観確率):交通情報を知る前での「混雑」確率
・客観確率:交通情報の正確性の確率
・事後確率:「渋滞」と知ってからの「混雑」の確率
混雑している 混雑していない 合計
渋滞 0.4×0.9=0.36 0.6×0.2=0.12 0.48←「渋滞」と発表される確率
順調 0.4×0.1=0.04 0.6×0.8=0.48 0.52←「順調」と発表される確率
─── ─── ───
合計 0.40 0.60 1.00
「渋滞」と発表される確率
= 真は混雑しており。渋滞と発表する確率 =0.4×0.9=0.36
+真は混雑していないのに渋滞と発表される確率=0.6×0.2=0.12
=0.36+0.12
=0.48
「順調」と発表される確率
=0.4×0.1+0.6×0.8
=0.52
「順調」と発表されているが、真は混雑している確率=0.04/0.52=0.077
「順調」と発表されており、真も混雑していない確率=0.48/0.52=0.923
─────
1.000
(ここまでが、ベイズの定理に関する部分です)
「渋滞」のときの所要時間
一般道路利用→80分
「順調」のときの所要時間
高速道路利用→100×0.077+50×0.923=53.8分
期待値=80×0.48+53.85×0.52=66.4分 →イが〇
問題3 感染症の検査
新型コロナなど感染症の対策として、感染の有無を検査することが重要です。しかし、完全な検査は存在しません。
H1:感染している H2:感染していない
D1:感染者と判断 D2:非感染者と判断
感度(真陽性率): 実際に感染している人の中で、検査で陽性になった人の割合 P(H1|D1)
特異度(真陰性率):実際には感染していない人の中で、検査で陰性になった人の割合 P(H2|D2)
偽陽性率: 実際には感染していない人の中で、検査で陽性になった人の割合 P(H2|D1)
偽陰性率: 実際に感染している人の中で、検査で陰性になった人の割合 P(H1|D2)
が存在します。
・全集団で感染者と非感染者の割合は、実際には不明であるが、3%と97%と推定されている
P(H1) = 0.03, P(H2) = 0.97 P(H1) + P(H2) = 1
・事前に感染者と判明している人に検査をすると、98%の確率で陽性の結果がでることが知られている
P(D1|H1) = 0.98 P(D2|H1) = 1-0.98 = 0.02
・事前に非感染者と判明している人に検査をすると、95%の確率で陰性の結果がでることが知られている
P(D1|H2) = 0.05 P(D2|H2) = 1-0.05 = 0.95
この数値から、真陽性率を求めなさい。
●解答
P(H1|D1) = P(H1)*P(D1|H1) / { P(H1)*P(D1|H1) + P(H2)*P(D1|H2) }
= 0.03*0.98 / { 0.03*0.98 + 0.97*0.05}
= 0.38
他の率も求めるには、次の表を作成するのが便利です。
Hi P(Hi) P(D1|Hi) P(D2|Hi) P(Hi)P(D1|Hi) P(Hi)P(D2|Hi) p(Hi|D1) p(Hi|D2)
1(感染) 0.03 0.98 0.02 0.03*0.98=0.030 0.03*0.02=0.001 0.0294/0.0779(a)=0.377(真陽性率) 0.001/0.922(b)=0.000(偽陰性率)
2(非感染) 0.97 0.05 0.95 0.97*0.05=0.049 0.97*0.95=0.922 0.0485/0.0779(a)=0.622(偽陽性率) 0.922/0.022(b)=1.000(真陰性率)
合計 1 a=0.078 b=0.922 1 1
●解釈での留意点
偽陽性率 P(H2|D1) が高いのは、事前確率での感染率 P(H1) が小さい(P(H2) が大きい)からです。
ほとんど発生しないことが起こった(D1になった)ことで、陽性とみなすことが大きくなるのです。
もし、P(H1)=0,3 とすると、偽陽性率 P(H2|D1)=0.1 になります。
そもそも、この種の検査は
・感染していると疑われる人が陽性であることを確認して治療を行う 感度(真陽性率)
・感染していないと思われる人が陰性であると確認して過剰な対策をしない 特異度(真陰性率)
を目的にしているようです。逆に
・感染していないと思われる人にも検査して陽性者を探し出し
隔離などの対策を講じる
真の感染状況を把握する
ことには適した方法ではないようです。特に後者のためには対象者が多くなり、費用がかかります。
問題4 原因が多数のとき
あるイベントで、あらかじめ複数の組織A~Dに連絡して、背の高い人を参加させることにしました。
「背の高い人が来ました。どの組織の人でしょうか(原因は何か)」という問題です。
私は、A~Dから参加する確率を、0.4, 0,3, 0.2, 0.1 と思っています。
また、A~Dの構成員のうち、背の高い人の比率は、0.2, 0.5, 0.1, 0.4 であることを知っています。
●解答
組織 事前確率 客観確率 事後確率
A 0.4 0.2 0.4*0.2=0.08 0.08/0.3=0.27 Aから来た確率 原因がAである確率
B 0.3 0.5 0.3*0.5=0.15 0.15/0.3=0.50
C 0.2 0.1 0.2*0.1=0.02 0.02/0.3=0.07
D 0.1 0.5 0.1*0.5=0.05 0.05/0.3=0.17
合計 1 0.30 1
問題5 原因も発生事象も多数のとき
いくつかの病気と、それによるいつかの症状があります。
各病気にかかったときに現れる症状の確率を表にしました。
↓病気 症状→ X Y Z
A 0.8 0.3 0.1
B 0.2 0.7 0.5
C 0.1 0.3 0.8
D 0.5 0.5 0.2
問題
Xの症状が発生したときの各病気の確率
XとYの症状が発生したときの各病気の確率
(ただし、病気や症状は互いに独立しており、相互関係はないものとする)
●解答
XとYが発生する確率をXYとして示す。
X Y Z XY XZ YZ XYZ
A 0.8 0.3 0.1 0.24 0.08 0.03 0.02
B 0.2 0.7 0.5 0.14 0.10 0.35 0.07
C 0.1 0.3 0.8 0.03 0.08 0.24 0.02
D 0.5 0.5 0.2 0.25 0.10 0.10 0.05
合計 1.6 1.8 1.6 0.66 0.36 0.72 0.17
各行の要素を合計で割る(その症状が出た=合計の確率が1になるように修正)
X Y Z XY XZ YZ XYZ
A ★0.50 0.17 0.06 ■0.36 0.22 0.04 0.14
B 0.13 0.39 0.31 0.21 0.28 0.49 0.42
C 0.06 0.17 0.50 0.05 0.22 0.33 0.14
D 0.31 0.28 0.13 0.38 0.28 0.14 0.30
合計 1 1 1 1 1 1 1
★症状Xが出たとき、病気がAである確率=50%
■症状XとYが出たとき、病気がAである確率=36%
各病気の発生確率を事前確率として与えるときは、上表の各要素にその確率を乗じることで、同様の計算ができます。
また、どの病気も」同じ程度で起きるとするならば、ここの例のように、事前確率を与えないときと同じ結果になります。