2015年8月19日水曜日

独立性と条件付き確率(& 誤り訂正)

去年の12月のある投稿に誤りを見つけて、その原因が「独立性」「条件付き確率」の理解不足であることが分かった。条件付き確率については、ここでも何度か取り上げたが、再度整理する。そして、12月の投稿の誤りを修正したい。

本内容は、Wikipedia の Conditional probability, Independence (probability theory) を参考にした。


条件付き確率と独立性

P(A|B) は「Bの条件下でAの確率」の条件付き確率を表すが、一般的に誤解されがち(分かりにくい)のは以下の関係だろう。


Wikipedia (Conditional probability) には "it cannot be assumed that P(A|B) ≈ P(B|A)" と「≈(ほぼ同じ)ではない」と記されているが、ここでは「同じではない」とした。そのことは「条件付き確率、ベイズの定理」の投稿においても、P(数学が得意 | 理科が得意) と P(理科が得意 | 数学が得意) は同じでない例で示した。

とはいえ、次のベイズの定理
から、P(B) / P(A) ≈ 1、つまり P(A) と P(B) の値が近い場合、P(A|B) ≈ P(B|A) が成り立つことが分かる。

個人的な印象だが、同じ確率の表現を別な表現にされて戸惑うことがある。以下もその一つ


個人的にはより慣れた表記 P(A,B) を用いれば

P(A, B) = P(A∩B) = P(A|B)P(B) = P(B∩A) = P(B, A) = P(B|A)P(A)


ここまでは、A と B が「独立ではない」ことが前提となっている。A と B が独立(例:コインの裏表)の場合、次の関係が成り立つ。


1行目の P(A)P(B) は、二度続けてコインを投げて「裏裏」となる確率は 1/2 * 1/2 = 1/4 からも理解できる。ところが、2, 3行目の P(A) = P(A|B) などは直感的には分かりにくい。丁寧に書くと

 P(A|B) は「どのようなBの条件であっても P(A) には影響しない」
 P(B|A) は「どのようなAの条件であっても P(B) には影響しない」

つまり、これは「独立の定義そのもの」を表している。例えば、1回目のコイン投げの結果は、次のコイン投げの結果に影響することはない。


誤っていたこと

半年以上も前に投稿した「Confusion Matrix によるモデル評価」の誤りを訂正する。

左の表は「Data Science for Business」の Table7-7(P.202)で、p(ositive) と n(egative) を列に、予測のY(es) と N(o) を行に示した「Confusion Matrix 混合行列」。

以下に示す、この行列と対応する cost-benfit(費用と収益)を使って、Expected Profit(期待利益)を算出するのだが、去年の12月時点での私の理解は誤っていた。

左は cost-benfit 行列。

誤っていた点から記す。

左の期待利益の式に、以下のようにして求めた4つの確率を代入してしまったこと。

 p(Y, p) = 56/110 = 0.51:提案した顧客に売れる確率
 p(Y, n) = 7/110 = 0.06:提案した顧客に売れない確率
 p(N, p) = 5/110 = 0.05:見込み顧客に提案しない確率
 p(N, n) = 42/110 = 0.38:買わない顧客に提案しない確率

その結果

 期待利益 = 0.51 * 99 + 0.06 * (-1) + 0.05 * 0 + 0.38 * 0 = 50.43

と誤ってしまった

これは、4つの確率(p(Y, p) など)がそれぞれ独立の場合なら成り立つが、これらは独立ではない。正しくは上記のTable7-7 から

 「列ごと(positive率とnegative率)で独立」であり
 「列の条件の元」で「行の予測精度」も変わる(つまり、独立ではない)

と解釈しなければならない。予測の前提である Positive率が変われば、P(予測、実際) の同時確率も変わることを考慮しなければならない。よって、各確率は本書のP.202 にあるように

 P(p) = 61/110 = 0.55:positive確率
 P(n) = 49/110 = 0.45:negative確率
 P(Y|p) = 56/61 = 0.92:positive の条件下で Yes である確率
 P(N|p) = 6/61 = 0.08  :positive の条件下で No である確率
 P(Y|n) = 7/49 = 0.14 :negative の条件下で Yes である確率
 P(N|n) = 42/49 = 0.86 :negative の条件下で No である確率

Table7-7 の4つの確率は、本書のように p(x, y) = p(y) p(x | y) の同時確率で導く必要があり、期待利益の式は以下のようになる

 期待利益 = p(Y|p) p(p) b(Y,p) + p(N|p) p(p) b(N,p) +
                      p(N|n) p(n) b(N,n) + p(Y|n) p(n) b(Y,n)

これを p(p), p(n) で整理した式

 期待利益 = p(p) [p(Y|p) b(Y,p) + p(N|p) b(N,p) ] +
                     p(n) [p(N|n) b(N,n) + p(Y|n) b(Y, n) ]

p(p) + p(n) = 0.55 + 0.46 = 1.0 で、この式は期待値の説明で一般的に用いられるサイコロの目の期待値(各出目の確率が1/6)の例と同じになる。

この式に各確率と cost-benefit 値を代入して本書と同じ値が導ける(本書では計算途中で四捨五入しているため 50.04 となっている)。

 期待利益 = 0.55 * (0.92 * 99 + 0.08 * 0) +
                     0.45 * (0.86 * 0 + 0.14 * (-1)) = 50.031


周辺知識の理解から核心へ

実はこの誤りは、「Data Science for Business」を読み直している過程で数週間前に発見した。当時は勿論、誤りには気づかなかったが、どこか納得いかない点があったのは間違いない。

分かってしまえば何てことはないが、何を間違っているか理解するのに意外と時間を要してしまった。直感的には、条件付き確率の理解が足らないと感じて、先に書いたように、先ずはその辺の理解を再度深めた。

それでも、自分の誤りを訂正できなくていたが、上記の変形したした式

 期待利益 = p(p) [p(Y|p) b(Y,p) + p(N|p) b(N,p) ] +
                     p(n) [p(N|n) b(N,n) + p(Y|n) b(Y, n) ]

を眺めて、p(p) + p(n) = 1.0 であることに気づき、モヤモヤした気分は晴れた。

仮に、混合行列が3列の場合(例えば、positive, negative, 判別不能)の場合、p(p) + p(n) + p(判別不能) = 1.0 になり


 期待利益 = p(p) [....] + p(n) [....] + p(判別不能) [....]


ところで、本章の本来強調すべきポイントは、期待利益を使った「モデル評価」なのだが、その点はあまり取り上げることが出来ていない。「モデル評価」については今後も課題となる点なので、おいおい記していきたい。

今回の理解に至るまで、若干遠回りをした気もするが、そんなものなのかもしれない。周辺の知識を整理しなければ、問題の核心も見えてこない。今の気分は晴れやかです(笑)今回の過ちを再度犯さないために、誤りの記述はそのまま残すことにする。ちょっと恥ずかしいけどね...。


/** tex **/

0 件のコメント:

コメントを投稿