本文へスキップ
stats-basics#7

条件付き確率とベイズの面積

読了 約25一覧

90% 当たる検査で陽性が出ても、本当に病気である確率は約 9.2% にとどまります。条件付き確率とベイズの定理を 1×1 矩形の分割として扱い、事前確率・尤度・事後確率の関係を「縦帯と横帯の面積比較」として読み解きます。ベイズの定理は条件付き確率の定義から直接導かれる初等的命題で、矩形を 2 通りに読んだときの整合性が要求する関係として導出します。独立性は「条件付けても確率が変わらない関係」として定義し、排反性との混同・基準率の無視・確率の更新までを離散の範囲で整理します。

stats-06 で確率変数 XX期待値 E[X]E[X] を導入しました。本記事では「観測した情報で確率を更新する」という動作を扱います。直感の答え「90%」と正答「約 9.2%」は 約 81 ポイント離れています。なぜでしょうか。その構造を 1×1 の矩形で読み解きます。

はじめに

stats-05 で確率 P()P(\cdot) の基礎と Kolmogorov 三公理を、stats-06 で確率変数期待値 E[X]E[X] を導入しました。ここまでで「出来事に確率を割り当てる」前準備が整いました。本記事で加えるのは「情報を受け取ったあとで確率を更新する」という動作です。それが条件付き確率 P(AB)P(A \mid B) の仕事であり、ベイズの定理はその更新を 2 行の代数で書き下したものです。

Part 2(確率と期待値)の 4 本構成における本記事の位置は以下の通りです。

90% 当たる検査で本当に病気の確率が 9.2%

ある検査の性能を 3 つの数字で表します。有病率(集団の中で実際に病気の人の割合)は 1%。感度(病気の人を陽性と判定する確率)は 90%。特異度(健康な人を陰性と判定する確率)は 91%。この 3 数が揃うと、「陽性が出たとき本当に病気である確率」が計算できます。

素朴な答えは「90%」です。「90% 当たる検査」で陽性が出たのだから、病気の確率も 90% だと直感するのは自然です。ところが正答は約 9.2% です。81 ポイント近い乖離があります。Eddy(1982)の調査では、同種の問題に正答した医師は約 5% にとどまりました。医師でもこのズレを埋められません。

この 81 ポイントの差は計算上の複雑さから来るのではありません。有病率 1% という前提が小さすぎるために、陽性の人の中で「本当に病気の人」が薄まってしまう構造的な問題です。「陽性」という情報は「感度が高い = 病気を検知しやすい」という方向にしか働かないと思われがちですが、健康な人が陽性になる数が、病気の人の陽性者数を大幅に上回るとき、陽性的中率は感度とは無関係に低くなります。

矩形分割でこの構造を正確に見ることができます。病気帯と陽性帯のどちらがどれだけの面積を占めるかが視覚的に確認できれば、9.2% という数値は矩形の面積比から直接読み出せます。

「陽性なら病気」ではなく「陽性かつ病気の人は、陽性の人全体のごく一部」

縦帯を切り直す: 条件付き確率

以下、本記事では「縦の細い帯(病気帯、幅 1%)」「横の薄い帯(陽性帯、高さ 9.8%)」と呼びます。図の横軸が有病状態、縦軸が検査結果です。

1×1 の正方形を用意します。横方向に「病気 1% / 健康 99%」で切り、縦の細い帯と広い帯に分けます。次に各帯の中を縦方向に「陽性 / 陰性」で切ります。病気帯(幅 0.01)の中は 90:10 で切り、健康帯(幅 0.99)の中は 9:91 で切ります。こうして 4 つのセルができます。

矩形分割: 4 セルの面積病気×陽性0.009病気×陰性0.001健康×陽性 0.0891健康×陰性 0.9009← 病気 1% →← 健康 99% →↑ 陽性 ↓ 陰性

図の読み方: 横軸は有病状態(左 1% が病気、右 99% が健康)、縦軸は検査結果(上が陽性、下が陰性)です。各セルの面積が「病気かつ陽性」「健康かつ陰性」などの同時確率に対応します。4 セルの面積を足すと 1 になります。

セルの面積は 同時確率 P(AB)P(A \cap B) です。記号 \cap(キャップ、「かつ」と読みます)は「AABB が両方起きる」ことを表します。「病気かつ陽性」のセル面積は 0.01×0.90=0.0090.01 \times 0.90 = 0.009 です。

陽性の横帯全体の面積は 周辺確率 P(陽性)P(\text{陽性}) です。陽性になるルートは 2 つあります。病気の帯から陽性に入るルートと、健康の帯から陽性に入るルートです。両セルの面積を足すと 0.009+0.0891=0.09810.009 + 0.0891 = 0.0981 になります。

ここで条件付き確率の定義を出します。縦棒 \mid の右側が条件事象です。

P(AB)=P(AB)P(B),P(B)>0P(A \mid B) = \frac{P(A \cap B)}{P(B)}, \quad P(B) > 0

BB が起きたという条件のもとで AA が起きる確率」は、「横帯 BB を新しい全体と見直したとき、AA がその横帯のどれだけを占めるか」と読みます。分母 P(B)P(B) は横帯の面積、分子 P(AB)P(A \cap B) はセルの面積です。P(B)>0P(B) > 0 の制約は「面積がゼロの横帯では割れない」という 0 除算の回避です。

この式に数値を入れると P(病気陽性)=0.009/0.09810.0917P(\text{病気} \mid \text{陽性}) = 0.009 / 0.0981 \approx 0.0917 、つまり約 9.2% です。冒頭で提示した 9.2% という答えは、矩形の面積比として直接読み出せます。

矩形を 2 通りに読む: ベイズの定理を 2 行で導く

同じ矩形を 2 通りで読みます。1 通り目は「先に横切って病気帯を作り、その中で陽性を切る」読み方です。病気帯(幅 0.01)の中の陽性セルは、病気帯に感度を掛けて出てきます。

P(病気陽性)=P(陽性病気)×P(病気)=0.90×0.01=0.009P(\text{病気} \cap \text{陽性}) = P(\text{陽性} \mid \text{病気}) \times P(\text{病気}) = 0.90 \times 0.01 = 0.009

2 通り目は「先に縦切って陽性帯を作り、その中で病気を見る」読み方です。陽性帯(幅 0.0981)の中の病気セルは、陽性帯に事後確率を掛けて出てきます。

P(病気陽性)=P(病気陽性)×P(陽性)=P(病気陽性)×0.0981P(\text{病気} \cap \text{陽性}) = P(\text{病気} \mid \text{陽性}) \times P(\text{陽性}) = P(\text{病気} \mid \text{陽性}) \times 0.0981
同じセルを 2 通りに読む読み方 1: 横切り(病気帯から陽性)0.009病気 1%感度 90%読み方 2: 縦切り(陽性帯から病気)0.009陽性 9.8%9.2%

図の読み方: 左図では病気帯(赤、幅 1%)を先に決め、その中の陽性割合(感度 90%)を見ます。右図では陽性帯(青、幅 9.8%)を先に決め、その中の病気割合(事後確率 9.2%)を見ます。どちらも同じ「病気かつ陽性」のセル(面積 0.009)を指しています。

両方の式が同じセル面積 P(病気陽性)=0.009P(\text{病気} \cap \text{陽性}) = 0.009 を表しているので、等号で結べます。これがベイズの定理を導く 2 行です。

P(AB)=P(AB)P(B)P(A \cap B) = P(A \mid B) \cdot P(B)
P(AB)=P(BA)P(A)P(A \cap B) = P(B \mid A) \cdot P(A)

AA を「病気」、BB を「陽性」に割り当てると、両右辺が等しいから P(AB)P(B)=P(BA)P(A)P(A \mid B) P(B) = P(B \mid A) P(A) が成り立ちます。P(B)>0P(B) > 0 で両辺を割ると、ベイズの定理が出てきます。

P(AB)=P(BA)P(A)P(B)P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)}

各記号に名前を貼ります。P(A)P(A)事前確率: prior)は観測前の病気の確率 0.01。P(BA)P(B \mid A)尤度: likelihood)は病気であれば陽性が出る確率 0.90。P(B)P(B)周辺確率: marginal)は陽性が出る確率 0.0981。P(AB)P(A \mid B)事後確率: posterior)は陽性が出た後に病気である確率 0.0917 です。

分母の周辺確率 P(B)P(B) は、陽性帯が 2 つのルートから来ることを思えば分解できます。AcA^c は「AA の余事象」、つまり AA が起こらない事象(Ac=ΩAA^c = \Omega \setminus A)です。陽性になるのは「病気かつ陽性」か「健康かつ陽性」かのどちらかですから、

P(B)=P(BA)P(A)+P(BAc)P(Ac)P(B) = P(B \mid A) P(A) + P(B \mid A^c) P(A^c)

が成り立ちます。矩形では「陽性帯 = 病気&陽性セル + 健康&陽性セル」と読みます。検算: 0.90×0.01+0.09×0.99=0.009+0.0891=0.09810.90 \times 0.01 + 0.09 \times 0.99 = 0.009 + 0.0891 = 0.0981。この分解を分母に代入すると、ベイズの定理の展開形になります。

P(AB)=P(BA)P(A)P(BA)P(A)+P(BAc)P(Ac)P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B \mid A) P(A) + P(B \mid A^c) P(A^c)}

数値を代入します: P(病気陽性)=0.009/(0.009+0.0891)=0.009/0.09810.0917P(\text{病気} \mid \text{陽性}) = 0.009 / (0.009 + 0.0891) = 0.009 / 0.0981 \approx 0.0917。前節の矩形面積と同じ答えです。

核心

ベイズの定理は、同じ矩形を「先に横切る(病気帯 → 陽性)」と「先に縦切る(陽性帯 → 病気)」の 2 通りに読んだときの整合性が要求する公式です。条件付き確率の定義と乗法定理の対称性から 2 行で導かれる初等的命題であり、哲学的な内容は定理自体にではなく事前確率 P(A)P(A) の解釈にあります(頻度主義 vs ベイズ主義の論争については補足記事 stats-supplement-bayes-history を参照してください)。

なぜ「陽性 → 病気」と「病気 → 陽性」が違うのか

「90% 当たる検査」という言い方を素朴に受け取ると、「病気 → 陽性」も「陽性 → 病気」も同じ 90% になりそうだと感じます。感度(病気 → 陽性)が 90% なのだから、陽性 → 病気も 90% でしょう、と。この直感は系統的に外れます。

矩形を見ると理由がわかります。「病気かつ陽性」のセル面積は 0.009 です。このセルを病気の縦帯(面積 0.01)で割ると感度 0.90 になります。同じセルを陽性の横帯(面積 0.0981)で割ると事後確率 0.0917 になります。同じセルを、面積の違う 2 つの帯で割るから、比が変わります。

縦帯と横帯の面積差病気帯面積 0.01← 陽性帯(面積 0.0981)→同じセル(0.009)を何で割るか÷ 病気帯(0.01)→ 感度 0.90÷ 陽性帯(0.0981)→ 事後確率 0.0917

図の読み方: 赤の縦帯が「病気帯」(幅 1%)、青の横帯が「陽性帯」(幅 9.8%)です。交差する小さな赤セルが「病気かつ陽性」(面積 0.009)で、これを赤帯で割るか青帯で割るかで違う比が出ます。

分母が 1% か 9.8% かによって、同じ分子(0.009)から出てくる比が 10 倍近く変わります。有病率が小さいほど、「病気帯」は細くなり、「陽性帯」との面積差が広がります。

有病率を 1% から 50% に上げると何が変わるでしょうか。感度 90%・特異度 91% を固定して計算すると、事後確率0.50×0.90/(0.50×0.90+0.50×0.09)=0.45/0.4950.9090.50 \times 0.90 / (0.50 \times 0.90 + 0.50 \times 0.09) = 0.45 / 0.495 \approx 0.909、約 91% になります。有病率 1% では 9.2%、有病率 50% では 91% です。感度と特異度が全く同じでも、有病率が 50 倍になると事後確率が 10 倍近く変わります。

基準率の無視

事前確率基準率)が小さい場合、P(AB)P(A \mid B)P(BA)P(B \mid A) は大きく違う値をとります。有病率 1% と感度 90% の組み合わせでは、両者の差は 約 81 ポイントになります。この錯誤は base rate fallacy基準率の無視)と呼ばれ、Kahneman と Tversky が 1973 年に実証した古典的バイアスです。医療診断・法廷証拠・スパム判定の現場で繰り返し観察されます。詳細は補足記事 stats-supplement-base-rate-fallacy を参照してください。

事前確率事後確率: 情報を受け取って更新する

この 81 ポイントの乖離は、情報を受け取る前後で確率がどう動くかを整理すれば自然に見えてきます。検査を受ける前、患者が属する集団の有病率は 1% です。この集団的な情報だけを持った状態での確率が事前確率 P(病気)=0.01P(\text{病気}) = 0.01 です。患者個人について他に情報がなければ、これが最良の確率の推定値になります。

検査結果「陽性」を受け取った瞬間、確率は P(病気陽性)0.0917P(\text{病気} \mid \text{陽性}) \approx 0.0917(約 9.2%)に更新されます。事前の 1% から事後の 9.2% へ、9 倍以上の上昇です。しかし依然として 10% を切ります。陽性という情報は「病気の可能性を 9 倍に高めた」が、「病気だと確定した」わけではありません。

物理的に何かが変わったわけではありません。患者の体内の細胞は検査の前後で同じ状態にあります。変わったのは観測者(医師や患者本人)の知識状態です。確率 PP は世界の物理的状態を表すのではなく、観測者が持つ情報を反映する数値です。ですから「情報が増えると確率が変わる」のは当たり前であり、矛盾ではありません。

もし同じ患者が別の独立した検査で再び陽性になれば、その結果を新たな情報として取り込んで確率をさらに更新できます。最初の検査結果を新しい事前確率 9.2%(≈ 0.0917)に置き、2 回目の陽性という情報をベイズの定理で処理すれば P(病気陽性1,陽性2)P(\text{病気} \mid \text{陽性}_1, \text{陽性}_2) が得られます。このような逐次的な確率の更新(逐次ベイズ更新)は stats-17 で本格的に展開します。

独立性: 条件付けても確率が変わらない関係

確率の更新が機能するのは、病気と検査結果が独立でないことが前提です。数学的な定義としては P(AB)=P(A)P(B)P(A \cap B) = P(A) P(B) の方が普遍的です。P(B)=0P(B) = 0 の場合の処理、対称性、3 事象以上への拡張のいずれでも扱いやすいです。一方、意味解釈としては P(AB)=P(A)P(A \mid B) = P(A) の方が直接的で、「BB が起きたという情報を得ても AA の確率が変わらない」と読めます。本記事では意味解釈を主軸にしますが、教科書定義の数学的優位性は否定しません。

矩形では「縦帯のどこを切っても、上下の比率(陽性の割合)が同じ」状態です。病気帯でも健康帯でも、陽性の割合が全く同じなら「病気かどうか」と「検査結果」は独立です。これは「検査が全く役に立たない」状態を意味します。乳がん検査の例で言えば、もし独立だったら P(病気陽性)=P(病気)=0.01P(\text{病気} \mid \text{陽性}) = P(\text{病気}) = 0.01 となり、検査は有病率の情報を何も追加しません。

P(AB)=P(A)P(A \mid B) = P(A) の両辺に P(B)P(B) を掛けると P(AB)=P(A)P(B)P(A \cap B) = P(A) P(B) が出ます。両者は同値であり、どちらを定義と呼ぶかは文脈次第です。独立性を「掛け算で求まる」とだけ覚えてしまうと、「情報が無意味」という核心を見落とします。

独立性排反性は全く別の概念です。排反とは AB=A \cap B = \emptyset(両方は同時に起きない)という条件で、確率で書くと P(AB)=0P(A \cap B) = 0 です。排反な事象は「一方が起きた瞬間にもう一方が起きないと確定する」という最も強い情報伝達をします。P(AB)=0P(A)P(A \mid B) = 0 \ne P(A) ですから、排反な事象は独立ではありません。P(A)>0P(A) > 0 かつ P(B)>0P(B) > 0 ならば、排反事象は必ず従属です。

独立性の意味

独立性 P(AB)=P(A)P(A \mid B) = P(A) は「条件付けても情報が運ばれない関係」を指します。これは排反AB=A \cap B = \emptyset(一方が起きたら他方は絶対に起きない)とは正反対の概念です。排反は最強の(負の)情報伝達であり、独立ではありません。

矩形分割で動かす: 事前確率尤度のスライダー

下のスライダーで有病率・感度・特異度を動かすと、各セルの面積と陽性的中率(事後確率)がリアルタイムに変わります。初期値は下表の Scene A(有病率 1%・感度 90%・特異度 91% → 事後確率 9.2%)に合わせてあります。

触って確かめる:有病率が低いと、高精度検査でも陽性的中率は低い

  • 陽性かつ病気(真陽性)
  • 陽性かつ健康(偽陽性)
触って確かめる:有病率が低いと、高精度検査でも陽性的中率は低い病気健康← 有病率 1.0% →横幅 = その群の人数割合

陽性的中率 P(病気|陽性) は「緑(真陽性)の面積 ÷ 陽性(緑+赤)の面積合計」。有病率を下げると病気の列が細くなり、緑の面積が痩せて赤に埋もれる。検査の精度を上げても、有病率が低ければ的中率は上がりにくい。

陽性的中率 P(病気|陽性)
9.2%
検査が陽性になる割合
9.8%
陽性のうち偽陽性の割合
90.8%

続く 3 枚は代表的な設定 A/B/C のスナップショットです。有病率と特異度を動かしたときの事後確率の変化を、固定の数値で確認できます(感度 90% は固定)。

Scene A: ベースライン(有病率 1%、特異度 91%)Scene A: 有病率 1%・感度 90%・特異度 91% → 事後確率 9.2%↑ 病気帯陽性横帯 9.8%: 事後確率 = 0.009/0.0981 ≈ 9.2% Scene B: 有病率 10%(感度 90%、特異度 91% 固定)Scene B: 有病率 10%・感度 90%・特異度 91% → 事後確率 52.6%↑ 病気帯陽性横帯 17.1%: 事後確率 = 0.090/0.171 ≈ 52.6%

Scene B では赤の病気縦帯が Scene A の 10 倍の幅になり、陽性横帯の中で病気セルが占める比率が大きく上昇して事後確率 52.6% に届きます。

Scene C: 特異度 99%(有病率 1%、感度 90% 固定)Scene C: 有病率 1%・感度 90%・特異度 99% → 事後確率 47.6%↑ 病気帯陽性横帯 1.9%: 事後確率 = 0.009/0.0189 ≈ 47.6%

Scene C では青の陽性横帯の高さが Scene A より低くなり、健康セルの陽性が縮小して事後確率が 47.6% まで上がります。

図の読み方: 3 枚とも横方向が有病状態(左が病気)、縦方向が検査結果(上が陽性)です。赤帯(病気帯)の幅が有病率、青帯(陽性横帯)の高さが陽性になる確率に対応します。事後確率は「赤帯と青帯が重なるセル」を「青帯全体」で割った比です。

Scene有病率感度特異度事後確率
A(ベースライン)1%90%91%約 9.2%
B(有病率 10 倍)10%90%91%約 52.6%
C(特異度 99%)1%90%99%約 47.6%

Scene A → B では有病率を 10 倍にしました。赤帯が太くなり、陽性帯の中で病気セルの割合が大きく増えます。結果として事後確率は 9.2% から 52.6% に、43.4 ポイント上昇します。Scene A → C では特異度を 91% から 99% に上げました。健康な人が陽性になる確率(偽陽性率)が 9% から 1% に下がり、陽性帯が薄くなります。その中で病気セルの相対的な割合が上がり、事後確率が 9.2% から 47.6% になります。

参考: 感度を 90% から 99% に上げた場合(有病率 1%・特異度 91% 固定)、事後確率0.99×0.01/(0.99×0.01+0.09×0.99)0.0990.99 \times 0.01 / (0.99 \times 0.01 + 0.09 \times 0.99) \approx 0.099 で約 9.9% にとどまります。感度は有病率や特異度と比べて事後確率をほとんど動かしません。

ベイズの定理は有病率・感度・特異度の 3 数を結ぶ関係式です。3 数のうち 1 つを変えるだけで事後確率が 10 倍規模で変わります。特に有病率(基準率)は、直感で軽視されやすいですが実際には事後確率を最も大きく動かす変数です。

読み取り方のポイント

事後確率を最も大きく動かすのは有病率(基準率)です。感度を同じだけ上げても事後確率はほとんど動きません。「感度 90%」という検査の精度より、「有病率 1%」という前提の方が結果を支配しています。

金融現場での使われ方

信用スコアの更新にベイズの定理が使われます。融資審査では「過去の返済実績」という情報(尤度)を受け取るたびに事前の信用度(事前確率)を事後確率に更新し、与信限度を見直します。カードの取引履歴が積み上がるほど、事後確率の推定精度は高まります。

シグナル統合ではベイズの逐次更新が利用されます。モメンタム・バリュー・クオリティの 3 つのファクターシグナルを独立に観測した場合、各シグナルを尤度として順次取り込み、「当該銘柄がリターン上位」という事象の事後確率を更新できます。1990 年に Goldman Sachs の Fischer Black と Robert Litterman が開発した Black-Litterman モデルは、市場均衡(事前確率)とアナリスト見解(尤度)をベイズ的に統合して事後リターン分布を導く実務的な枠組みです。条件付き VaR(CVaR)については stats-18 でベイズの条件付き期待値 E[XB]E[X \mid B] として再登場します。

ベイズ更新の本質

融資審査・ファクター統合・条件付き VaR は、どれも「新しい情報を得るたびに確率を掛け算で更新する」という同じ操作です。事前確率が精緻なほど、情報 1 件で動く事後確率は小さくなります。

次に学ぶこと

stats-08 では大数の法則と中心極限定理を扱います。本記事で確立した確率の言語(P(A)P(A), P(AB)P(A \mid B), P(AB)P(A \cap B))はそのまま stats-08 でも使います。

Part 5(stats-17 ベイズ更新・stats-18 条件付き期待値)で、本記事の条件付き確率の枠組みが連続確率へ一般化され、E[XB]E[X \mid B] の形で本格的に展開します。

シェアポストブックマーク
この記事は役に立ちましたか?