芸人、ミルクボーイはベイズ推定漫才である


やっぱりナウな芸人はベイジアンなんですね(意味不明)。
最尤推定とか最尤法についてはもう少し真剣に頑張る別記事で書くと思います。
お笑い、ミルクボーイは好きだけど統計は嫌いな人に捧ぐ記事。

前提条件として

おかんはパンとコーンフレークとサバの塩焼きの三種類しか朝食に食べない(ような人である)。
おかんは日記をつけており、今までの朝食の履歴を調べると朝食のメニューの選ばれる確率は

サバの塩焼き60% = 0.6
パン20% = 0.2
コーンフレーク20% = 0.2

ちょっとカッコいい確率の書き方でマウントをとっておく

P(朝食にサバの塩焼き)=0.6\\
P(朝食にパン)=0.2\\
P(朝食にコーンフレーク)=0.2

ベイズの定理ではコレを事前確率と言います。

もしもミルクボーイがFrequentistだったなら

Frequentistの推定の考え方
繰り返し測定した場合、コレが出るでしょう

内海
どうもミルクボーイです。お願いします。
今、ベルマークをいただきましたけどもね。
こんなんなんぼあってもいいですからね。

駒場
うちのおかんがね、好きな朝ごはんがあるらしいんやけど
その名前を忘れたらしいねん。
いろいろ聞くんやけどな、全然わからへんねん。

内海
食事履歴を数えてみたら、「サバの塩焼き」を60%選ぶみたいやし、
「サバの塩焼き」と言っておけば40%のミスを許容して当たるやろ。

↑繰り返し朝ごはんを観測していけば、サバの塩焼きを選ぶことが最も多くなるのでサバの塩焼きを選んでいる。

内海 駒場
どうもありがとうございました。

過去のデータを数え上げて最も登場頻度が高い物を選択した結果「サバの塩焼き」に決定しました。

ミルクボーイはBayesianである

Bayesianの推定の考え方
観測して、推測して、経験として次の推定に活かそう

内海
どうもミルクボーイです。(略)

駒場
うちのおかんがね、好きな朝ごはんがあるらしいんやけど
その名前を忘れたらしいねん。
いろいろ聞くんやけどな、全然わからへんねん。

内海
ほんだら俺がね、おかんの好きな朝ごはん一緒に考えてあげるから、どんな特徴言うてたかとか教えてみてよ。

↑まずここでデータの観測が始まる。

駒場
牛乳とかかけて食べるやつやって言うてた。

新たな情報をもとに推定する。
牛乳をかける朝食とは何なのか?

クイズ100人にききましたという番組データが手に入った。
「パン・コーンフレーク・サバの塩焼き、に牛乳をかけたことがありますか?」

よくある質問ですね。結果は、

P(サバの塩焼きに牛乳をかける)=0.01\\
P(パンに牛乳をかける)=0.5\\
P(コーンフレークに牛乳をかける)=0.9

最も牛乳をかけそうな朝食を考える時、ベイズの定理が使えます。
この問題をベイズの定理に当てはめると、

P(牛乳をかけるならば、朝食は〇〇やろ) = \frac{P(朝食は〇〇や)×P(〇〇には牛乳かけるよ)}{P(牛乳かけるすべてのメニューの割合)}

左辺は条件付き確率として縦棒を使ってこんな風にも書きます

P(牛乳をかけるならば、朝食は〇〇やろ) = P(朝食は〇〇 | 牛乳かけるって言うんなら)

そもそも牛乳をかけない食事は考える必要が無いので牛乳かけるメニューを分母に持ってきています。
具体的に牛乳をかけるメニューの割合って何?って話なので説明すると、

P(朝食にパンを選ぶ)×P(パンに牛乳をかける) 
+ 
P(朝食にコーンフレークを選ぶ)×P(コーンフレークに牛乳をかける) 
+
P(朝食にサバの塩焼きを選ぶ)×P(サバの塩焼きに牛乳をかける) 

になります。

駒場さんが相談しているのは
「牛乳をかけるという情報から、より正確に朝食のメニューを提案してほしい」
なので、牛乳をかけるか・かけないか を考えていない最初の朝食に選ぶ確率を使うのは間違っています。
よって得られた情報から確率を更新する必要があるわけです。

さっきのベイズの定理に当てはめて計算してみましょう。

まず分母の計算ですが、
0.2*0.5 + 0.2*0.9 + 0.6*0.01 = 0.286
つまり牛乳をかけるという情報だけで、オカンの朝食は人生で30%くらいしか登場しない稀なメニューであることが分かりました。

P(牛乳をかけるならば、朝食はパンやろ) = \frac{P(0.2*0.5)}{P(0.286)} = 0.349\\
P(牛乳をかけるならば、朝食はコーンフレークやろ) = \frac{P(0.2*0.9)}{P(0.286)} = 0.629\\
P(牛乳をかけるならば、朝食はサバの塩焼きやろ) = \frac{P(0.2*0.5)}{P(0.286)} = 0.021

こうして情報による更新を受けて、コーンフレークの確率が最も高くなり、サバの塩焼きを選ばれる確率が減少しました。
だから内海さんはこういえるわけです。

内海
その特徴はもう完全にコーンフレークやがな。
すぐわかったよこんなもん。

でも駒場さんはこういうのでした。

駒場
俺もコーンフレークやと思てんけどな、おかんが言うには、死ぬ前の最後のご飯もそれでいいっていうねんな。

????????????????

新しい情報が出てきてしまいました。
でもベイズの定理ならば恐れることはありません。
新しい情報をもとにさらに確率を更新してやることが出来るのです。

クイズ100人にききましたという番組データが手に入った。
「パン・コーンフレーク・サバの塩焼き、を人生最後に食べたいと思いますか?」

よくある質問ですね。結果は、

P(サバの塩焼きを人生最後に食べたい)=0.2\\
P(パンを人生最後に食べたい)=0.1\\
P(コーンフレークを人生最後に食べたい)=0.01

この場合、既に情報によって更新されている確率を事前確率としてベイズの定理に組み込みます。

P(朝食は〇〇やろ|人生最後に食べたい そして 牛乳をかける) = \frac{P(牛乳をかける朝食は〇〇や)×P(牛乳をかける朝食は〇〇で人生最後に食べたいとも思っている)}{P(人生最後に食べたくて、牛乳かけるすべてのメニューの割合)}

こうして得られた確率をさらに次の情報で絞っていくことができるのです。
こんなやり取りをミルクボーイは続けていきます。

なんであんなに、栄養バランスの五角形が広いんかわからんらしい
甘くてカリカリしてる
晩御飯ででてきても全然いい
子どもの頃、なぜかみんな憧れた
お坊さんが修行も時に食べてる

でも結局最後には分からなくて

ほんまにわかれへんがな、それどうなってんねん。

内海 駒場
どうもありがとうございました。

結局ベイズだとなにがすごいの

最近ではIoTやデータベースの発展、SNSコメントなどからも情報(データ)が手に入りやすくなって、アンケートでの回答やら、工場の機械からの故障率やらを事前確率として求めやすくなりました。
さらにデータを集めていったときに柔軟に更新することが出来ます。
時代の変化によってユーザーの考えが変わったり、年齢層が変化したりしていっても、更新させていくことができるわけです。
また、Frequentistだったなら確率の分布はすでに決定されているものだったけども、ベイズ推定ならば出てきたデータから元の分布がどんなものだったのかを考えられるという利点があります。

使いどころによってFrequentistの推定のほうがいい場合も十分にあります。
ベイズ推定でよく例に出てくるのはスパムメールのフィルターの話ですが、すべてのスパムメールを集めてきてすべての文章を解析して、という手順を踏むよりも
経験的に「出会い」という単語がスパムメールには含まれているな、とか「当選しました」が入っていたら90%はスパムメールだな、といった感覚を盛り込むことができるので、データが少ないところから始める場合には向いていたりするそうですよ。

もうええわ!どうも、ありがとうございました〜

どんな使い方があるのか、色々ご存知の方、是非教えてください。
ご指摘・ご指導大歓迎ですのでお願いいたします。

参考

ミルクボーイの漫才「コーンフレーク」の台本書き起こし
Frequentist bayesian
bayes_vs_frequentist
ベイズ統計学の考え方
フィッシャーの最尤法