ベイズの定理
Bayes' Theorem ・ べいずのていり
結果から原因の確率をさかのぼる定理。証拠で信念を更新する計算規則
✦ 30秒で試す — 航海精度99%の検査で陽性でも、病気とは限らない検査で陽性と出た人が、本当に病気である確率は?予想してみる概要
ベイズの定理は、条件付き確率の向きを逆転させる定理です。「原因があるとき結果が起きる確率」から「結果が観測されたとき、その原因である確率」をさかのぼって計算します。たとえば「病気ならば検査で陽性になる確率」は臨床試験で分かりますが、患者が本当に知りたいのは逆向きの「陽性だったとき、実際に病気である確率」です。記号で書けば P(陽性 | 病気) と P(病気 | 陽性) で、縦棒の左右を入れ替えただけに見えるこの2つは、直感に反してまったく別の値になり得ます。その橋渡しをするのがベイズの定理です。
定理の中身を言葉で書くと、「仮説の事後確率は、事前確率 × その仮説のもとで証拠が観測される確率(尤度)に比例する」となります。証拠を見る前の信念(事前確率)に、証拠との整合度(尤度)を掛けて、証拠を見た後の信念(事後確率)へ更新する——つまりベイズの定理は「証拠によって信念を更新する計算規則」だと言えます。
この「更新」という見方が、ベイズの定理を単なる公式以上の存在にしています。迷惑メールフィルタ、医療診断、機械学習の分類器、A/Bテストのベイズ流評価まで、「データを見て考えを改める」あらゆる推論の数学的な骨格がここにあります。
なぜ生まれたか
18世紀までの確率論は「原因から結果へ」の一方通行でした。「歪みのないサイコロを振ったら6が出る確率」のように、仕組み(原因)が分かっている前提で結果を予測することはできても、科学や実生活の問いはたいてい逆向きです。「観測されたデータから、その背後の仕組みについて何が言えるか」——この「逆確率」の問題には計算の枠組みがありませんでした。
イギリスの牧師トーマス・ベイズは、この逆向きの推論を確率の計算に載せる方法を考え、その論文が死後の1763年に友人リチャード・プライスの手で発表されました。のちにラプラスが独立に同じ原理へ到達し、一般的な形に整備して天文学や人口統計のデータ解析に応用します。「結果から原因を推し量る」ことが確率計算になったことで、確率論は賭け事の予測から「データにもとづく科学的推論」の道具へと役割を広げました。
ただし、定理を使うには「証拠を見る前の確率(事前確率)」を与えなければなりません。検査の例なら有病率という客観的な数字がありますが、「この仮説が正しい事前確率」のようなものには主観が入り得ます。この点をめぐって20世紀には、確率を長期的な頻度とみなす立場との間で統計学を二分する論争が続きました(頻度主義とベイズ主義)。計算機が発達した20世紀末以降、ベイズ流の手法は機械学習の隆盛とともに主流の一角へ返り咲いています。
詳細
定理のかたち
記号で書くと P(A|B) = P(B|A) × P(A) ÷ P(B) です。A を仮説(病気である、迷惑メールである)、B を証拠(陽性が出た、特定の単語を含む)と読むと、それぞれの部品には名前が付いています。P(A) が事前確率(証拠を見る前に仮説を信じる度合い)、P(B|A) が尤度(仮説が正しいときにその証拠が観測される確率)、P(A|B) が事後確率(証拠を見た後の信じる度合い)。分母の P(B) は「その証拠があらゆる経路で観測される確率の合計」で、P(B) = P(B|A)P(A) + P(B|Aでない)P(Aでない) と、仮説が正しい経路と誤っている経路の和に分解できます。事後確率の合計を1に揃える正規化の役割を果たす項です。
導出は条件付き確率の定義から2行で済みます。「A かつ B」の確率は P(A|B)P(B) とも P(B|A)P(A) とも書けるので、両者を等しいと置いて P(B) で割るだけです。定理そのものは誰も異論のない数学的事実で、驚くべきなのは式の難しさではなく、その答えが直感とどれほど食い違うかのほうです。
具体例 — 検査陽性でも病気とは限らない
定理の威力と直感の危うさが最もよく分かるのが、検査の例です。有病率 1%(10,000人に100人)の病気に対し、感度99%(病気なら99%陽性)、偽陽性率5%(健康でも5%は誤って陽性)の検査を考えます。確率のまま計算するより、10,000人の集団に置き換えて人数で数え上げる(自然頻度で考える)と見通しがよくなります。
「感度99%の検査で陽性」と聞くと99%病気だと感じますが、事後確率は約17%。病気の人が少ない(事前確率が低い)ため、たとえ偽陽性率が5%でも、健康な多数派から出る偽陽性の人数が真陽性を圧倒するのです。事前確率を無視して尤度99%に飛びつく誤りは基準率の錯誤と呼ばれ、医療だけでなく異常検知・不正検出・監査など「まれな事象を探す」あらゆる場面で繰り返されている落とし穴です。
下の部品では1000人を点で表し、区切りの丸をつかんで有病率・感度・偽陽性率を動かせます。「陽性だった人だけ見る」で陽性者を集めると、その中の病気の人(金)の割合がそのまま事後確率です。感度や偽陽性率を少々いじるより、有病率を動かしたときのほうが事後確率が大きく揺れることを確かめてみてください。
1000人のうち病気の人(金)は 10人。上の丸を左右に動かすと有病率が変わります。「検査する」で全員を検査にかけてみましょう。
金 = 病気の人、白 = 健康な人、赤 = 健康なのに陽性(偽陽性)。明るい点が陽性、暗い点が陰性
オッズで書くと「掛け算1回」になる
実務で暗算しやすいのがオッズ形式です。オッズは「そうである確率 ÷ そうでない確率」で、ベイズの定理は「事後オッズ = 事前オッズ × 尤度比」と書き直せます。尤度比は P(陽性|病気) ÷ P(陽性|健康) = 0.99 ÷ 0.05 = 19.8 で、検査の「証拠としての強さ」を1つの数にしたものです。有病率1%なら事前オッズは 1 : 99。これに 19.8 を掛けると 19.8 : 99 ≒ 1 : 5、確率に戻すと 1/6 ≒ 17% です。事前オッズが小さすぎると、どれほど強い証拠を掛けても追いつかない——基準率の錯誤の正体が、掛け算1回で見えます。医療で「陽性尤度比」、機械学習で「対数オッズを足し合わせる」という言い方をするのは、この形が背景にあります。
逐次更新 — 事後確率は次の事前確率になる
ベイズの定理の実用上の要は、更新を繰り返せることです。1つ目の証拠で得た事後確率を、2つ目の証拠に対する事前確率として使えば、証拠が届くたびに信念を積み上げ式に精緻化できます。先の例なら、1回目の陽性で 1% → 17% に上がった確率は、2回目の検査も陽性なら約80%、3回目も陽性なら約99%まで上がります。上の部品の「陽性者をもう一度検査」で、この連鎖を点の入れ替わりとして追えます。
ただし、この計算は「2回の検査結果が、病気かどうかを条件として独立である」ことを前提にしています。同じ検査を同じ人に繰り返すと、偽陽性の原因(交差反応する体質など)も繰り返されるため、2回目の陽性は1回目ほどの情報を持ちません。実務では、原理の異なる別の検査で確認するのが定石です。迷惑メールフィルタが単語ごとの証拠を独立とみなして掛け合わせるナイーブベイズも、この「条件付き独立」という大胆な仮定の上に立っています。仮定が崩れていても分類の順位付けはそこそこ当たる一方、出てくる確率そのものは極端に振れやすい、という性質もここから来ています。
よくある取り違え
ベイズの定理が守ってくれる誤りは基準率の錯誤だけではありません。裁判で「無実の人がこの証拠と一致する確率は100万分の1」を「被告が無実である確率は100万分の1」と言い換えてしまう検察官の誤謬は、P(証拠|無実) と P(無実|証拠) の取り違えそのものです。人口が1億人いれば、証拠と一致する無実の人は約100人いる計算になります。同じ構造はp値の誤読にも現れます。p値は「帰無仮説が正しいとしたときの、データ以上に極端な結果の確率」であって、「帰無仮説が正しい確率」ではありません。後者を知りたければ事前確率を持ち込んでベイズの定理を回すしかない、というのがこの定理の教えです。
もう1つの落とし穴は、事前確率を「どの集団の」数字として置くかです。健診で無症状の人を検査するなら有病率は低いままですが、症状があって専門外来に来た人では事前確率がずっと高く、同じ検査の陽性がもつ意味は大きく変わります。事前確率は定数ではなく、「誰に検査を使うか」を映す数字です。
ベイズ統計という立場
定理自体に論争の余地はありません。論争的なのは、これを推測統計の原理に据えるベイズ統計という立場です。頻度主義の仮説検定が「仮説を固定してデータの出方を確率で評価する」のに対し、ベイズ統計は「パラメータや仮説そのものに確率を与え、データで更新する」ことを許します。1つの値ではなく値の分布に定理を適用したものが事前分布と事後分布の考え方で、その枠組み全体がベイズ推論です。その結果「この仮説が正しい確率は92%」という、直感的に欲しかった形の答えが出せる一方、出発点の事前確率の選び方に分析者の判断が入ります。かつては分母 P(B) の計算(多次元の積分)が壁でしたが、マルコフ連鎖モンテカルロ法(MCMC)と計算機の進歩で実用化が進み、現在では頻度主義と並ぶ標準的な選択肢として、A/Bテスト・自然言語処理・医療統計などで広く使われています。
試問
1000人のうち10人(有病率 1%)が病気の集団に検査を行い、陽性だった人の中身を数えます。有病率は 1% のままにしておいてください。動かすのは、「検査する」の段に出る感度(病気の人を陽性にする割合)と偽陽性率(健康な人を誤って陽性にする割合)の丸です。
1000人のうち病気の人(金)は 10人。上の丸を左右に動かすと有病率が変わります。「検査する」で全員を検査にかけてみましょう。
金 = 病気の人、白 = 健康な人、赤 = 健康なのに陽性(偽陽性)。明るい点が陽性、暗い点が陰性
