Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Pythonによる条件付き確率とベイズの定理の実装 | 確率と統計
Pythonによるデータサイエンスのための数学

bookPythonによる条件付き確率とベイズの定理の実装

メニューを表示するにはスワイプしてください

条件付き確率

条件付き確率は、ある事象がすでに発生している場合に、別の事象が発生する確率を測定する指標。

公式:

P(AB)=P(AB)P(B)P(A \mid B) = \frac{P(A \cap B)}{P(B)}
12345
P_A_and_B = 0.1 # Probability late AND raining P_B = 0.2 # Probability raining P_A_given_B = P_A_and_B / P_B print(f"P(A|B) = {P_A_given_B:.2f}") # Output: 0.5
copy

解釈: 雨が降っている場合、遅刻する確率は50%となる。

ベイズの定理

ベイズの定理は、直接測定が難しい $P(A|B)$ を、より推定しやすい $P(B|A)$ と関連付けることで求める手法。

公式:

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

ここで:

  • P(AB)P(A \mid B) - Bが与えられたときのAの確率(求めたい値)
  • P(BA)P(B \mid A) - Aが与えられたときのBの確率
  • P(A)P(A) - Aの事前確率
  • P(B)P(B) - Bの全確率

P(B)P(B) の展開

P(B)=P(BA)P(A)+P(B¬A)P(¬A)P(B) = P(B \mid A) P(A) + P(B \mid \neg A) P(\neg A)
123456789101112
P_A = 0.01 # Disease prevalence P_not_A = 1 - P_A P_B_given_A = 0.99 # Sensitivity P_B_given_not_A = 0.05 # False positive rate # Total probability of testing positive P_B = (P_B_given_A * P_A) + (P_B_given_not_A * P_not_A) print(f"P(B) = {P_B:.4f}") # Output: 0.0594 # Apply Bayes’ Theorem P_A_given_B = (P_B_given_A * P_A) / P_B print(f"P(A|B) = {P_A_given_B:.4f}") # Output: 0.1672
copy

解釈: 陽性反応が出ても、実際にその病気である確率は約16.7%にとどまる。

主なポイント

  • 条件付き確率は、Bが起こったときにAが起こる確率を求める手法;
  • ベイズの定理は、直接測定が難しい場合に条件付き確率を反転させて信念を更新する方法;
  • どちらもデータサイエンス、医療検査、機械学習に不可欠な概念。
question mark

このコードの出力は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 5.  4
some-alt