全確率 の公式とは、ある事象の確率を、原因ごとの条件付き確率 と事前確率 の重み付き和で計算する公式です。
定義
全確率 の公式を使うには、まず標本空間 Ω \Omega Ω (起こりうるすべての結果の集合)を、互いに「重ならない」かつ「合わせると全体を覆う」事象の列 { A i } \{A_i\} { A i } で分割する必要があります。この条件を完全分割 (partition)と呼びます。完全分割には 2 つの要件があります。排反 性 (どの 2 つも同時に起こらない)と、網羅性 (いずれかは必ず起こる)の両方が必要で、片方だけでは公式は成り立ちません。
完全分割が確認できたとき、任意の事象 B B B の確率は次式で計算できます。
ここで、P ( A i ) P(A_i) P ( A i ) は「原因 A i A_i A i がそもそも起こる確率」(事前確率 )、P ( B ∣ A i ) P(B \mid A_i) P ( B ∣ A i ) は「原因 A i A_i A i のもとで結果 B B B が起こる条件付き確率 」、∑ i \sum_i ∑ i は和記号(すべての原因について足し合わせる操作)です。
実務でよく使われる 2 事象版(原因が A A A と A c A^c A c の 2 種類)は次の形になります。
A c A^c A c は A A A の余事象(A A A が起こらない場合)です。また、A A A が連続確率変数 で密度関数 f ( a ) f(a) f ( a ) を持つ場合は、和が積分に変わります。
これは離散版の「原因ごとに分けて足す」操作を、原因を無限に細かく区切った極限として書き換えたものです。
性質
事前確率 で重みづけた条件付き確率 の平均 : P ( B ∣ A i ) P(B \mid A_i) P ( B ∣ A i ) に「原因 A i A_i A i の起こりやすさ P ( A i ) P(A_i) P ( A i ) 」を掛けて足すので、事前確率 が大きな原因の寄与が大きくなる
完全分割でないと成立しない : 排反 性のみ(重ならないが全体を覆わない)では、B B B が起こる経路を見落とす。網羅性のみ(全体を覆うが重なりがある)では、同じ場合を 2 度足してしまう。2 つの要件が同時に満たされないと等号は成立しない
同時確率 の「周辺化」そのもの : ∑ i P ( B ∩ A i ) = P ( B ) \sum_i P(B \cap A_i) = P(B) ∑ i P ( B ∩ A i ) = P ( B ) という関係は「同時確率 を A i A_i A i の軸で足し上げて B B B の周辺確率 を得る」操作。機械学習文脈では「sum rule」と呼ばれる
ベイズの定理 の分母を作る : ベイズの定理 P ( A ∣ B ) = P ( B ∣ A ) P ( A ) / P ( B ) P(A \mid B) = P(B \mid A)P(A)/P(B) P ( A ∣ B ) = P ( B ∣ A ) P ( A ) / P ( B ) の分母 P ( B ) P(B) P ( B ) の標準的な計算手段は全確率 の公式であり、P ( B ) P(B) P ( B ) を「展開して計算可能にする」役割を果たす
視覚的に見る
1 × 1 1 \times 1 1 × 1 の正方形で全体(確率 1.0)を表し、縦軸で A A A (病気あり)と A c A^c A c (病気なし)に分割します。P ( A ) = 0.3 P(A) = 0.3 P ( A ) = 0.3 なので左帯の横幅が 0.3 0.3 0.3 、右帯が 0.7 0.7 0.7 です。各帯をさらに B B B (検査陽性)と B c B^c B c (検査陰性)に横分割すると 4 つのセルが現れます。全確率 の公式は「青い B B B セルの面積を 2 枚足す」操作です。
全確率の公式: 矩形の縦帯分解(P(A)=0.3, P(B|A)=0.8, P(B|A^c)=0.2) 病気&陽性 0.24 病気&陰性 0.06 健康&陽性 0.14 健康&陰性 0.56 A(病気 0.3) A^c(健康 0.7)
青い 2 セル(病気&陽性、健康&陽性)が「検査陽性 B B B 」の全体面積です。左の青セルは「病気帯の横幅 0.3 0.3 0.3 」×「感度 0.8 0.8 0.8 」= 0.24 0.24 0.24 、右の青セルは「健康帯の横幅 0.7 0.7 0.7 」×「偽陽性率 0.2 0.2 0.2 」= 0.14 0.14 0.14 です。これを足すと P ( B ) = 0.24 + 0.14 = 0.38 P(B) = 0.24 + 0.14 = 0.38 P ( B ) = 0.24 + 0.14 = 0.38 。この計算がまさに全確率 の公式 P ( B ) = P ( B ∣ A ) P ( A ) + P ( B ∣ A c ) P ( A c ) P(B) = P(B \mid A)P(A) + P(B \mid A^c)P(A^c) P ( B ) = P ( B ∣ A ) P ( A ) + P ( B ∣ A c ) P ( A c ) の形です。
各セルの面積は「事前確率 P ( A i ) P(A_i) P ( A i ) (帯の横幅)」×「条件付き確率 P ( B ∣ A i ) P(B \mid A_i) P ( B ∣ A i ) (帯内での陽性の割合)」の積です。A i A_i A i ごとの「帯」に分けて面積を計算し、最後に B B B が占める帯を集計する。この縦帯分解が全確率 の公式の幾何的な意味です。
実世界での使われ方
医療検査の陽性率計算 では、集団全体での検査陽性率を有病率・感度・偽陽性率から計算する標準手順に全確率 の公式が使われています。有病率(P ( 病気 ) P(\text{病気}) P ( 病気 ) )を事前確率 、感度(病気があって陽性になる確率)と偽陽性率(病気がないのに陽性になる確率)を条件付き確率 として代入します。厚生労働省の新型コロナウイルス感染症に関する検査 での陽性率の解釈も、この構造を暗黙に使っています。有病率が低い局面では P ( B ∣ A c ) P ( A c ) P(B \mid A^c) P(A^c) P ( B ∣ A c ) P ( A c ) の項(健康者の偽陽性)が P ( B ) P(B) P ( B ) を大きく引き上げるため、陽性率だけで病気の確率を判断できない理由がここから出てきます。
機械学習の周辺尤度 (evidence ) の計算にも全確率 の公式が直接登場します。ベイズ的モデル選択では P ( データ ) = ∫ P ( データ ∣ θ ) P ( θ ) d θ P(\text{データ}) = \int P(\text{データ} \mid \theta) P(\theta) \, d\theta P ( データ ) = ∫ P ( データ ∣ θ ) P ( θ ) d θ の形で周辺尤度 を計算します。これは連続版の全確率 の公式であり、パラメータ θ \theta θ のすべての可能性で「データの生成確率×パラメータの事前分布 」を足し上げる操作です。Bishop『パターン認識と機械学習』第 1 章では sum rule として位置づけており(Cambridge University Press 公式ページ )、モデル間の比較(ベイズ因子)の分母を構成するために計算します。scikit-learn の ナイーブベイズ実装(sklearn.naive_bayes) も内部でこの周辺化を行っており、クラス事前確率 P ( C k ) P(C_k) P ( C k ) と条件付き尤度 P ( x ∣ C k ) P(\mathbf{x} \mid C_k) P ( x ∣ C k ) の積和で予測確率を正規化しています。
隠れマルコフモデル(HMM)とカルマンフィルタ では、観測データの周辺尤度 を計算するときに隠れ状態 x t x_t x t のすべての可能性で足し上げる操作が必要になります。音声認識では音素の状態列(隠れ状態)を、観測された音声フレームから推定しますが、その途中で P ( 観測 ) = ∑ 状態列 P ( 観測 ∣ 状態列 ) P ( 状態列 ) P(\text{観測}) = \sum_{\text{状態列}} P(\text{観測} \mid \text{状態列}) P(\text{状態列}) P ( 観測 ) = ∑ 状態列 P ( 観測 ∣ 状態列 ) P ( 状態列 ) の形の周辺化が不可欠です。国立情報学研究所(NII)の音声研究でも HMM の forward アルゴリズムとして実装されており、各ステップが全確率 の公式の繰り返し適用です。
金融の信用リスク管理 では、ポートフォリオ全体のデフォルト確率を「マクロシナリオ」ごとの条件付きデフォルト率とシナリオ確率の重み付き和で計算します。景気後退シナリオ・ベースシナリオ・好況シナリオを { A i } \{A_i\} { A i } として完全分割し、各シナリオ下でのデフォルト率 P ( デフォルト ∣ A i ) P(\text{デフォルト} \mid A_i) P ( デフォルト ∣ A i ) をシナリオ確率 P ( A i ) P(A_i) P ( A i ) で重みづけして合算します。BIS(国際決済銀行)の信用リスク計測フレームワーク文書(BCBS d307 )でも同じ構造が期待損失(EL)計算の基礎として示されており、シナリオ分析とポートフォリオ管理の土台になっています。
深掘り
周辺化の一般原理や塔型公式は L2 以上の発展です。全確率 の公式の使い方だけなら必須ではありません。
▶ 計算 発展(L2以上): 周辺化・ベイズ分母・塔型公式 周辺化の一般原理 全確率 の公式は、同時確率 から周辺確率 を得る操作の最も基本的な形です。確率変数 X X X と Y Y Y を考えると、Y = y Y = y Y = y となる周辺確率 は次のように書けます。
これは「X X X という変数を消去して Y Y Y だけの分布を得る」操作で、周辺化 (marginal ization)と呼ばれます。機械学習文脈で「sum rule」と呼ばれているのと同じ操作です。関心のない変数(ここでは X X X )を確率の重み P ( X = x ) P(X = x) P ( X = x ) で足し上げることで、その変数が存在しないかのように振る舞う周辺分布 を得ます。連続版では sum が integral に変わるだけで、構造は同じです。
ベイズの定理 を使って「検査陽性なら病気の確率は?」を計算するとき、分母に全確率 の公式が登場します。
分母 P ( B ) P(B) P ( B ) を全確率 の公式で展開すると、「分子の P ( B ∣ A ) P ( A ) P(B \mid A) P(A) P ( B ∣ A ) P ( A ) を全体 P ( B ) P(B) P ( B ) で割る」という正規化の操作になります。この P ( B ) P(B) P ( B ) は正規化定数 、ベイズ的文脈では周辺尤度 (marginal likelihood )またはevidence とも呼ばれます。P ( B ) P(B) P ( B ) を計算しないと、ベイズの定理 の右辺は確率として和が 1 にならないため、全確率 の公式はベイズ計算において欠かせない計算要素です。
条件付き期待値 の塔型公式への拡張 全確率 の公式には期待値 版があります。確率変数 Y Y Y の期待値 E [ Y ] E[Y] E [ Y ] は、事象 { A i } \{A_i\} { A i } を使って次のように分解できます。
これをさらに一般化すると、確率変数 X X X で条件づけた条件付き期待値 の「塔型公式」(law of total expectation)になります。
内側の E [ Y ∣ X ] E[Y \mid X] E [ Y ∣ X ] は X X X の値ごとに計算した条件付き期待値 (これ自体が X X X の関数)、外側の E [ ⋅ ] E[\cdot] E [ ⋅ ] はそれを X X X の分布で平均します。stats-18 で扱う条件付き期待値 の核となる公式で、ファイナンスの動的計画法(Bellman 方程式)や確率制御の基礎でもあります。
関連する用語
条件付き確率 。全確率 の公式の構成要素 P ( B ∣ A i ) P(B \mid A_i) P ( B ∣ A i )
周辺確率 。全確率 の公式が計算する量そのもの
ベイズの定理 。分母 P ( B ) P(B) P ( B ) の展開で全確率 の公式を使う
同時確率 。全確率 の公式は同時確率 P ( B ∩ A i ) P(B \cap A_i) P ( B ∩ A i ) の和として書ける
独立性 。A i A_i A i と B B B が独立 なら P ( B ∣ A i ) = P ( B ) P(B \mid A_i) = P(B) P ( B ∣ A i ) = P ( B ) となり公式は縮退する
排反事象 。完全分割の前提条件の一つ(排反 性)
この用語を扱う本編記事
stats-07: 条件付き確率とベイズの面積 。節 3 で「縦帯の面積」として視覚化し、節 4 でベイズの定理 の分母 P ( B ) P(B) P ( B ) の展開として使います。
よくある誤解
「完全分割」の片方の要件だけを満たせば全確率 の公式が使えると誤解するケースがあります。排反 性のみ(重ならないが全体を覆わない)では、B B B が起こるルートの一部が { A i } \{A_i\} { A i } のどれにも含まれないため、\sum_i P(B \cap A_i) < P(B) となって等号が成立しません。網羅性のみ(全体を覆うが重なりがある)では、重なり部分の P ( B ∩ A i ) P(B \cap A_i) P ( B ∩ A i ) を 2 回以上足してしまうため \sum_i P(B \cap A_i) > P(B) になります。排反 性と網羅性の両方が揃って初めて等号が成立します。
もう一つの典型的な誤りは、P ( B ) = P ( B ∣ A ) + P ( B ∣ A c ) P(B) = P(B \mid A) + P(B \mid A^c) P ( B ) = P ( B ∣ A ) + P ( B ∣ A c ) と事前確率 を掛けずに条件付き確率 を足す計算です。P ( B ∣ A ) = 0.8 P(B \mid A) = 0.8 P ( B ∣ A ) = 0.8 と P ( B ∣ A c ) = 0.2 P(B \mid A^c) = 0.2 P ( B ∣ A c ) = 0.2 を足すと 1.0 1.0 1.0 になりますが、これは P ( B ) = 1.0 P(B) = 1.0 P ( B ) = 1.0 を意味せず誤りです。条件付き確率 は「原因が与えられたときの確率」であり、それぞれの原因の起こりやすさ P ( A i ) P(A_i) P ( A i ) で重みづけしてから足さないと、全体の確率にはなりません。