とあるお兄さんの雑記

基本的に技術系の内容を書きますが、何を書くかは私の気分です。

ベイズの定理を使った問題~ベイズの定理に慣れよう~

今回は、学生や統計検定を目指している人でない限り無縁に近い話です。学生もベイズの定理とか習うのでしょうか?(私は学部時代に学びましたが、まったく理解できませんでした。別に先生が悪いとは言っていません。)

っていうか、慣れるって何でしょうね?

問題

病気Aを検査する機械、インスペクションAが開発された。インスペクションAは病気Aに罹患している人を 95\%の確率で病気Aと判定する。また、病気Aに罹患していない人を 90\%の確率で病気Aに罹患していないと判定する。また、病気Aに罹患している人は全国民の 1\%と知られている。

この時、ある人がインスペクションAから病気Aに罹患していると判定されたとき、その人が実際に病気Aに罹患している確率はいくらか?

問題を整理

罹患する確率が 1\%の病気って何でしょうね?100人に1人ぐらい罹患しているわけですから、それほど珍しくもない病気でしょうか?まぁ、余談はさておき。

事前確率は?

事前確率は読んで字のごとく事前の確率です。ということは、あらかじめ分かっている情報となります。問題文では、「~と知られている。」、「~と言われている。」と書かれることが多いです。今回の問題では「病気Aに罹患している人は全国民の 1\%と知られている。」とあるため、事前確率は

 P(病気Aに罹患している) = 0.010

となります。

事後確率は?

事後確率は読んで字のごとく事後の確率です。今回の問題では、「病気Aに罹患している人を 95\%の確率で病気Aと判定」とあります。つまり、病気Aに罹患しているという条件のもと、病気Aと判定しているわけで、

 P(病気Aと判定|病気Aに罹患している) = 0.95

となります。

(以後、 P(B|A)は事象 Aが起きた条件のもとで、事象 Bが起きた確率のことを指します。)

その他の情報を整理

インスペクションAは病気Aに罹患している人を 95\%で病気Aと判定します。反対に、病気Aに罹患している人を病気Aではないと判定する確率はいくらでしょうか?

正解は 5\%です。

分からない人は具体的な値で考えてみましょう。例えば、病気Aに罹患している人、100人に対し、インスペクションAを使って病気Aに罹患しているかどうかを調べます。

このうち、問題文から95人は病気Aに罹患していると判定されます。一方、残りの人は病気Aに罹患しているのに罹患していないと判定されてしまいます。

この時の残りの人数はというと、

 100-95 = 5

つまり、 \displaystyle \frac{5}{100} = 5\%病気Aに罹患しているのに、「病気Aに罹患していない」とインスペクションAが誤判定します。

次に、病気Aに罹患していない人をインスペクションAが誤判定、つまり、病気Aに罹患していない人を病気Aだと判定してしまう確率を考えます。

病気Aに罹患していない人を100人集め、その人たちにインスペクションAを使って病気Aに罹患しているかどうかを考えます。100人のうち、90人は病気Aに罹患していないと判定されます。しかし、残りの10人(つまり、 10\%)は病気Aに罹患していないにも関わらず、病気Aに罹患していると誤判定されてしまいます。

以上をまとめると、下の表のようになります。 f:id:kurasher:20200529232914p:plain

さらに問題文では、「病気Aに罹患している人は全国民の 1\%と知られている。」と書いてあります。つまり、全国民のうち病気Aに罹患していない人 99\%ということが分かります。表にすれば下のようになりますね。
f:id:kurasher:20200808055007p:plain

これである程度、問題文を整理できました。

解法1:確率の値をもとに計算

それでは一般的な方法でこの問題を解いてみましょう。 P(B)を事前確率、 P(B|A)を事後確率とすると、ベイズの定理は以下のように表されました。

 \displaystyle P(B|A) = \frac{P(B) P(A|B)}{P(A)}

分かりやすく書くと、下のようになります。問題文で問われているのは「病気Aと判定された条件のもとで、病気Aに罹患している確率」であるため、

 \displaystyle P(病気Aに罹患している|病気Aと判定)

 \displaystyle = \frac{P(病気Aに罹患している) P(病気Aと判定|病気Aに罹患している)}{P(病気Aと判定)}

となります。ここで、分かっていることは、

 P(病気Aに罹患している) = 0.010

 P(病気Aと判定|病気Aに罹患している) = 0.95

です。これを式に入れると、

 \displaystyle P(病気Aに罹患している|病気Aと判定)

 \displaystyle = \frac{0.010 \times 0.95}{P(病気Aと判定)}

となります。あとは P(病気Aと判定)さえわかれば求められますね。ここでベイズの定理の分母は、

 P(A) = P(A \cap B_1) + P(A \cap B_2) + \dots + P(A \cap B_k)

と表せたのを覚えていますか?
(参考:統計学基礎vol9~ベイズの定理~事象が増えた場合(一般的なベイズの定理の式)

ここで、 Aを「病気Aと判定」とすれば、 Bを「病気Aに罹患している」とできます。加えて、病気Aに罹患しているかしていないかの2つだけを考えればよいので、今回のベイズの定理の分母は

 P(病気Aと判定)  = P(病気Aと判定 \cap 病気Aに罹患している) + P(病気Aと判定 \cap 病気Aに罹患していない)

とできます。続いて、 P(A \cap B) = P(B) \times P(A|B)と書けます。ということは、今回の問題では

 P(病気Aと判定 \cap 病気Aに罹患している)

 = P(病気Aに罹患している) \times P(病気Aと判定 | 病気Aに罹患している)

となります。同じようにして、

 P(病気Aと判定 \cap 病気Aに罹患していない)

 = P(病気Aに罹患していない) \times P(病気Aと判定 | 病気Aに罹患していない)

となります。ここで、先ほどの表を参照します。 f:id:kurasher:20200808055007p:plain

すると、

 P(病気Aと判定 \cap 病気Aに罹患している)

 = P(病気Aに罹患している) \times P(病気Aと判定 | 病気Aに罹患している)

 = 0.010 \times 0.95

 P(病気Aと判定 \cap 病気Aに罹患していない)

 = P(病気Aに罹患していない) \times P(病気Aと判定 | 病気Aに罹患していない)

 = 0.99 \times 0.10

となります。ということで、これらを足し合わせれば P(病気Aと判定)が求まります。

その結果、

 \displaystyle P(病気Aに罹患している|病気Aと判定)

 \displaystyle = \frac{0.010 \times 0.95}{P(病気Aと判定)}

 \displaystyle = \frac{0.010 \times 0.95}{0.010 \times 0.95 + 0.99 \times 0.10}

 \displaystyle = \frac{0.0095}{0.0095 + 0.099}

ここで、分子、分母に 10000をかけてみます。

 \displaystyle (与式)= \frac{0.0095 \times 10000}{(0.0095 + 0.099) \times 10000}

 \displaystyle = \frac{95}{95 + 990}

 \displaystyle = \frac{95}{1085} = 0.08755760368

というわけで、実際に病気Aにかかっている確率は 8.75\%程度でした。

いや~、疲れました。さらに確率ということもあり、混乱する方も多かったのではないでしょうか?

次からは他の方法で解いてみましょう。

解法2:具体的な値を用いて計算

解法1では確率の値のまま計算したため、かなり難しく感じました。混乱した方もいらっしゃったかと思います。ここでは、もう少し簡単に解く方法をお教えします。

問題は同じで、今回は確率の値ではなくもっと大きな値を入れて考えてみましょう。

統計検定2級程度であれば、10000の値を入れれば十分対応できると思います。

問題(再掲)

病気Aを検査する機械、インスペクションAが開発された。インスペクションAは病気Aに罹患している人を 95\%の確率で病気Aと判定する。また、病気Aに罹患していない人を 90\%の確率で病気Aに罹患していないと判定する。また、病気Aに罹患している人は全国民の 1\%と知られている。

この時、ある人がインスペクションAから病気Aに罹患していると判定されたとき、その人が実際に病気Aに罹患している確率はいくらか?

問題文の確率の値に10000の値をかけてみましょう。値をかける場合、事前確率の値から計算します。

まず、病気Aに罹患している人は全国民10000人のうち、100人です。この100人のうち、 95\%にあたる95人はインスペクションAによって、病気Aと判定されます。一方、残りの5人は病気Aと判定されません。

また、残りの国民9900人のうち、 90\%にあたる8910人は罹患していないため、インスペクションAでも病気Aに罹患していないと判定されますが、残りの990人に対しては病気Aと判定されます。

これをまとめると、 f:id:kurasher:20200530005702p:plain

となります。

問われているのは、「病気Aに罹患していると判定されたとき、その人が実際に病気Aに罹患している確率」です。

そのため、分母に来る値はインスペクションAに病気Aに罹患していると判定された人数 (95人+990人)で、分子に来る値は病気Aに罹患していると判定され、かつ、実際に病気Aに罹患している人数 (95人)です。これを式にまとめると、

 \displaystyle \frac{95}{95 + 990} = 0.08755760368

解法1と同じになりましたね。

解法3:図を使って計算

解法3では図を使って問題を解いてみます。図にすることで、視覚的に分かりやすくなるためおすすめです。イメージもわきやすくなるかと思います。

問題(再掲)

病気Aを検査する機械、インスペクションAが開発された。インスペクションAは病気Aに罹患している人を 95\%の確率で病気Aと判定する。また、病気Aに罹患していない人を 90\%の確率で病気Aに罹患していないと判定する。また、病気Aに罹患している人は全国民の 1\%と知られている。

この時、ある人がインスペクションAから病気Aに罹患していると判定されたとき、その人が実際に病気Aに罹患している確率はいくらか?

(1)四角形を描き、真ん中に線を引く。その後、端に事前確率を記入

下のような感じです。比率がおかしいとか言わないでください。自分さえわかりゃいいんですから。

f:id:kurasher:20200530011116p:plain

(2)問題となる確率を記入

問題文に書いてある確率を記入していきます。
(1)で病気Aに実際に罹患している 1\%を記入したほうから書いてみましょう。赤い部分が(1)から新しく足した部分です。赤い点線を境界として左を「インスペクションAが病気Aと判定」としています。 f:id:kurasher:20200530012109p:plain

続いて、下の段にも記入していきましょう。先ほど、赤い点線を境界として左を「インスペクションAが病気Aと判定」としたので、それに合わせます。

f:id:kurasher:20200530013031p:plain

(3)図をもとに計算式を作成

問題で問われているのは、「病気Aに罹患していると判定されたとき、その人が実際に病気Aに罹患している確率」です。
まず、病気Aに罹患していると判定された部分は下の図の色のついた部分に該当します。色のついた部分と図の端に書いた事前確率をかけて、足し合わせます。

f:id:kurasher:20200530014129p:plain

色のついた部分が分母にあたるので、

分母  = 0.95 \times 0.01 + 0.10 \times 0.99

となります(事前確率をかけるのを忘れずに!)。

また、分子は、問題で問われている病気Aに罹患していると判定され、かつ、その人が実際に病気Aに罹患している確率です。下図で言うと、色のついた部分になります。

f:id:kurasher:20200530014946p:plain

色のついた部分を計算すると(事前確率をかけるのを忘れずに!)、

分子  = 0.95 \times 0.01

となります。

(4)算出した計算式をもとに計算

先ほど計算で出した分子・分母をもとに、求めたい値を計算します。

 \displaystyle \frac{分子}{分母} = \frac{0.95 \times 0.01}{0.95 \times 0.01 + 0.10 \times 0.99}

 \displaystyle  = \frac{95}{95 + 990} = 0.08755760368

解法1、解法2同様に同じ答えが得られました。

まとめ

ベイズの定理を使って問題を解くための解法を3つ紹介しました。いずれにしても同じ結果が得られるので、どれを使って解くかは皆さんの好みの問題です。

また、計算した結果が意外と低いことに驚いた方もいらっしゃったのではないでしょうか?

今回はインスペクションAだけで判定した結果ですが、現実では複数の検査を行ない、それらの結果をもとに総合的に判断する、というのが一般的でしょう。たった一度の判定で陽性になったからと言って焦る必要はありません。その後の精密検査で陽性となった場合は別ですが....。