計算したいものを選んで、確率を入力してください。条件付き確率 P(B|A) は、教科書では P_A(B) と書きます(同じ意味です)。下の数式は入力欄と連動していて、数字の部分を直接書き換えても計算できます。
このページでできること
- \(P(A)\) と \(P(A \cap B)\) を入れるだけで、条件付き確率 \(P_{A}(B) = \dfrac{P(A \cap B)}{P(A)}\)(\(P(B \mid A)\) とも書きます)がその場で求められます
- ベイズの定理モードでは、原因の確率 \(P(A)\) と、原因の有無それぞれのもとで結果Bが起こる確率 \(P_{A}(B)\)・\(P_{\overline{A}}(B)\) から、「結果Bが起こったときに、原因がAである確率 \(P_{B}(A)\)」を逆算できます
- 全確率の定理で \(P(B)\) を組み立てる過程を、数値入りの途中式と樹形図・面積図で確認できます
- 答えは \(\dfrac{10}{109}\) のような約分済みの分数(厳密値)と、小数・百分率の両方で表示します
- 確率は 0.3・30%・3/10 のどの形でも入力できます。式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)付き
この計算は何の役に立つ?
「精度90%の検査で陽性」と聞くと90%該当していそうに感じますが、例えば該当する人が全体の1%という仮定で計算すると、陽性だったとき本当に該当している確率(陽性的中率)は約9%にとどまります。少ない「本当の陽性」が、大勢の中から出る「偽陽性」に埋もれてしまうからです。
これはベイズの定理の一番有名な例で、医療の現場でも「検査結果は事前確率とセットで解釈する」ことが基本とされています(実際の確率は検査や状況ごとに異なるので、この数値はあくまで計算例です)。
メールソフトの迷惑メール判定は、「迷惑メールにこの単語が現れる確率」と「普通のメールに現れる確率」から、ベイズの定理で「この単語を含むメールが迷惑メールである確率」を逆算する仕組み(ベイジアンフィルタ)が古典的な土台になっています。
「原因(迷惑メール)→結果(単語の出現)」の統計から「結果→原因」を推定する、ベイズの定理の教科書どおりの応用です。
製品の6割を作る機械X(不良率2%)と4割を作る機械Y(不良率5%)の工場で、検品で見つけた不良品が機械Xから来た確率は、ベイズの定理で \(\dfrac{0.6 \times 0.02}{0.6 \times 0.02 + 0.4 \times 0.05} = \dfrac{3}{8}\)(37.5%)と計算できます。
「不良品を見つけたら、どのラインを先に点検すべきか」という現場の優先順位付けが、勘ではなく数字で決められます。
10本中3本当たりのくじを戻さずに2本引くとき、2本とも当たる確率は \(\dfrac{3}{10} \times \dfrac{2}{9} = \dfrac{1}{15}\) です。1本目の結果で2本目の確率が変わる(独立でない)ので、条件付き確率と乗法定理の出番です。
トランプやカードゲームで「すでに見えた札」を踏まえて残りの山の確率を考えるのも、全く同じ計算です。
保険料の設定では、「事故を起こす確率」を一律に見るのではなく、年齢・運転歴・地域などの条件ごとの条件付き確率として見積もり、条件に応じた保険料の差に反映しています。
「条件が分かると確率が変わる」という条件付き確率の考え方そのものが、保険・ローン審査・信用スコアといった金融の仕組みを支えています。
式と図
用語・記号の解説
記号
| \(P(A)\) | ピー・エー | 事象Aが起こる確率。Pは確率を意味する英語 Probability の頭文字です。 |
| \(P_{A}(B)\) | ピー・エー・ビー (エーが起こったときにビーが起こる確率) | Aが起こったと分かっているときに、Bが起こる確率(条件付き確率)。右下の小さいAが「前提」を表します。日本の高校教科書で使われる書き方です。 |
| \(P(B \mid A)\) | ピー・ビー・ギブン・エー (エーのもとでのビーの確率) | \(P_{A}(B)\) と全く同じ意味の、もう一つの書き方。縦棒 \(\mid\) の右側が前提(条件)で、given(〜が与えられたとき)と読みます。大学や統計学の本ではこちらが主流です。 |
| \(\overline{A}\) | エー・バー(余事象) | Aの上に横棒を書いて「Aが起こらない」という事象(余事象)を表します。\(P(\overline{A}) = 1 - P(A)\) で求められます。 |
| \(\cap\) | キャップ(共通部分) | 「かつ」を表す記号。\(A \cap B\) は「AとBが両方起こる」という事象です。ベン図では2つの円の重なった部分にあたります。 |
| \(P(A \cap B)\) | ピー・エーかつビー | AとBが両方起こる確率(同時確率)。条件付き確率の分子になります。\(P(A)\) 以下の値にしかなりません(両方起こるのはAの一部だからです)。 |
用語
| 事象 | じしょう | 「サイコロで偶数が出る」「検査で陽性になる」のような、起こるか起こらないかが決まる出来事のこと。数学では出来事のことを「事象」と呼び、AやBという名前を付けて扱います。 |
| 条件付き確率 | じょうけんつきかくりつ | ある事象Aが起こったと分かっているという条件のもとで、別の事象Bが起こる確率。\(P_{A}(B) = \dfrac{P(A \cap B)}{P(A)}\) で計算します。「考える世界を全体からAだけに縮めた中での、Bの割合」です。 |
| 乗法定理 | じょうほうていり | \(P(A \cap B) = P(A) \times P_{A}(B)\) のこと。条件付き確率の式の分母を払った形で、「まずAが起こり、そのうえでBも起こる」確率を順番に掛けて求めます。 |
| 全確率の定理 | ぜんかくりつのていり | Bが起こる確率を、「Aを通るルート」と「Aでない方を通るルート」に分けて足し合わせる定理。式は \(P(B) = P(A)\,P_{A}(B) + P(\overline{A})\,P_{\overline{A}}(B)\) です。ベイズの定理の分母を作るのに使います。 |
| ベイズの定理 | べいずのていり | 「原因→結果」の確率から「結果→原因」の確率を逆算する定理。式は \(P_{B}(A) = \dfrac{P(A \cap B)}{P(B)}\) です。18世紀のイギリスの牧師トーマス・ベイズにちなんだ名前で、迷惑メールフィルタなど現代の情報技術を支えています。 |
| 事前確率 | じぜんかくりつ | 結果(データ)を見る前に見積もった、原因Aの確率 \(P(A)\) のこと。検査の例なら「そもそも該当する人が全体のどれくらいいるか」にあたります。 |
| 事後確率 | じごかくりつ | 結果Bを見た後に更新された、原因Aの確率 \(P_{B}(A)\) のこと。ベイズの定理は「事前確率を、観察した結果で事後確率に更新する」定理だと言えます。 |
| 余事象 | よじしょう | その出来事が「起こらない」という反対側の事象のこと。記号は \(\overline{A}\) で、確率は \(1 - P(A)\) です。全確率の定理では「Aを通らないルート」を担当します。 |
| 排反 | はいはん | 2つの事象が同時には起こらないこと。「Aを通ってBが起こる」と「Aでない方を通ってBが起こる」は排反なので、全確率の定理では単純に足すことができます。 |
| 独立 | どくりつ | 一方の結果がもう一方の起こりやすさに影響しないこと。条件付き確率の言葉で言い換えると「\(P_{A}(B) = P(B)\)(Aが起こったと知っても、Bの確率が変わらない)」が独立です。 |
| 偽陽性 | ぎようせい | 本当は該当していないのに、検査だけが「陽性(該当あり)」と出てしまうこと。偽陽性の確率が小さくても、該当しない人が大多数だと、間違い陽性の人数は本当の陽性より多くなることがあります。 |
| 樹形図 | じゅけいず | 起こりうる場合を木の枝のように書き分けた図。枝に確率を書き、枝をたどって掛け算すると「そのルートの確率」になります。条件付き確率・ベイズの定理の計算を目で追うのに一番向いた図です。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 確率の基礎(中学2年) |
|
| 割合・百分率(小学5年) |
|
| 分数の掛け算・割り算(小学6年) |
|
| 場合の数と樹形図(高校 数学A) |
|
| 集合とベン図(高校 数学I・A) |
|
Excelで計算する方法
| 事象Aが起こる確率 P(A) | 0.5 |
| 両方起こる確率 P(A∩B) | 0.2 |
| 条件付き確率 P(B|A) | =B2/B1 |
| 事象Aが起こる確率 P(A) | 0.5 |
| AのもとでBが起こる確率 P(B|A) | 0.4 |
| 両方起こる確率 P(A∩B) | =B1*B2 |
| 原因Aの確率 P(A) | 0.01 |
| AのもとでBが起こる確率 P(B|A) | 0.9 |
| Aが無いときにBが起こる確率 P(B|A̅) | 0.09 |
| Bが起こる確率 P(B) | =B1*B2+(1-B1)*B3 |
| 原因Aの確率 P(A) | 0.01 |
| AのもとでBが起こる確率 P(B|A) | 0.9 |
| Aが無いときにBが起こる確率 P(B|A̅) | 0.09 |
| 両方起こる確率 P(A∩B) | =B1*B2 |
| Bが起こる確率 P(B) | =B4+(1-B1)*B3 |
| Bが起こったとき原因がAの確率 P(A|B) | =B4/B5 |
数式の中の「B1」「B2」は「そのセルに入っている数値を使う」という意味で、「*」は掛け算、「/」は割り算の記号です。
1つ目の表は 0.2 ÷ 0.5 = 0.4、2つ目の表は 0.5 × 0.4 = 0.2 になります。
3つ目の表は 0.01 × 0.9 + 0.99 × 0.09 = 0.0981 で、陽性が出る確率をルート別に足しています。
4つ目の表は B4 に 0.009、B5 に 0.0981 が入り、最後の B6 が 0.009 ÷ 0.0981 ≒ 0.0917(約9.2%)になります。
Googleスプレッドシートで計算する方法
| 事象Aが起こる確率 P(A) | 0.5 |
| 両方起こる確率 P(A∩B) | 0.2 |
| 条件付き確率 P(B|A) | =B2/B1 |
| 事象Aが起こる確率 P(A) | 0.5 |
| AのもとでBが起こる確率 P(B|A) | 0.4 |
| 両方起こる確率 P(A∩B) | =B1*B2 |
| 原因Aの確率 P(A) | 0.01 |
| AのもとでBが起こる確率 P(B|A) | 0.9 |
| Aが無いときにBが起こる確率 P(B|A̅) | 0.09 |
| Bが起こる確率 P(B) | =B1*B2+(1-B1)*B3 |
| 原因Aの確率 P(A) | 0.01 |
| AのもとでBが起こる確率 P(B|A) | 0.9 |
| Aが無いときにBが起こる確率 P(B|A̅) | 0.09 |
| 両方起こる確率 P(A∩B) | =B1*B2 |
| Bが起こる確率 P(B) | =B4+(1-B1)*B3 |
| Bが起こったとき原因がAの確率 P(A|B) | =B4/B5 |
入力欄の数値を自分の確率に書き換えるだけでそのまま使えます。
Pythonで計算する方法
from fractions import Fraction
# ===== 条件付き確率 P(B|A) = P(A∩B) ÷ P(A) =====
p_a = Fraction(1, 2) # P(A):前提となる事象Aの確率
p_a_and_b = Fraction(1, 3) # P(A∩B):両方起こる確率
p_b_given_a = p_a_and_b / p_a
print(f"条件付き確率 P(B|A): {p_b_given_a} = {float(p_b_given_a):.4f}")
# ===== ベイズの定理(全確率の定理で分母を組み立てる) =====
prior = Fraction(1, 100) # P(A):原因Aの確率(事前確率)
p_b_given_a2 = Fraction(90, 100) # P(B|A):Aが起こったときにBが起こる確率
p_b_given_not_a = Fraction(9, 100) # P(B|A̅):Aが起こらないときにBが起こる確率
p_joint = prior * p_b_given_a2 # P(A∩B)
p_b = p_joint + (1 - prior) * p_b_given_not_a # P(B)(全確率の定理)
posterior = p_joint / p_b # P(A|B)(事後確率)
print(f"Bが起こる確率 P(B): {p_b} = {float(p_b):.4f}")
print(f"原因がAである確率 P(A|B): {posterior} = {float(posterior):.4f}")
数式記述言語(LaTeX等)での書き方(コピペ可)
P(B|A) = P(A∩B) / P(A)
P_{A}(B) = \dfrac{P(A \cap B)}{P(A)}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>P</mi><mi>A</mi></msub>
<mo>(</mo><mi>B</mi><mo>)</mo>
<mo>=</mo>
<mfrac>
<mrow><mi>P</mi><mo>(</mo><mi>A</mi><mo>∩</mo><mi>B</mi><mo>)</mo></mrow>
<mrow><mi>P</mi><mo>(</mo><mi>A</mi><mo>)</mo></mrow>
</mfrac>
</mrow>
</math>
P(B | A) = P(A nn B) / P(A)
pAandB/pA
pBgivenA := pAandB/pA;
p_b_given_a = p_a_and_b/p_a;
P(B|A) = P(A∩B)/P(A)
P(A∩B) = P(A) × P(B|A)
P(A \cap B) = P(A) \times P_{A}(B)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>(</mo><mi>A</mi><mo>∩</mo><mi>B</mi><mo>)</mo>
<mo>=</mo>
<mi>P</mi><mo>(</mo><mi>A</mi><mo>)</mo>
<mo>×</mo>
<msub><mi>P</mi><mi>A</mi></msub>
<mo>(</mo><mi>B</mi><mo>)</mo>
</mrow>
</math>
P(A nn B) = P(A) xx P(B | A)
pA*pBgivenA
pAandB := pA*pBgivenA;
p_a_and_b = p_a*p_b_given_a;
P(A∩B) = P(A) × P(B|A)
P(B) = P(A) × P(B|A) + P(A̅) × P(B|A̅)
P(B) = P(A)\,P_{A}(B) + P(\overline{A})\,P_{\overline{A}}(B)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>(</mo><mi>B</mi><mo>)</mo>
<mo>=</mo>
<mi>P</mi><mo>(</mo><mi>A</mi><mo>)</mo>
<msub><mi>P</mi><mi>A</mi></msub>
<mo>(</mo><mi>B</mi><mo>)</mo>
<mo>+</mo>
<mi>P</mi><mo>(</mo>
<mover><mi>A</mi><mo>‾</mo></mover>
<mo>)</mo>
<msub><mi>P</mi><mover><mi>A</mi><mo>‾</mo></mover></msub>
<mo>(</mo><mi>B</mi><mo>)</mo>
</mrow>
</math>
P(B) = P(A) xx P(B | A) + P(bar A) xx P(B | bar A)
pA*pBgivenA + (1 - pA)*pBgivenNotA
pB := pA*pBgivenA + (1 - pA)*pBgivenNotA;
p_b = p_a*p_b_given_a + (1 - p_a)*p_b_given_not_a;
P(B) = P(A)P(B|A) + P(A̅)P(B|A̅)
P(A|B) = P(A∩B) / P(B)
P_{B}(A) = \dfrac{P(A \cap B)}{P(B)} = \dfrac{P(A)\,P_{A}(B)}{P(A)\,P_{A}(B) + P(\overline{A})\,P_{\overline{A}}(B)}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>P</mi><mi>B</mi></msub>
<mo>(</mo><mi>A</mi><mo>)</mo>
<mo>=</mo>
<mfrac>
<mrow><mi>P</mi><mo>(</mo><mi>A</mi><mo>∩</mo><mi>B</mi><mo>)</mo></mrow>
<mrow><mi>P</mi><mo>(</mo><mi>B</mi><mo>)</mo></mrow>
</mfrac>
</mrow>
</math>
P(A | B) = P(A nn B) / P(B)
pA*pBgivenA/(pA*pBgivenA + (1 - pA)*pBgivenNotA)
pAgivenB := pAandB/pB;
p_a_given_b = p_a_and_b/p_b;
P(A|B) = P(A∩B)/P(B)
ChatGPT に聞いて計算してもらう方法
あなたは確率(条件付き確率・ベイズの定理)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 原因Aの確率(事前確率)は1%、Aが起こったときに結果Bが起こる確率 P(B|A) は90%、Aが起こらないときにBが起こる確率 P(B|A̅) は9%です。 次の値をそれぞれ求めてください。 1. AとBが両方起こる確率 P(A∩B) 2. Bが起こる確率 P(B)(全確率の定理で、ルート別の内訳も示すこと) 3. Bが起こったときに原因がAである確率 P(A|B)(ベイズの定理。約分済みの分数と小数の両方で) Pythonでは標準ライブラリの fractions モジュールを使って厳密に計算し、計算に使った式と実行結果の数値を表形式で示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
