dely Tech Blog

クラシル・TRILLを運営するdely株式会社の開発ブログです

ベイズの定理をできるだけ分かりやすく紹介してみる

TRILL開発部の石田です。

先日Twitterで以下のツイートが流れてきました。

ある検査は精度95%で正しい結果を出すが、5%の確率で間違えた結果を出す。 実際に病気である人は全体の5%だ。

その検査で陽性反応がでた。この人が本当に病気である確率は何%か?

非常に興味深い内容なので、こちらについて言及していきたいと思います。

ちなみに元ツイートを参照すると分かりますが、正解は95%ではなく50%です。

問題の整理

まず、ツイート中の以下の文について考えてみます。

ある検査は精度95%で正しい結果を出すが、5%の確率で間違えた結果を出す。

これは言い換えると以下のようになります。

  • 病気の人が検査をしたとき、陽性と出る確率が95%で、陰性と出る確率が5%
  • 健康な人が検査をしたとき、陽性と出る確率が5%で、陰性と出る確率が95%

また、問いは以下となっています。

その検査で陽性反応がでた。この人が本当に病気である確率は何%か?

これも言い換えると以下のようになります。

  • 陽性と出たとき、病気である確率は何%か

このツイートは一見当たり前のことを問うているようなのですが整理すると、

  • 与えられた確率: 病気 or 健康な人が検査をしたときの結果の確率
  • 求めたい確率: 検査結果が陽性のときの病気の確率

となり、与えられた確率と求めたい確率が違うことが分かります。

例を挙げると、仮に検査結果が病気でも健康でも全て陽性と出るとき、「検査結果が陽性のときの病気の確率」は100%でも0%でもなく、実際に病気である人の割合と同じになることが分かると思います。

ベイズの定理

さて、上記の問いを解く前にベイズの定理について説明します。

まず条件付き確率について説明します。

条件付き確率とは「Aが起こったときにBも起こる確率」であり、例えば「病気のときに陽性と出る確率」のようなものです。 「Aが起こったときにBも起こる確率」は P(B | A) と表現されます。

P(B | A) は、Aが起こった確率 P(A) のうちで、AとBが起こる確率 P(A \cap B) なので、

\begin{equation} P(B | A) = \frac{P(A \cap B)}{P(A)} \end{equation}

と表現できます。

ちょっと分かりづらいので具体例を挙げてみます。

サイコロを振って「偶数が出たとき出目が4以上である確率」を考えると、確率は P(4以上 | 偶数) と表され、偶数が [2, 4, 6] でありその中で4以上なのは [4, 6] となるので \frac{2}{3} と求められます。

同様に出目が偶数の確率 P(偶数) は [2, 4, 6] の \frac{3}{6} = \frac{1}{2} で、偶数かつ4以上の確率 P(偶数 \cap 4以上) は [4, 6] の \frac{2}{6} = \frac{1}{3} となります。

式に当てはめてみると、

\begin{align} P(4以上 | 偶数) &= \frac{P(偶数 \cap 4以上)}{P(偶数)}\\ &= \frac{\frac{1}{3}}{\frac{1}{2}}\\ &= \frac{2}{3} \end{align}

となり、等式が成り立つことが分かります。

P(B | A) と同様に P(A | B)

\begin{equation} P(A | B) = \frac{P(A \cap B)}{P(B)} \end{equation}

と表現でき、2つの式の分母を払って P(A \cap B) を削除する等式を書くと、

\begin{equation} P(B | A)P(A) = P(A | B)P(B) \end{equation}

となり変形すると、

\begin{equation} P(B | A) = \frac{P(A | B) P(B)}{P(A)} \end{equation}

という式になります。

これがベイズの定理です。

問題の解法

ベイズの定理だけでは何のことかよく分からないので、ベイズの定理を使って実際に先のツイートの問題を解いてみます。

求めたい確率は「陽性と出たとき、病気である確率」でした。 これにベイズの定理を当てはめると、

\begin{equation} P(病気 | 陽性) = \frac{P(陽性 | 病気) P(病気)}{P(陽性)} \end{equation}

となります。

値を埋めていきます。

実際に病気である人は全体の5%だ。

とあるので、  P(病気) = 0.05 となり、病気の人が検査をしたとき陽性と出る確率が95%なので  P(陽性 | 病気) = 0.95 となります。

陽性の人の確率  P(陽性) はちょっとややこしいのですが、陽性の人が全体の何%か考えると、病気の人 (5%) の中で陽性と出た人 (5% x 95%) と、健康な人 (95%) の中で陽性と出た人 (95% x 5%) の合計なので、

\begin{align} P(陽性) &= 0.05 \times 0.95 + 0.95 \times 0.05\\ &= 0.095 \end{align}

となります。

以上より、ベイズの定理を使って  P(病気 | 陽性) を求めると、

\begin{align} P(病気 | 陽性) &= \frac{P(陽性 | 病気) P(病気)}{P(陽性)} \\ &= \frac{0.95 \times 0.05}{0.095} \\ &= 0.5 \end{align}

と計算でき、50%となります。

まとめ

ベイズの定理を具体例を交えて紹介しました。

分かったようで分からない感のあるものだと思っており、自分もよく混乱しています。

この記事を読んで少しでも理解の一助となれば幸甚です。

delyでは全方面でエンジニアを積極採用中です。 興味のある方は是非お声がけください。

join-us.dely.jp