ベイズの定理

今回は線形代数から脱線して確率論の分野から。確率論やこれに関連する統計学は扱うテーマが具体的なので、演習問題を解いていたりすると、「これってプログラムのネタに使えないかな?」というような考えが浮かんでおもしろいです。その中で最近流行のベイジアンの土台となっているベイズの定理を選んで調べてみました。

定理の説明

ベイズの定理の主旨は、
事象Aの確率 P(A)
事象Bの確率 P(B)
事象Aが発生した条件の下で事象Bが発生する確率 P(B|A)
が分かっている場合、
事象Bが発生した条件の下で事象Aが発生する確率 P(A|B)
が分かるということを意味していて、定理自体はものすごくシンプルな形をしています。
P(A|B) =  \frac{P(B|A)P(A)}{P(B)}
証明もいたって簡単です。まず、2つの集合AとBに関して、その論理積は乗法定理を用いて2つの式で表現できます。すなわち、
P(A \cap B) = P(B|A)P(A) = P(A|B)P(B)
です。この右側の等式を変形すると、
P(A|B) =  \frac{P(B|A)P(A)}{P(B)}
となり、上式が得られます。

まあ、定理の内容を理解したところで、即おもしろいサービスの開発につながる訳ではないですが、とりあえず自分のアイデアの引き出しにしまって置こうと思います。例えば、あまり実用的ではないですけど、データセンター全体のサーバーの故障率から特定のサーバーの故障率を推定するとか、BTSで管理しているプロジェクトに関して、バグの発生率からスケジュールが遅延する確率を推定する、なんて出来るのでしょうか。良いアイデアが思いついたら実装して公開したいと思います。