条件付き確率とベイズ

回 4-3 分野 4 場合の数と確率

条件付き確率 P(A⁠|B) は、B が起きたと分かったうえで A が起きる確率で、P(A⁠|B) = P(A かつ B) ÷ P(B) で出します。かかっている人が 1% の病気を、感度 99%、特異度 99% の検査で調べると、陽性の人のうち本当にかかっている人は 50% です。1 万人で数えると、陽性は本当の 99 人と、誤りの 99 人だからです。

条件付き確率とベイズの定理を、1 万人の表を Python で数えた数と、式で出した数の両方で確かめます。

99% 当たる検査で陽性なら、本当にかかっているのか

かかっている人が 1% の病気を、99% 当たる検査で調べたとします。陽性と出た人のうち、本当にかかっている人は 50% です。99% ではありません。

この食い違いを解くのが、条件付き確率です。「陽性と分かったうえで、かかっている確率」は、「かかっているうえで、陽性と出る確率」と別の数です。2 つを取り違えると、判断が大きく外れます。

迷惑メールの判定、不正な利用の検知、監視の警報も、同じ形をしています。この回では、1 万人の表を Python で数え、式で出した数と同じになるかを確かめます。ここでの病気と検査の数は、計算のための作り話です。

条件付き確率とベイズの定理

条件付き確率の式

B が起きたと分かったうえで A が起きる確率を、条件付き確率と呼び、P(A⁠|B) と書きます。縦の線の右が「分かっていること」、左が「知りたいこと」です。

P(A⁠|B) = P(A かつ B) ÷ P(B)

全部の場合から、B が起きた場合だけに絞り、その中で A も起きている割合を出す、という意味です。どの場合も同じくらい起こるなら、(A かつ B の数) ÷ (B の数) と数でも出せます。P(B) が 0 のときは、絞った先に何も無いので決まりません。

サイコロで、偶数が出たと分かったうえで 4 以上の確率は、偶数の 2、4、6 のうち 4 以上が 4 と 6 なので 2/3 です。

どんな問題で条件付き確率を使うか

問題文に次の言い方があれば、条件付き確率です。

  • 「〜と分かったとき」「〜だったとき」
  • 「〜のうち」「〜の中で」
  • 「〜という条件のもとで」

どれも、全体を「分かったこと」に絞ってから割合を出せ、という意味です。上のサイコロなら、「偶数が出たと分かったとき」で全体が 6 通りから 3 通りに縮み、その中で 4 以上を数えます。

乗法定理と独立

式を書き換えると、A と B が両方起きる確率が出ます。

P(A かつ B) = P(B) × P(A⁠|B)

これを乗法定理と呼びます。P(B) が 0 でないとき、B が起きても起きなくても A の確率が変わらない、つまり P(A⁠|B) = P(A) なら、A と B は独立と言います。独立なら P(A かつ B) = P(A) × P(B) です。サイコロを 2 回振る 1 回目と 2 回目は独立です。

1 万人の表で数える

検査の良さを表す数は 2 つあります。感度は、かかっている人を陽性と出す割合です。特異度は、かかっていない人を陰性と出す割合です。「精度 99%」と 1 つだけ言われたら、どちらの数かを確かめます。

有病率 1%、感度 99%、特異度 99% で、1 万人を表にします。

陽性陰性合計
かかっている991100
かかっていない999,8019,900
合計1989,80210,000

かかっていない 9,900 人の 1% にあたる 99 人が、誤って陽性と出ます (偽陽性)。陽性 198 人のうち本当にかかっているのは 99 人で、99 ÷ 198 = 50% です。

ベイズの定理

表で数えたことを式にしたのが、ベイズの定理です。

P(A⁠|B) = P(B⁠|A) × P(A) ÷ P(B)

P(B) は、A のときと A でないときに分けて足します (全確率の定理)。

P(B) = P(B⁠|A) × P(A) + P(B⁠|A でない) × P(A でない)

検査なら、A が「かかっている」、B が「陽性」です。P(陽性) = 0.99 × 0.01 + 0.01 × 0.99 = 0.0198 で、P(かかっている⁠|陽性) = 0.99 × 0.01 ÷ 0.0198 = 0.5 です。

P(A) を事前確率 (調べる前の見込み)、P(A⁠|B) を事後確率 (結果を見たあとの見込み) と呼びます。ベイズの定理は、結果を見て見込みを更新する式です。

動かして確かめる

1 本目は、1 万人を 1 人ずつ並べて、表のマスごとに数えます。人の並びは、決まった割合どおりに作ります (乱数は使いません)。

動かす 1 万人を数えて表を作る

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

人数 10000
(True, True) 99
(False, True) 99
陽性 198
陽性で本当に 0.5

陽性の人だけに絞る (全体が「陽性」に縮む) と 198 人で、そのうち本当にかかっているのは 99 人、割合は 0.5 です。

2 本目は、ベイズの定理の式で同じ数を出し、有病率を変えます。Fraction は分数を誤差なしで持つ型です。

動かす 有病率を変えてベイズの定理で出す

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

有病率 1/1000 11/122 0.090
有病率 1/100 1/2 0.500
有病率 1/10 11/12 0.917
有病率 1/2 99/100 0.990

有病率 1/100 のとき 1/2 で、表と同じです。有病率が 1/1000 だと陽性の人の約 9% しか本当にかかっておらず、1/2 (50%) だと 99% です。同じ検査でも、調べる前の見込みで答えが大きく変わります。

3 本目は、陽性の人にもう一度、別の検査をしたときです。1 回目の答え 50% を、2 回目の事前確率にします。かかっているかどうかが同じなら、1 回目の結果は 2 回目の結果に影響しない (条件付きで独立) と仮定します。

動かす 2 回続けて陽性なら

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

1 回陽性 1/2 0.5000
2 回陽性 99/100 0.9900
3 回陽性 9801/9802 0.9999

1 回目で 50%、2 回目で 99%、3 回目で約 99.99% です。結果を見るたびに見込みを更新するのが、ベイズの考え方です。

4 本目は、乱数で確かめます。3 つの扉の 1 つに当たりがあり、1 つ選んだあとで、司会者が残りの外れの扉を 1 つ開けます。選び直すと得かどうかを、1 万回試します。モンティ・ホール問題と呼ばれる、条件付き確率の有名な問題です。種 (seed) を決めておくと、何度動かしても同じ結果が出ます。

動かす モンティ・ホール問題を 1 万回試す

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

そのまま 0.3332
選び直す 0.6668

そのままだと約 1/3、選び直すと約 2/3 です。最初の選び方が当たっている確率は 1/3 のままで、司会者が外れを開けたという条件で、残りの扉に 2/3 が移ります。

条件付き確率で外れる所

P(A⁠|B) と P(B⁠|A) を取り違える

「かかっている人の 99% が陽性」と「陽性の人の 99% がかかっている」は別の文です。前者は P(陽性⁠|かかっている) で、後者は P(かかっている⁠|陽性) です。上の例では前者が 99%、後者が 50% でした。報告やダッシュボードで「検知率 99%」と書くときは、どちらの向きかを書き添えます。

元の起こりやすさを忘れる

検査の感度と特異度だけを見て、有病率を見落とすと、答えが大きく外れます。この見落としは「基準率の無視」と呼ばれます。めったに起きない事を探す仕組みほど、陽性のうち誤りの割合が増えます。

独立と決めつける

3 本目のコードは、かかっているかどうかが同じなら、2 回の検査の結果は互いに関係しない (条件付きで独立) と仮定しました。同じ理由で誤る検査を 2 回しても、確率は掛け算のとおりには下がりません。独立かどうかは、データで確かめるまで仮定です。

条件の確率が 0

P(B) = 0 のとき、P(A⁠|B) は決まりません。Python の整数や Fraction で割り算をすると、0 で割るエラー (ZeroDivisionError) になります。NumPy の小数の配列では、エラーではなく nan (数でない値) と警告になり、気付きにくくなります。データで数えるときは、条件に合う件数が 0 の場合を先に分けます。

仕事でどう使うか

条件付き確率とベイズの定理を使う場面は、次の通りです。

  • 迷惑メールの判定。「当選」のような語が入っているという条件で、迷惑メールである確率を出す。迷惑メールかどうかが決まれば語どうしは関係しない (条件付きで独立) と見て、語ごとの確率を掛け合わせる方法を、ナイーブベイズと呼ぶ
  • 監視の警報と不正の検知。めったに起きない障害や不正を探すと、警報の多くが誤報になる。1 万件の表を作り、警報のうち本物の割合を先に見積もる
  • 機械学習の評価。陽性と出した物のうち本当に陽性の割合 (適合率) と、本当の陽性のうち陽性と出せた割合 (再現率) は、条件付き確率の向きの違いそのもの
  • A/B テストとベイズ統計。結果を見るたびに、施策が効いている見込みを更新する
  • 推薦。この商品を買った人が、別の商品も買う確率を出す

試験の形で練習するなら、統計検定 2 級の練習問題で、検査の陽性の問題を含む、出題範囲の全体から選んだ問題を 4 択で解けます。この回は表とコードで考え方を確かめる回で、練習問題と同じ問題は繰り返していません。

よくある問い

条件付き確率の公式はどう覚えればいいですか

「分かっている方で割る」と覚えます。P(A⁠|B) は B が分かっているので、P(A かつ B) を P(B) で割ります。表で考えるなら、B の行か列だけを残し、その中で A の割合を出します。

P(A かつ B) と P(A⁠|B) の違いは何ですか

P(A かつ B) は、全部の中で A と B が両方起きる割合です。P(A⁠|B) は、B が起きた物だけの中で A が起きる割合です。検査の例では、P(かかっていて陽性) は 1 万人中 99 人で 0.0099、P(かかっている⁠|陽性) は陽性 198 人中 99 人で 0.5 です。

くじを引く順番で当たる確率は変わりますか

変わりません。10 本中 3 本が当たりのくじを、A、B の順に戻さずに引くとき、B が当たる確率は、A が当たった場合と外れた場合に分けて 3/10 × 2/9 + 7/10 × 3/9 = 27/90 = 3/10 です。前の人の結果を知らなければ、どの順番でも同じです。前の人の結果を知ったあとなら、条件付き確率に変わります。

ベイズの定理は何の役に立ちますか

「原因から結果」の確率は分かっていて、「結果から原因」の確率を知りたいときに使います。検査なら、かかっている人が陽性と出る確率は分かっていて、陽性の人がかかっている確率を知りたい、という場面です。

2 枚のコインで少なくとも 1 枚が表なら、2 枚とも表の確率は

表と裏が同じ確率で、2 枚が互いに関係しないとすると、1/3 です。2 枚の出方は (表, 表)、(表, 裏)、(裏, 表)、(裏, 裏) の 4 通りで、「少なくとも 1 枚が表」に絞ると (裏, 裏) を除いた 3 通りが残り、そのうち 2 枚とも表は 1 通りだからです。「1 枚目が表と分かった」なら、残りは 2 枚目の出方だけなので 1/2 です。どちらの条件で絞ったかで答えが変わります。

「2 人の子のうち少なくとも 1 人が男の子なら、2 人とも男の子の確率は」も、男女が同じ確率で、2 人が互いに関係しないとすれば、同じ形で 1/3 です。「上の子が男の子と分かった」なら 1/2 です。

確認クイズ

答えだと思う選択肢を押すと、その場で正誤と理由が開きます。3 問すべてに正しく答えると、この回は修了で、石が緑に変わります (この端末のブラウザに残ります)。間違えた問いは、あとから解き直せます。

1 問目

有病率 1%、感度 99%、特異度 99% の検査で陽性と出ました。本当にかかっている確率に一番近いのはどれですか。

2 問目

P(A⁠|B) = P(A) が成り立つとき、正しいのはどれですか。

3 問目

1000 通のメールのうち、「当選」の語が入っている物で、迷惑メールの割合を出します。このコードを動かすと何が出ますか。

# 1000 通のうち迷惑メール 200
# 「当選」入りの迷惑 120 通
# 「当選」入りの普通 40 通
spam_word = 120
ham_word = 40
print(spam_word /
      (spam_word + ham_word))

説明課題

「99% 当たる検査で陽性と出ても、本当にかかっている確率が 50% になることがある理由」を、1 万人の表の数を使って 3 文で説明してください。書いたら、下の模範解答を開いて比べてください。

模範解答

自分の説明を書いてから開いて、比べてください。

この回の先の一歩

警報や判定の「当たった割合」を、元の起こりやすさから出せると、誤報だらけの仕組みを作る前に気付けます。いまの自分が転職までの道のどの段にいるかは、転職診断で確かめられます。

もっと深く

この回の続きを、ゆめさくのコースの章や道具で深められます。頁の中の確認クイズに答えたあと、手を動かす量を増やしたいときに使ってください。

一次資料

どれも 2026年10月30日に開いて、題と中身を確かめました。

次へ

分野 4 場合の数と確率の回

  1. 4-1場合の数と二項係数順列、組み合わせ、2^n 通り頁で読む
  2. 4-2確率と期待値確率変数、期待値、当たりまでの平均回数頁で読む
  3. 4-3条件付き確率とベイズ条件付き確率、ベイズの定理、偽陽性この回

分野 4 の頁へ戻るほかの分野を見る