サイトマップ

Pythonで学ぶ! ベイズ統計 第2回

Pythonで学ぶ! ベイズ統計 第2回

ベイズの定理と利用例

ベイズの定理

前回の条件付確率は下記になる

 \displaystyle
\begin{aligned}
P(A|B) &= \dfrac{P(A \cap B)}{P(B)} \\
P(B|A) &= \dfrac{P(B \cap A)}{P(A)}
\end{aligned}

これを変形すると下記になる

 \displaystyle
\begin{aligned}
P(A \cap B) &= P(A|B) P(B) \\
P(B \cap A) &= P(B|A) P(A)
\end{aligned}

さらに、この2つは同時確率で同じくになるので、下記が成り立つ

 \displaystyle
\begin{aligned}
P(A|B) P(B) &= P(B|A) P(A) \\
P(A|B) &= \dfrac{P(B|A) P(A)}{P(B)}
\end{aligned}

これをベイズの定理と呼ぶ
さらに、今後、関係してくるのは、下記の変形を施したものになる

 \displaystyle
\begin{aligned}
P(B) &= P(B|A) P(A) + P(B|\bar{A}) P(\bar{A}) \\
P(A|B) &= \dfrac{P(B|A) P(A)}{P(B|A) P(A) + P(B|\bar{A}) P(\bar{A})}
\end{aligned}

利用例

よく例として出るのが、病気の陽性・陰性の検査である
- 一般的に、病気の確率が0.1%である病気
- 検査で、病気に罹患している場合は、99%の人が陽性になる
- 検査で、病気に罹患してない場合も、3%の人が陽性になる

この検査で陽性だった場合に、その人が罹患している確率を求める

 A : 罹患している
 \bar{A} : 罹患していない
 B : 検査で陽性
 \bar{B} : 検査で陰性

とすると、
求めるのは、「"陽性"の場合に"罹患している"」なので、
 P(A|B) を求める

 \displaystyle
\begin{aligned}
P(A) &= 0.1\% &= 0.001 \\
P(\bar{A}) &= 99.9\% &= 0.999 \\
P(B|A) &= 99\% &= 0.99 \\
P(B|\bar{A}) &= 3\% &= 0.03
\end{aligned}

から

 \displaystyle
\begin{aligned}
P(A|B) &= \dfrac{P(B|A) P(A)}{P(B|A) P(A) + P(B|\bar{A}) P(\bar{A})} \\
&= \dfrac{0.99 \times 0.001}{0.99 \times 0.001 + 0.03 \times 0.999} \\
&= \dfrac{0.99}{0.99 + 29.97} \\
&= 0.032 = 3.2\%
\end{aligned}

となる

表で表す

10万人いるとすると、
罹患しいる人は、0.1% -> 100人
罹患していない人は、99,900人

 A  \bar{A}
 B
 \bar{B}
100 99,900 100,000

罹患していて、陽性になるのは、99% -> 99人
罹患していなくて、陽性になるのは、3% -> 2,997人

 A  \bar{A}
 B 99 2,997 3096
 \bar{B}
100 99,900 1000,000

この表から、陽性者3096人のうち、罹患している人は99人となり、
3.2%程度になる

99%の検査精度の高さから、陽性=罹患と思ってしまうが、
そもそもの罹患率の低さと、擬陽性率が3%であることから、陽性者のほとんどは擬陽性であると考えられる

参考文献

この記事は以下の書籍を参考にしましたが、
私の拙い知識で書いておりますので、誤り等ありましたらご指摘ください