黄昏より暗きもの、血の流れより赤きもの

黄昏より暗きもの、血の流れより赤きもの

自分の好きな事を好きなように書いて行きます。

【統計検定2級 2015年11月度 問9】迷惑メールの判定とベイズの定理 (問題と解説)【高校3年生以上推奨】

このブログを読まれているn人のファンの皆様。いつもいつもこんな記事を読んで頂いて大変感謝である。さてGWも後24時間を切り、寂しい気持ちでいっぱいの今日この頃。

そんなこんなで今日は2016年のWeb業界ですっかり基本と言える「ベイズの定理」を復習していく。ベイズの定理とはある事象が発生したとき、その原因の一つが影響したかを調べる方法である。

ベイズの定理の応用も広く、「単純ベイズ分類器*1」や「ベイジアンフィルタ*2」などを使い、迷惑メールかを判定するなどに使われる。今日はその初歩を復習していく。

条件付確率

条件付確率というものを勉強し、自分が抑えたいと思ったのは以下の2つ。

事象Aが原因で事象Bが起こる条件付確率P(B|A)

事象A事象Bが排反でない場合、Aが起こると言う条件の下でBの起こる確率。言い換えると事象Aが原因で事象Bが起こる確率の事を条件付き確率といい、以下のように計算できる。

P(B|A) = \frac{P(A \cap B)}{P(A)}(式1)
又は、P(A \cap B)= P(A)P(B|A)(式2)

事象Bが起こり、その原因が事象Aである条件付確率P(A|B)

一方で事象Bが起こりその原因が事象Aであった事を表す条件付確率は、

P(A|B) = \frac{P(A \cap B)}{P(B)}(式3)
又は、P(A \cap B) = P(A|B)P(B)(式4)

ここで「Aが原因でBが発生した」「Cが発生した事による原因はDである」と、一つの事象が起こる事につられて他の事象が起こる事を因果*3と言う*4

ベイズの定理について

練習問題1:ベイズの定理の証明問題

事象H_1H_2、....、H_nのいずれかの原因により事象Aが起こったとする。さらにi\neq jを満たす全てのi,jに対しH_i \cup H_j = φを満たすものとし、事象H_i事象H_jは独立であるとする。このとき事象Aが起こりその原因がH_iであるとき、P(H_j | A) =  \frac{P(A|H_j)P(H_j)}{\sum_{i=1}^{n} P(A|H_i)P(H_i)}が成立する事を示せ

話は変わるが、皆さんは三角関数積分するときなどに使う「三角関数の積→和の変換公式」はどのようにしているだろうか?日本在住の方ならば加法定理から導いてますぜ!と言う方も少なく無いはず。このように証明や式の導き方を覚えておくと、暗記に頼らず問題を解く事につながる。

ここで統計関係の定理の証明の中には、単回帰分析や重回帰分析のように連立方程式を行列(線形代数)でさばいたり、偏微分をしたりと大学1年生レベルの数学をフル活用する場合も少なく無い。こうなってくると試験では手に余りそうだし、結論のみを覚えて運用したほうが良さそうだ。

しかしベイズの定理の場合は、高校の確率の知識さえあれば証明できる。個人的に問題文から原因と因果を素早く読み取り、ベン図を上手くかけるかが重要に思う。以下に証明を紹介する。

解答(証明)

条件付確率の公式より、P(H_j | A) =  \frac{P(H_j \cap A)}{P(A)}が成立する。まずは分母を整理する。下のベン図の通り、H_1,H_2,..,H_nの各事象の和集合(あわせたもの)がAとなっていて、これを式で表すと

f:id:program_study:20160508102616j:plain

A = H_1 \cup H_2 \cup ....  \cup H_nより
\Leftrightarrow A = (A \cap H_1) \cup (A \cap H_2) \cup ... \cup (A \cap H_n)

この事を利用し確率の式を変形していくと、

\Leftrightarrow P(A) = P(A \cap H_1) + P(A \cap H_2) + ....  + P(A \cap H_n)
\Leftrightarrow P(A) = \sum_{i=1}^{n} P(A \cap H_i) (一旦Σでまとめる)
\Leftrightarrow P(A) = \sum_{i=1}^{n} P(A|H_i)P(H_i) (∵式2)

次に分子を(式2)を使い整理すると、P(H_j \cap A) = P(A|H_j)P(H_j)が成立するので、P(H_j | A) =  \frac{P(A|H_j)P(H_j)}{\sum_{i=1}^{n} P(A|H_i)P(H_i)} q.e.d

練習問題2 統計検定2級 2015年11月度 問9より(問題を記述式へ)*5

メールの文中に含まれる文字情報から迷惑メールを判別したい。これまでの調査では無作為に選んだメールの80%が通常のメールで,残りの20%が迷惑メールであることが分かっている。

(1):調査によれば,ある語句を通常のメールが含む確率は0.2だが,迷惑メールの場合,その確率が0.8と高くなる。無作為に選んだメールがこの語句を含んでいるとき,このメールが迷惑メールである確率を求めよ。

(2):ある語句を含むメールが迷惑メールである確率が0.9以上となるには,通常のメールがその語句を含む確率xと迷惑メールがその語句を含む確率yの間にどのような関係があればよいか?(yxの間に成立する不等式を求めよ)

解答(1)

本問題の文脈より、メールに文字が含まれている事が原因で、そのメールが迷惑メールである事(結果)を調べている事が読み取れる。

  • 原因を表す事象A:あるメールに特定の語句が含まれる
  • 結果を表す事象B:あるメールが迷惑メールである

f:id:program_study:20160508123504j:plain

事象を定義する。ここで問題文を記号に置き換えると、

  1. あるメールが迷惑メールである確率:P(B)=0.2
  2. あるメールが通常のメールである確率:P( \lnot B)=0.8
  3. ある語句を通常のメールが含む確率:P(B |\lnot A) =0.2
  4. ある語句を迷惑メールが含む確率:P(B|A) =0.8

このとき語句を含んでいて、迷惑メールと判定される条件付確率P(A|B) = \frac{P(A \cap B)}{P(A)}

ここでベン図より条件付確率の分母は、

P(A) = P(A\cap B) + P(A \cap {\lnot  B})
P(A) = P(B)P(B|A) + P(\lnot B)P( B | \lnot A)
P(A) = 0.2*0.8 + 0.8*0.2 = 0.32

その一方で条件付確率の分子は、P(A\cap B) = P(B)P(B|A) = 0.2*0.8 = 0.16。以上よりP(A|B) = \frac{0.16}{0.32} = 0.5

(2):迷惑メール判定のアルゴリズムの精度を満たす為には、ある数値が幾ら以上であるのかを見積もるための問題。まず問題文を記号に置き換えると、

  1. ある語句を含むメールが迷惑メールである確率が0.9以上:P(A|B) \geq 0.9
  2. 通常のメールがその語句を含む確率:P(\lnot B | A) = x
  3. 迷惑メールがその語句を含む確率:P(B|A) = y

(1)と同様にして分母は、P(A) = P(A\cap B) = P(B)P(B|A) = 0.2y。分子は
P(A) = P(B)P(B|A) + P(\lnot B)P( B | \lnot A) = 0.2y + 0.8x
以上より、P(A|B) = \frac{P(B)P(B|A)}{P(B)P(B|A) + P(\lnot B)P(B | \lnot A)} = \frac{0.2y}{0.8x + 0.2y} \geq 0.9y \geq 36x

*1:ナイーブベイズを用いたテキスト分類:人工知能に関する断創録

*2:綱引きに蛇口当てゲーム?! 楽しく学ぶベイズフィルターの仕組み (1/4) -atmarkIT

*3:因果性 - 出典: フリー百科事典『ウィキペディア(Wikipedia)』-

*4:例えば相関係数はある2つの事象の間で、一つの数値が高いともう一つの数字が高くなる傾向がある事を示した係数であり、ある事象Aが起こるにつられてある事象Bが起こる事を言っている訳ではない[因果関係はないと言う事]

*5:統計検定 2級|統計検定:Japan Statistical Society Certificate