第03回 確率論の基礎(2):ベイズの定理の深掘り¶
10/13(火)Ⅲ講 13:00〜14:40・B402教室
「データで信念を更新する」。直感を裏切る 基準率の誤謬
今日のリンク
- 📊 スライドを開く
- 📓 Colabノートを開く(03_bayes.ipynb)
- 📝 課題を提出する(Moodle・第3回)
- 課題の本文はこのページの末尾にあります
- 🤖 NotebookLMで復習する(この回の内容をAIに質問できます)
考え方をガイドで確かめる
この回の考え方は、統計の考え方ガイドの「確率とベイズ」でも解説しています。霊長類のデータを動かしながら確かめられます。
この回のゴール¶
- ベイズの定理を理解する:\(P(H\mid D)=\dfrac{P(D\mid H)\,P(H)}{P(D)}\)
- 事前確率・尤度・事後確率の役割を説明できる
- 基準率の誤謬 と 陽性的中率 を理解し、「検査の精度」と「的中率」を混同しない
- 逐次更新(今日の事後=明日の事前)が学習の数理であることを知る
- 発展:ベイズの定理を条件付き確率の定義から導き、オッズ形式(事後オッズ=事前オッズ×尤度比)を自分で書ける
到達目標との対応:G1(条件付き確率とベイズの定理を理解し、情報の更新プロセスを説明できる) の本丸。
第2回の答案から ―― 冒頭で確認すること¶
第2回の課題(条件付き確率と独立)は、学生17名が提出し、記述は13名が満点だった。 減点した4名と、小テストの誤答に、共通する型が3つある。 どれも今日のベイズの定理に直接ひびくので、先に確認しておく。
① 分母をどこに取るか(小テスト A1 の誤答)¶
学生100人のうち、アルバイト30人、一人暮らし20人、両方12人。 このとき \(P(A\mid B)\)(一人暮らしの人がアルバイトをしている確率)はいくつか。
| 答え | 何の確率か | 計算 |
|---|---|---|
| 0.12 | \(P(A\cap B)\) ―― 100人のうち両方の人 | \(12 \div 100\) |
| 0.60 | \(P(A\mid B)\) ―― 一人暮らしの20人のうちアルバイトの人 | \(12 \div 20\) |
| 0.40 | \(P(B\mid A)\) ―― アルバイト30人のうち一人暮らしの人 | \(12 \div 30\) |
同じ12人を、3つの違う分母で割っている。どれを分母にするかで答えが3つに分かれる。 今日のベイズの定理は、まさにこの分母を取り替える計算である。
② 条件の名前で、求めた確率を呼んでしまう¶
次の書き方が複数見られた(教員の答案にも同じ言い間違いがあった)。
✗ このため、「少なくとも1人は女」という確率は 1/3
字義どおり読むと \(P(\text{少なくとも1人は女}) = 1/3\) になる。 だが実際は \(P(\text{少なくとも1人は女}) = 3/4\) である。1/3 なのは別のものだ。
○ 「少なくとも1人は女」という条件のもとで、「2人とも女」である確率が 1/3
これは今日いちばん危ない言い間違い
条件付き確率には条件と知りたいことの2つが入っている。 片方の名前だけで呼ぶと、どちらを指しているのか分からなくなる。
今日の検査の例でいえば、「陽性の確率は50%」と書くと間違いになる。 50%なのは「陽性という条件のもとで、病気である確率」であって、 陽性になる確率そのものは約2%である。
③ 記号の書き方・事象の立て方¶
| 書かれていたこと | 直し方 |
|---|---|
| \(P(A/B)\) と書いた | 条件付き確率は \(P(A\mid B)\)。縦棒は割り算ではない |
| \(A\)=「授業をとっている人(100人)」と定義した | \(A\)・\(B\) は出来事(事象)。人の集まりではない。「指名された人が履修者である」のように書く |
| 「それぞれ 1/4」を書かなかった | 4通りが等確率だからこそ、3通りに絞って 1/3 になる。等確率でなければこの計算はできない |
| 「従属だから因果関係がある」と読める書き方 | 従属は「一方を知るともう一方の確率が変わる」だけ。原因かどうかは問わない(第10回で扱う) |
第3回につながること¶
今日は \(P(\text{病気}\mid\text{陽性})\) と \(P(\text{陽性}\mid\text{病気})\) の取り違えが主題になる。 ①の「分母をどこに取るか」と②の「条件の名前で呼んでしまう」は、 どちらもこの取り違えと同じ構造である。第2回で引っかかった人は、今日も同じ場所で迷う。
1. 直感クイズ ―― 検査が陽性、あなたは病気か?¶
性能のとても良い検査がある。
- 感度 \(P(\text{陽性}\mid\text{病気})\):99%
- 特異度 \(P(\text{陰性}\mid\text{健康})\):99%
この病気は 100人に1人(有病率1%) がかかる。あなたは検査で 陽性 になった。
問い:あなたが本当に病気である確率は?
直感は「99%の精度だから99%くらい」と答える。だが正解は 約50% である。 検査の性能が低いのではない。50%という数字は、この有病率1%のもとでの答えであって、 「どんな病気でも五分五分」でも「検査が当てずっぽうと同じ」でもない(有病率を変えると下の第3節のように大きく変わる)。
自然頻度で考えるとわかる(100万人を検査)¶
| 人数 | うち陽性 | |
|---|---|---|
| 病気の人(1%) | 10,000 | 9,900(真陽性) |
| 健康な人(99%) | 990,000 | 9,900(偽陽性) |
陽性になった 19,800 人のうち、本当に病気なのは 9,900 人。だから
病気の人はそもそも少ないので、「健康なのに誤って陽性」の人が「本当に病気で陽性」と同じだけ出てしまう。検査の精度(99%)と陽性的中率(50%)はまったく別の数字だ。
今日の最重要ポイント
直感は \(P(\text{陽性}\mid\text{病気})=99\%\) を \(P(\text{病気}\mid\text{陽性})=99\%\) と取り違える。これは第2回でやった 条件付き確率の「向き」の混同そのもの。\(P(A\mid B)\) と \(P(B\mid A)\) は別物だった。
2. ベイズの定理¶
いまの計算を式にすると、ベイズの定理 になる。
| 要素 | 意味 | 検査の例 |
|---|---|---|
| 事前確率 \(P(H)\) | データを見る前の信念 | 有病率 1% |
| 尤度 \(P(D\mid H)\) | その仮説のもとでデータが出る確率 | 感度 99% |
| 事後確率 \(P(H\mid D)\) | データを見た後に更新した信念 | 陽性的中率 50% |
記号の対応(この回でずっと使う)
- \(H\) … 仮説(hypothesis)。この例では「病気である」
- \(\bar{H}\) … その否定。「健康である」
- \(D\) … 観測されたデータ(data)。この例では「検査が陽性」
検査の3つの数値は、この記号ではこう書ける。
| 検査の用語 | 記号 | 値 |
|---|---|---|
| 感度 | \(P(D\mid H)\) | 0.99 |
| 特異度 | \(P(\bar{D}\mid\bar{H})\) | 0.99 |
| 偽陽性率 | \(P(D\mid\bar{H}) = 1-\text{特異度}\) | 0.01 |
特異度は「健康な人を陰性と正しく言える確率」なので、健康な人が陽性になる確率は その余事象、つまり \(1-\) 特異度 \(=0.01\) になる。
さっきの計算を、そのまま定理に当てはめる¶
第1節で手計算した 100 万人の表は、ベイズの定理の部品そのものだった。 どの数字が式のどこに入るのかを、ひとつずつ対応させてみる。
| 式の部品 | 100万人の表のどこか | 値 |
|---|---|---|
| 事前確率 \(P(H)\) | 病気の人 10,000 ÷ 100万 | \(0.01\) |
| 尤度 \(P(D\mid H)\) | 病気で陽性 9,900 ÷ 病気 10,000 | \(0.99\) |
| 分母 \(P(D)\) | 陽性になった人 19,800 ÷ 100万 | \(0.0198\) |
あとは代入するだけである。
この式は、第1節でやった割り算と同じことをしている。
- 分子 \(0.99 \times 0.01 = 0.0099\) に 100万を掛けると 9,900人(真陽性)
- 分母 \(0.0198\) に 100万を掛けると 19,800人(陽性になった人ぜんぶ)
違うのは 人数で書くか、割合で書くか だけだ。 ベイズの定理は新しい計算を持ち込んだのではなく、 「陽性の人のうち、本当に病気の人はどれだけか」という同じ問いを、記号で書き直したものである。
分母の 0.0198 はどこから来たのか
有病率 1% と感度 99% は問題文に書いてあるが、\(P(D)=0.0198\) はどこにも書いていない。 これは自分で作る数字である。陽性になる道は
- 病気で陽性になる … \(0.99 \times 0.01 = 0.0099\)
- 健康なのに陽性になる … \(0.01 \times 0.99 = 0.0099\)
の2つしかないので、足して \(0.0198\)。この作り方が下の 導出② である。 ベイズの定理でいちばん手間がかかるのは、この分母を組み立てるところだと思っておくとよい。
ベイズの定理=データで信念を更新する計算。 事前 1% が、陽性というデータで 50% に更新された。
導出①:ベイズの定理は、定義を2通りに書いただけ
第2回の条件付き確率の定義を、2つの向きで書いてみる。
どちらにも同じ \(P(H\cap D)\) が現れている。2本目を \(P(H\cap D)\) について解くと \(P(H\cap D)=P(D\mid H)\,P(H)\)。これを1本目に代入すれば、
これがベイズの定理である。「定理」という名前がついているが、やったことは条件付き確率の定義を2通りに書いて、共通部分を消しただけで、新しい原理は何も使っていない。
第2回で「\(P(A\mid B)\) と \(P(B\mid A)\) は別物だ」と学んだ。ベイズの定理は、その続きとして「では両者はどう関係しているのか」に答えている。向きを逆にするには、事前確率 \(P(H)\) を掛けて \(P(D)\) で割ればよい ―― それだけのことである。
使った数学:条件付き確率の定義(第2回)と、式の代入(算数)。
導出②:分母 \(P(D)\) を開くと、偽陽性が姿を現す
分母の \(P(D)\) は「陽性になる確率」である。陽性になる道は2つしかない。本当に病気で陽性になるか、健康なのに誤って陽性になるか。この2つは重ならず、これで全部を尽くす。だから足せばよい(全確率の公式)。
数値を入れる。感度 \(P(D\mid H)=0.99\)、有病率 \(P(H)=0.01\)。特異度が 99% なので、健康な人が誤って陽性になる確率はその余事象で \(P(D\mid\bar{H})=1-0.99=0.01\)(偽陽性率)。
2つの項が ぴったり同じ大きさ になっている。したがって
上の自然頻度の表にある 9,900 と 9,900、合計 19,800 は、この式の各項に 100 万を掛けただけのものである。式と表は同じ計算をしている。
ここに基準率の誤謬の正体がある。偽陽性の 率 は 1% と小さい。しかしそれが掛かる相手(健康な人)は 99% と多い。小さい率 × 大きい人数 が、大きい率 × 小さい人数 に追いついてしまう。率だけを見て、その率が掛かる相手の大きさを見ないと、判断を誤る。
使った数学:全確率の公式(場合分けして足す)と、掛け算・割り算。
3. 基準率を動かすと、答えは激変する¶
同じ性能(感度99%・特異度99%)の検査でも、病気の珍しさ(基準率) が変われば陽性的中率はまるで違う。
| 有病率(基準率) | 陽性的中率 \(P(\text{病気}\mid\text{陽性})\) |
|---|---|
| 0.01% | 1.0% |
| 0.1% | 9.0% |
| 1% | 50.0% |
| 10% | 91.7% |
| 50% | 99.0% |
検査の性能は何も変わっていないのに、珍しい病気ほど陽性的中率は低い。直感がこれを外すのは、基準率(その事象がもともとどれくらい起こりやすいか)を無視するから ―― これを 基準率の誤謬(base rate fallacy) と呼ぶ。
応用が効く
迷惑メール判定、防犯カメラの顔認証、まれな不正の検知 ―― すべて同じ罠がある。「精度99%のAIが警告した」と聞いても、対象がもともと稀なら、警告の大半は誤検知かもしれない。
導出③:オッズで書くと、分母 \(P(D)\) が消える
「病気 \(H\)」と「健康 \(\bar{H}\)」の2つの仮説について、ベイズの定理をそれぞれ書き、比を取る。分母はどちらも同じ \(P(D)\) なので、割り算で消えてしまう。
言葉にすると、こうなる。
検査の例で確かめる。事前オッズは \(0.01/0.99 = 1/99\)。尤度比は 感度 ÷ 偽陽性率 で \(0.99/0.01 = 99\)。掛け合わせると
オッズ 1 は「病気と健康が五分五分」、確率に直すと \(1/(1+1)=1/2\)。導出②と同じ答えが、割り算ひとつで出た。
この形の利点は、2つの効き方が分離して見えることである。検査の性能は 尤度比 としてだけ効き、病気の珍しさは 事前オッズ としてだけ効く。前節の表で「検査の性能は何も変わっていないのに答えが激変する」のは、尤度比 99 を据え置いたまま、事前オッズだけを動かしているからである。
逐次更新は、尤度比を掛け続けるだけ
この形なら、次節の逐次更新も一行で書ける。検査を2回受けて2回とも陽性なら、尤度比をもう一度掛ければよい。
確率に直すと \(99/100 = 99\%\)。1回目の陽性では五分五分だったものが、2回目で 99% になる。「今日の事後は明日の事前」とは、オッズに尤度比を掛け足していくことである。
ただしこれは、2回の検査が 同じ真の状態のもとで条件付きに独立 であること、つまり
が成り立つことを使っている。「病気かどうかが決まっていれば、1回目の結果は2回目の出方に影響しない」という意味である。
注意したいのは、\(D_1\) と \(D_2\) そのものは独立ではないことである。1回目が陽性なら病気の可能性が上がり、 したがって2回目も陽性になりやすい(\(P(D_2\mid D_1) > P(D_2)\))。独立なのは「\(H\) を固定したとき」だけである。
この条件付き独立が崩れる例がある。同じ検体を同じ方法で二度測れば、1回目に誤らせた原因(検体の取り方、試薬の癖)が 2回目にも同じように効くので、\(H\) を固定しても2回の結果は連動する。そのときこの掛け算はできない(第2回)。
使った数学:ベイズの定理を2回書いて割り算(算数)。オッズと確率の変換 \(p = o/(1+o)\)。
4. 逐次更新 ―― 今日の事後は、明日の事前¶
ベイズの真価は、データが来るたびに信念を更新できること。今日の事後確率を明日の事前確率として使い、新しいデータでまた更新する。
例:あるコインの「表が出る確率 \(p\)」を当てたい。最初は何も分からない(一様な事前)。投げるたびに信念がどう締まるかをColabで見る。
数学的には、事前を \(\mathrm{Beta}(a,b)\) にすると、表 \(k\) 回・裏 \(n-k\) 回の観測で事後は \(\mathrm{Beta}(a+k,\;b+n-k)\) になる(共役事前)。
03_bayes.ipynb では、真の値 \(p=0.7\) のコインを投げ続けると、事後分布が回数とともに 0.7 の周りに締まっていく様子が見える。
グラフの横軸は「未知の表確率 \(p\) の候補」、縦軸はその候補あたりの 確からしさ(密度) で、ある区間の 下の面積 が
その区間に \(p\) が入る確率を表す。最初(0回)は真っ平らで、「\(p\) について何も分からない」状態を表している。
なお \(p=0.7\) はデータを作る側だけが知っている値であり、推定には観測した表・裏の回数しか使っていない。
「毎回かならず真値に近づく」のではない
Colabの乱数では、事後平均は 5回後 0.714 → 20回後 0.773 → 100回後 0.696 と動く。 20回後のほうが、5回後より真値 0.7 から離れている。計算の誤りではなく、標本のばらつきである。
言えるのは「このモデルが正しく、データが十分にあれば、真値の付近を絞り込める」であって、 「観測を増やすたびに必ず近づく」ではない。また一様な事前も「無知の唯一の表現」ではなく、今回置いた設定である。
それでも、長い目で見れば事前の思い込みはデータに押し流されていく。これが 学習 の数理的な姿だ。
第12〜13回では逆に、人々が互いを真似て 同じ情報ばかり を見ると、集団の信念が間違った方向に固まる(情報カスケード)。 問題は「依存したデータでは更新できない」ことではない。もとは1つの情報を、独立した別々の証拠だと思って重複して数えてしまうことである。 上の導出③で尤度比を2回掛けられたのは、2回の検査が条件付き独立だったからであって、同じ噂を10人から聞いても尤度比を10回掛けてはいけない。
今日のまとめ¶
| 用語 | 意味 |
|---|---|
| ベイズの定理 | \(P(H\mid D)=\dfrac{P(D\mid H)\,P(H)}{P(D)}\)。データで信念を更新する |
| 事前 / 尤度 / 事後 | 見る前の信念 / データの出やすさ / 更新後の信念 |
| 基準率の誤謬 | 事象のもともとの珍しさ(基準率)を無視する誤り |
| 陽性的中率 | \(P(\text{病気}\mid\text{陽性})\)。検査の精度とは別物 |
今日の課題(Moodle提出)¶
配点:100点(選択40点 + 記述60点)/ 提出先:Moodle / 提出期限:次回授業の開始時刻まで
第3回のColabノート 03_bayes.ipynb を上から実行し、結果を見たうえで答えること。
パートA:選択問題(各10点 ×4=40点)¶
A1. 感度99%・特異度99%の検査で、有病率が 1%(100人に1人) の病気のとき、陽性と出た人が本当に病気である確率(陽性的中率)に 最も近い のは?
- (ア) 約 1% (イ) 約 50% (ウ) 約 99%
A2. A1で陽性的中率が検査の精度(99%)より大きく下がる 主な理由 は?
- (ア) 検査の機械の誤差が大きいから
- (イ) 病気の人がもともと少ない(基準率が低い)ため、健康な人から出る偽陽性が、真陽性と同じくらいの人数になるから
- (ウ) 陽性的中率は常に50%になると決まっているから
A3. ベイズの定理 \(P(H\mid D)=\dfrac{P(D\mid H)P(H)}{P(D)}\) で、事前確率 にあたるのはどれか?
- (ア) \(P(H)\)(データを見る前の信念)
- (イ) \(P(D\mid H)\)(尤度)
- (ウ) \(P(H\mid D)\)(事後確率)
A4. 検査の例で、直感が「陽性なら99%病気だ」と誤るのは、2つの確率を混同しているからである。取り違えているペアとして正しいのは?
- (ア) \(P(\text{陽性}\mid\text{病気})\) と \(P(\text{病気}\mid\text{陽性})\) を取り違えている
- (イ) 事前確率と尤度が等しいと思い込んでいる
- (ウ) 感度と特異度を取り違えている
パートB:記述問題(AIフィードバック対象・60点)¶
B1.(30点) 感度99%・特異度99%という高性能の検査でも、有病率が1%の病気では陽性的中率が約50%にしかならない。なぜそうなるのか を、150〜250字程度で説明しなさい。次の2点に必ず触れること。
- 「基準率(有病率)」という言葉を使い、なぜ偽陽性が無視できないほど出るのか
- 直感が外す原因を、第2回で学んだ「条件付き確率の向き」と結びつけて
B2.(30点) ベイズの定理は「データで信念を更新する」道具だった。あなた自身の経験で、最初の思い込み(事前)が、新しい情報(データ)によって更新された例を1つ挙げ、次の2点を書きなさい。
- 最初どう思っていたか(事前)、どんな情報を得て(データ)、どう考えが変わったか(事後)
- もし「基準率(もともとの起こりやすさ)」を考えていれば、最初の思い込みは違っていたか
文字数の目安:B1・B2あわせて 300〜500字。コピペ・引き写しは評価しない。自分の言葉で書くこと。
字数は目安です。多少の過不足で減点はしません。見るのは、設問が挙げた要素(上の箇条書き)が書けているかどうかです。ただし要素が抜けていれば、その分は引きます。
次回予告
第4回「離散確率分布:二項分布・ポアソン分布」。「コインを10回投げて7回表。イカサマ?」 ―― 独立な試行を \(n\) 回くりかえすと、結果はどんな分布になるか。第2回で定義した「独立」が、分布の前提として効いてくる。