IT用語を超やさしく理解する

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

別名: 条件付き確率 / ベイズの定理 / ベイズ / conditional probability / Bayes theorem

先に知っておくと分かりやすいことば(1語)

必要なら先に確認できます。知っていることばは、そのまま読み進めて大丈夫です。

  • 確率の基本標本空間と事象、基本的な確率の求め方、余事象、加法定理、独立な事象の乗法と同時確率を初心者向けに説明します。

30秒で思い出す

**条件付き確率は「ある条件が分かった後で、対象を絞って考える確率」**です。

P(A | B)

は、

Bが起きたと分かっているときに、Aが起きている確率

を表します。

ベイズの定理は、

P(A | B)
= P(B | A) × P(A) / P(B)

のように、「原因から結果」の確率を使って「結果から原因」の確率を求めるときに使います。

条件が付くと、見る全体が変わる

100件のアクセスのうち、

  • 社内ネットワークからのアクセス: 40件
  • そのうち管理画面へのアクセス: 10件

だったとします。

「社内ネットワークからのアクセスだった」という条件が分かっているなら、見る全体は100件ではなく40件です。

したがって、

P(管理画面 | 社内)
= 10 / 40
= 0.25

です。

条件付き確率では、条件に合うものだけに母集団を絞り直すことが重要です。

条件付き確率の式

事象AとBについて、Bが起きる確率が0でないとき、

P(A | B)
= P(AかつB) / P(B)

です。

分母が P(B) になるのは、「Bが起きた世界だけを見ている」からです。

たとえば、

  • 全アクセスの40%が社内
  • 全アクセスの10%が「社内かつ管理画面」

なら、

P(管理画面 | 社内)
= 0.10 / 0.40
= 0.25

です。

P(A|B)とP(B|A)は別物

条件付き確率で最も重要な注意点の1つです。

P(A | B)

P(B | A)

は、一般には同じではありません。

たとえば、

  • 「攻撃だったときにアラートが出る確率」
  • 「アラートが出たときに本当に攻撃である確率」

は別の値です。

前者が高くても、そもそも攻撃自体が非常に少なければ、アラートの多くが誤検知ということもあります。

乗法定理とのつながり

前のKnowledgeで学んだ乗法定理は、

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

でした。

同じ同時確率を、

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

とも表せます。

つまり、

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

です。

これを P(A | B) について整理すると、ベイズの定理になります。

ベイズの定理

ベイズの定理は、

P(A | B)
= P(B | A) × P(A) / P(B)

です。

意味を言葉にすると、

結果Bが観測されたときに原因Aだった確率
=
原因Aなら結果Bになる確率
×
そもそも原因Aである確率
÷
結果B全体の確率

です。

P(B)をどう求める?

Bが、

  • Aが起きた場合
  • Aが起きなかった場合

の両方から起こり得るなら、

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

と分けて考えられます。

これは「Bが起こる経路」を漏れなく足していると考えると分かりやすくなります。

ベイズの例

アクセスの1%が攻撃だとします。

検知システムは、

  • 攻撃なら90%でアラートを出す
  • 攻撃でなくても5%で誤ってアラートを出す

とします。

10000件あると考えると、

攻撃: 100件
  → アラート: 90件

正常: 9900件
  → 誤アラート: 495件

アラートは合計585件です。

そのうち本当に攻撃なのは90件なので、

P(攻撃 | アラート)
= 90 / 585
≈ 0.154

約15.4%です。

検知率が90%でも、「アラートが出たら90%の確率で攻撃」という意味ではありません。

元々の攻撃率1%という事前確率が結果に大きく影響します。

事前確率と事後確率

ベイズの定理では、次の見方をすると整理しやすくなります。

  • 事前確率: 観測する前の確率
  • 事後確率: 観測した情報を反映した後の確率

先ほどの例では、

攻撃の事前確率 = 1%

でした。

「アラートが出た」という情報を反映すると、

攻撃の事後確率 ≈ 15.4%

へ更新されます。

ベイズの定理は、新しい情報を得た後に確率を更新する考え方とも捉えられます。

どこで使う?

条件付き確率やベイズの考え方は、観測結果から原因や状態を推定するときに使います。

ITでは、たとえば、

  • セキュリティアラートから実際の攻撃可能性を考える
  • 監視システムの検知結果を評価する
  • 障害メッセージから原因候補を絞る
  • フィルタや分類器の結果を解釈する
  • 過去の発生率と新しい観測を組み合わせる

といった場面につながります。

よくある勘違い

P(A|B)とP(B|A)は同じ?

違います。

条件の向きが違うため、一般には別の値です。

検知率が90%なら、アラートの90%は本物?

違います。

元々の対象の発生率と、誤検知率も必要です。

ベイズの定理は新しい確率を勝手に作る?

違います。

事前確率、条件付き確率、観測された結果を組み合わせて、条件を反映した確率へ更新します。

条件付き確率では全体の件数をそのまま分母にする?

違います。

条件Bが付いたら、Bに該当する範囲へ母集団を絞ります。

このKnowledgeで扱わないこと

ここでは、条件付き確率の基本計算とベイズの定理を扱います。

次は後続Knowledgeへ分けます。

  • ベイズ推定の高度な理論
  • 連続分布を使ったベイズ計算
  • 確率分布の詳細
  • 期待値
  • マルコフ過程
  • 統計的推定や仮説検定

ここまで分かればOK

  • P(A | B) の意味を説明できる
  • 条件で母集団を絞って条件付き確率を計算できる
  • P(A | B)P(B | A) を区別できる
  • 乗法定理からベイズの定理へのつながりを説明できる
  • 事前確率・検知率・誤検知率から事後確率を求められる

資格との関係

基本情報技術者試験

シラバス
Ver.9.2
必要な理解
問題で応用できる
重要度
分野
テクノロジ

関連するIT用語

次に読む

理解できたか確認しよう

答えを選んで、なぜそうなるのかまで確認できます。

確認問題 1

アラートから実際の攻撃確率を求める

アクセスの1%が攻撃です。検知システムは攻撃なら90%でアラートを出し、正常なアクセスでも5%で誤ってアラートを出します。

アラートが出たアクセスが実際に攻撃である確率に最も近いものはどれですか?

回答を1つ選んでください

確認問題 2

条件で絞った中の割合を求める

100件のアクセスのうち40件が社内ネットワークからで、その40件のうち10件が管理画面へのアクセスでした。

「社内ネットワークからのアクセスだった」という条件の下で、管理画面へのアクセスである確率はいくつですか?

回答を1つ選んでください