お知らせ

ただいま、シンタックスハイライターの設定を見直しております。
プログラムが見にくくなっているページがありますが、ご容赦ください。

ベイズの定理

数学

こんにちは。この数回は年末年始で単発の題材でしたが、この投稿が掲載される日は1月6日ということで、レギュラー編(というものがあったのか( ゚Д゚))に戻ります。「情報科 いっぽ まえへ!」という名前のサイトでありながら数学の話題が多いのですが、情報を数値として表現するためということでお付き合いください。

ベイズの定理の話題に入る前に

天気にまつわる言い伝え

最近は天気予報が進化してかなり精度が高くなってきているので、空を見て天気を予想することはあまりなくなってしまったように思います。私が子どもの頃には、まだ言い伝えが多くあったように思います。例えば「夕焼けが見えると翌日は晴れる」とか、「ツバメが低く飛ぶと雨が降る」とかいろいろあったように思います。科学が進歩して、これらの言い伝えの根拠がはっきりしてきましたが、昔の人は経験則でこのような現象を見ることによって、天気を予想していました。

狼と羊飼い(オオカミ少年)

有名な童話ですが、簡単にあらすじを書いておきます。羊飼いの少年が、本当は狼がいないのに「狼が出たぞ!」と叫ぶと、村人が大勢集まってきます。少年は面白がって「狼が出たぞ!」と叫ぶのを繰り返していました。騙された村人が少年を信じなくなってしまったところに本当に狼が出てしまうのですが、少年のことを助ける人は誰一人いなくなってしまうというお話です。

問診

病院で「熱はありますか?」「おなかは痛いですか?」「咳は出ますか?」など問診で体調について訊かれることがあります。症状を知ることから、病名や治療を絞り込むことをしています。

知りたいことは原因や理由

私たちの身の回りには、直接原因や理由を知ることができるものばかりではありません。現象を観測することによって、推測しているものは多くあります。上の例では、現象として「少年の行動」や「夕焼け・ツバメの飛ぶ高さ」、「問診内容」が当たります。それらの現象から、「少年の発言の信憑性」「天気」「病名や治療法」といった現象を生じさせている原因や理由などを推測しています。

本来は「原因・理由→現象」ですが、直接「原因・理由」を知ることができないため、「現象→原因・理由」を推測しているのです。

ベイズの定理

それではいきなりですが、ベイズの定理です。この式が成り立つ理由は後にします。高校数学で使われている記号で書くと

\[P_{B}(A)=\frac{P_{A}(B)P(A)}{P(B)}=\frac{P_{A}(B)P(A)}{P_{A}(B)P(A)+P_{\overline{A}}(B)P(\overline A)}\]

になります。

\[P(A|B)=\frac{P(B|A)P(A)}{P(B)}=\frac{P(B|A)P(A)}{P(B|A)P(A)+P(B|\overline A )P(\overline A)}\]

と書いている方が多く見かけます。\(P_{B}(A)\)や\(P(A|B)\)は、事象Bが起きたという条件の下で事象Aが起きる確率を表します。ある条件の下での確率ということで、条件付き確率といいます。

例として、事象Aを「翌日は晴れる」、事象Bを「夕焼けが見える」こととします。このとき、左辺の\(P(A|B)\)は「夕焼けが見えた条件の下で、翌日は晴れる」確率になります。

真ん中の分数ですが、分子の\(P(B|A)\)は「翌日が晴れたという条件の下で、前日が夕焼けだった」確率です。これをもっともらしさ(尤度・ゆうど)といい、事前にそのような確率を調べておくことができます。また、\(P(A)\)は、単に「翌日が晴れる」確率で、特に観測情報がない段階での確率になり、これは事前確率にあたります。\(P(B|A)\)と\(P(A)\)を掛けることにより、「翌日が晴れて、しかもその条件の下で、前日が夕焼けが見えた」確率が求まります。次に分母\(P(B)\)ですが、「夕焼けが見える」確率です。一番右の辺の分母は複雑に見えますが、「翌日が晴れて、その前日に夕焼けが見えた」ときと「翌日が晴れなくて、その前日に夕焼けが見えた」ときに分けて計算しているだけの違いです。

このような計算により、左辺\(P(A|B)\)にあたる「夕焼けが見えた条件の下で、翌日は晴れる」確率が求められます。これは、「夕焼けが見えた」という観測情報を得た後の確率ということで、事後確率にあたります。

ここでは、主観による確率について説明しましたが、このベイズの定理は主観確率でも頻度確率でもどちらでも使えます。

ベイズの定理が成り立つ理由

ちゃんとした証明ではなく、具体的な例を使って説明します。

全校生徒1000人の学校で、無作為に一人の生徒を抽出します。この学校に通う生徒で事象Aとして「リュックを使っている生徒」としたとき、該当する生徒は300人います。また、事象Bとして「自転車通学をしている生徒」に該当する生徒は230人います。両方の事象に当てはまる\(A \cap B\)である「リュックを使っていて、自転車通学している生徒」は90人います。この人数を図で表すと、次のようになります。

このとき、「リュックを使っていて、自転車通学をしている生徒」を選ぶ確率を3つの方法で考えてみます。

考え方① 直接考える

全校生徒1000人のうち、「リュックを使っていて、自転車通学をしている生徒」は90人です。確率は次のように求められます。全校生徒を表す正方形のうちで、左上の領域(橙の斜線と緑色の重なった部分)を選ぶ確率になります。

\[P(A \cap B) = \frac{90}{1000} = \frac{9}{100}\]

考え方② リュックを使っている生徒に着目して考える

リュックを使っている生徒が選ばれる確率\(P(A)\)を考え、かつリュックを使っている生徒の中で自転車通学の生徒である確率\(P(B|A)\)を求めます。

\[P(A \cap B) = P(A) \times P(B|A) = \frac{300}{1000} \times \frac{90}{300} = \frac{9}{100}\]

考え方③ 自転車通学をしている生徒に着目して考える

自転車通学をしている生徒を選ぶ確率\(P(B)\)を考え、かつ自転車通学をしている生徒の中でリュックを使っている生徒である確率\(P(A|B)\)を求めます。

\[P(A \cap B) = P(B) \times P(A|B) = \frac{230}{1000} \times \frac{90}{230} = \frac{9}{100}\]

ベイズの定理を作る

考え方①~③まで同じ値が出ました。このうち、②と③より

\[ P(B) \times P(A|B) = P(A) \times P(B|A) \]

が導かれます。両辺をP(B)で割ると

\[ P(A|B) =\frac{P(A) \times P(B|A)}{P(B)} \]

とベイズの定理になります。

このような計算により作られるベイズの定理を応用した機械学習もあります。とりあえず今回はこれでおしまいにします。それではまた。

この記事を書いた人
春日井 優

高校で情報科という教科を担当しています。以前は数学科も担当していました。(今でも数学科の教員免許状は有効です。)プログラムを覚えたのは、「ゲームセンターあらし」という漫画のキャラクターがBASICを解説する「こんにちはマイコン」を読んだことがきっかけでした。

Posted by kasugai