イカサマコインの例で最尤推定とベイズ推定の違いを理解してみる

# はじめに

最近世の中で統計学が流行っています．ITの発展によりデータが容易に得られるようになり，いまや様々な業界のシステムでデータ解析機能の適用を検討しているのではないでしょうか．そうなると，IT技術者は深かれ浅かれデータ解析のプログラムに触る必要も出てくるでしょう．すると当然「推定」というキーワードにぶち当たるわけです．はて，統計的な推定とは如何なものか？と言う疑問が湧くでしょう．

そんなわけで，統計学において得られたデータを元にある推定値を得る方法を探してみると，「最尤推定」とか「ベイズ推定」と言う手法は特に目に触れることになると思います．

初学者の小生は，これらの違いについて知りたくて，それっぽいキーワードでWeb検索をしたのですが，門前払いを食らってしまいました．何か，条件付き確率の式がウジュウジャ出てくる説明ばかりではあーりませんか！尤度？事前確率？もうーワケかららない！あー！

という感じで混乱してしまいました汗．きっと私と同じように頭を悩ませてる初学者もいるのではないかと感じました．もっと優しい例で理解できる記事があれば，そんな初学者の役に立てるのではないか．そんな思いをきっかけに，本記事を書くに至りました．

若干無理がある設定になってしまいましたが，対話形式のストーリーで書いてみることにしました．できるだけ感覚で理解できるようにするべく，ごちゃっとした数式は最後の方まで出さないように構成しました．

この記事が少しでも多くの統計初学者のご参考になれば幸いです ^^

# 設定

時は昔，トウケイ王国というお国がありました．この国では，コイントスを使った賭け事が流行っていたようなのですが，どうもコインを使った詐欺が横行していたよう．そんな良く分からないお国でのお話です．

ここでの登場人物は３人です．

1. イカサマコインを使って生計を立てるイカサマ師
1. 新米頻度論者
1. 新米ベイズ論者

なんとこのイカサマ師は前科100犯のイカサマ常習犯です．彼は懲りずにまたイカサマコインを使って詐欺をしたとの疑いをかけられているようです．

この国では多くの統計学者がその知識を使ってイカサマ野郎の罪を暴いていたとのこと．今ココに，新米の頻度論者と新米のベイズ論者がこのイカサマ師のもつコインが本当にイカサマかどうかを判定しようとしているところです．彼らにとって，これはデビュー戦のようです．

実は，このイカサマ師がもっているコインはやっぱりイカサマものなのです．しかし，今正に適当な試行によってこの事実は誤魔化そうとしているところです．けしからんですね．

それに対して，この新米頻度論者と新米ベイズ論者が持論によってこのイカサマ師に反論していく，そんな感じのお話です．

![図0.png](https://qiita-image-store.s3.amazonaws.com/0/110138/beab237f-752b-f49d-b48f-a15a3f61e0bf.png)

# イカサマ師の弁明

イカサマ師はその手に持っているコインが本当にイカサマではないかどうかを今ココで弁明しろと言われているようです．もし，コインが表になる確率が0.7以上だったら，そのコインはイカサマである，というルールがこの国では通用していたとします．

イカサマ師は本当はイカサマコインを持っているのですが，こんなことを考えています．

> イカサマ師：「（やべーな．ここでコインを何回も投げちまうと，きっとこのコインの真の確率に近い値が出ちまう．イカサマなのがバレるじゃねーか．そうだ，適当に5回位投げれば，それっぽい値が出る前に切り上げられるんじゃねーか？こいつら見たところ若いペーペーみたいだし，適当にちょろまかせるだろーよ．）」

そんなずるいことを考えるイカサマ師に天は味方をしたのか，5回のコイントスによって運良く下表のような結果を得たようです．

|    出た目   | 回数 |
|:--------:|:--------:|
| 表 | 3 |
| 裏 | 2 |

> イカサマ師：「（やったぜ．ということは，確率はと…．）」

```math
表が出る確率 = \frac{3}{5} = 0.6\\
裏が出る確率 = \frac{2}{5} = 0.4
```

## 来た，最尤推定
はい，ちょっとストップ！そう，今何の疑いもなく無意識的にやったこの計算が最尤推定の範疇に入るのです．

最尤推定の「尤」は，尤度から来ています．尤度とは，尤もらしさです．

ざっくり言ってしまえば，最尤推定とは観測した情報に最も尤もらしい（うまく当てはまる）ようなモデルこそが正義！と言う立場を取る推定方法です．ここで推定対象しているパラメータは「コインが表になる確率」と「コインが裏になる確率」になります．多分，中学とか高校の数学で確率を勉強した人にとっては，無意識的にこの方法で確率を計算しているんじゃないでしょうか？実はこれが最尤推定だったのです．

例えば極端な話，仮にコインを5回投げて5回とも表が出たとしたら，最尤推定的には「表が出る確率＝1」となってしまうのです．最尤推定的に言わせれば，未来永劫に渡り表が出続ける魔法のコインが見つかった！という話になってしまいます．

いやいや，6回目に投げたら裏になるかもしれないじゃん！と思うでしょう？でも，観測回数が5回で前述した結果を得たとしたら，最尤推定的にはこの問題は解決できないのです．6回目データなんてないし，過去のデータも知ったこったちゃない．今この場で得られた観測を信じるしかありません．

このイカサマ師は，最尤推定のそういう弱点を悪用して，敢えて少ない回数の試行を申し出たのです．ずる賢いヤツですね．

最尤推定が抱えるこの問題を，頻度論者とベイズ論者がそれぞれどのように解決していくのか？それはこの小話が進めば明らかになるでしょう．

## 話を戻しましょう
とうことで，最尤推定によって「このコインが表を出す確率は0.6である！以上！」ということになります．

イカサマ師は弁明を始めます．

> イカサマ師：「如何でございましょう，統計学者様．ご覧の通り，このコインが表を出す確率は0.6でございます（本当は0.8なんだけどな，少ない試行でちょろまかしたぜ♪）．」

イカサマ師は内心のニヤニヤをやや顔に漏らしながら，詭弁を続けます．

> イカサマ師：「確かに一般的な確率である0.5より少し大きいですが，0.7よりは小さい値でございます．この国のルールに従えばこのコインはイカサマコインではないということになります．きっと誤差の範囲なのでございましょう（誤差の範囲で真値より小さくなることを狙ったんだけどな♪）．これで勘弁をしていただけないっすかね？」

これが鵜呑みにされるとマズイですよね．イカサマ師は本当はズルをしているのに，このままではトウケイ王国でズルがまかり通ってしまいます．

# 頻度論者による判定方法

![図1.png](https://qiita-image-store.s3.amazonaws.com/0/110138/48338907-8fe3-1bd0-8823-212c611706c8.png)

頻度論者は不快そうな顔をして，こう主張します．

> 頻度論者：「試行回数が5回とは．明らかに少なすぎである．公平な判断を下すには，試行回数増やしていただけねばならない．世の中には大数の法則ってのがありましてね．試行回数を増やせば増やすほど最尤推定値は真値に近づくのである．」

そう，5回の観測結果なんて信用できんのだから，5000回振って観測して，最尤推定し直しちゃえばいいじゃん♪チャンチャン！ということなのです．正に，イカサマ師が恐れていたことを付かれてしまったわけです．

頻度論者はおもむろに立ち上がりコインを手に取り，丁寧にコイントスを始めます．彼のスタイルなのでしょう．

30分後…

先の5回の試行に加えて，もう4995回の試行を繰り返し，下表の結果を得たようです．

|    出た目   | 回数 | 確率 | 
|:--------:|:--------:|:--------:|
| 表 | 4036 | 4036/5000 ≒ 0.81|
| 裏 | 964 | 964/5000 ≒ 0.19|

頻度論者は，デビュー戦の勝利を確信した喜びからか，声高らかにこう言います．

> 頻度論者：「勝負あったな．回数を増やした上で最尤推定をした結果，そのコインが表になる確率が0.8程度になることが分かった．これはコインがイカサマであることの動かぬ証拠である．このイカサマ野郎め！」

あっさり有罪判決を受けてしましました．

> イカサマ師：「（チ，チキショー！新米のくせに．つーか30分も待たせやがって．）」

となり，これはこれで一件落着です．

# ベイズ論者による判定方法

![図2.png](https://qiita-image-store.s3.amazonaws.com/0/110138/e9eddb56-e445-8887-2355-65ee9ce8f497.png)

> ベイズ論者：「うーん．」

と，ここでベイズ論者がうなります．

> 頻度論者：「何かご不満でも？」

頻度論者が怪訝そうな目でベイズ論者の顔を伺っています．ベイズ論者は頬に手をかけ，どこか遠くを見ているような様子でその問いに答えます．

> ベイズ論者：「頻度論者さんよ，確かにそれは合理的な方法だ．でもね，今回はコインを5000回も投げる時間があったから良かったようなもんだ．事ある毎にそんな回数を試行するつもりかい？世の中ね，そんな悠長に時間とってらんない場合が結構あるもんなんだよ．（つーか今ここでコイントスに30分も使うなよな－）」

まぁ，分からんでもない，という空気が流れます．同時に，じゃあどうするのか？と問いたそうな目線がベイズ論者に注がれます．

> ベイズ論者：「いやさ，そこのイカサマ師ってさ，もう過去に100犯もやらかしちゃってる常習犯なんでしょ？その前科のデータがあるんだったらさ，推定に最初っから反映させちゃえばいいじゃん．」

イカサマ師はバツの悪そうな顔をしています．その横では「ほう，ではどうなるのか」と問いたそうな表情で，頻度論者がベイズ論者にカッと視線を送っています．

> ベイズ論者：「ここにある彼の前科のデータベースを参照すると，過去に摘発されたイカサマコインについて，表になる確率の平均値が0.75になるようなんだよね．それをさ，最初にイカサマ師がやった5回の試行の結果にかけちゃいなよ♪」

な，何と乱暴なことを！頻度論者の眉間に皺が寄ります．

ベイズ論者は構わず，下表を突きつけてきます．

|    出た目   | 5回試行確率: P(Y&#124;X) | 前科の確率: P(X) | P(Y&#124;X) x P(X) |
|:-----------:|:-----------------------:|:--------:|:-----------:|
| 表 | 0.6 | 0.75 | 0.45 |
| 裏 | 0.4 | 0.25 | 0.10 |

あれ，これじゃあP(Y|X) x P(X)の結果を足しても1にならないじゃん．確率って全事象について足したら1にならないといけないんじゃないの？と思ったそこのあなた．正しいです．ベイズ論者も気がついたようです．

> ベイズ論者：「あー！正規化忘れてたわ笑．」

てなわけで，正規化（和が1となるように全データに平等に下駄を履かせる処理）をします．

|    出た目   | P(Y&#124;X) x P(X) 正規化前 | P(Y&#124;X) x P(X) 正規化後 |
|:-----------:|:-----------------------:|:--------:|:-----------:|
| 表 | 0.45 | 0.45 / (0.45 + 0.10) ≒ 0.82 |
| 裏 | 0.10 | 0.10 / (0.45 + 0.10) ≒ 0.18 |

> ベイズ論者：「このイカサマ師の投げたコインが表になる確率は，約0.82と算出されるようだね．ほーら，前科を反映させれば，5000回も試行するまでもなく，そこそこいい感じの値が出たでしょう♪」

|    出た目   | 頻度論者の判定 | ベイズ論者の判定 |
|:-----------:|:-----------------------:|:--------:|:-----------:|
| 表 | 0.81 | 0.82 |
| 裏 | 0.19 | 0.18 |

ほう，確かに頻度論者とベイズ論者の計算結果は，概ね合っているように見えますね．

さぁしかし，これを聞いたイカサマ師はどう思うでしょう？

> イカサマ師：「いやいやいや！ふざけ…もう一度よくお考え直し下さいませ．そりゃー過去のデータを出されちまうとこっちの立場は弱くなっちまいますけどね，過去は過去っすよ．（なんだよなんだよ，そもそもそんな昔の話を無理やりほじくり返すベイズ論者さんのほうが，イカサマしているんじゃないのですかい？）」

と言った具合に一方的に過去の話を蒸し返され，だからお前は有罪だなどと言われたら，イカサマ師だって（いくら黒でも）文句の一つも言いたくなるのは無理もないでしょう．（ベイズ推定の欠点はこんなところにありそうな気がしますね．）

そんなイカサマ師は目をキラキラさせながらこう訴えます．

> イカサマ師：「とにかく，オレは心を入れ替えたんっすよ！今回ばかりは，イカサマしてねーっすよ！」

# 頻度論者の反論

ところが，頻度論者さんは冷静に，まずイカサマ師の主張を崩します．

> 頻度論者：「いやイカサマ師さんよ，もう5000回の試行によって君はイカサマ判定を受けてるんだよ．何なら500000回やったっていいんだ．こちとら頻度論者だからね．サンプルが多いほうが精確な観測結果が得られるだろうよ．続けるかい？」

これではイカサマ師も反論しにくいでしょう．たっぷり時間をかけてエビデンスを集められたら，大数の法則には敵わないわけですからね．それに，そんなにコイントスをやられたらいつ終わるか分かったもんじゃありません．仮に待ったところで化けの皮を剥がすだけです．観念したイカサマ師は，しょんぼりした様子で警備のものに連れて行かれました．

![図3.png](https://qiita-image-store.s3.amazonaws.com/0/110138/0d56085b-648f-2945-c288-168970ad86da.png)

次に頻度論者は，議論の矛先をベイズ論者に向けて，こう続けます．

> 頻度論者：「ベイズ論者さんよ，私は決してあのイカサマ野郎の肩を持つわけではないのだが，あなたのやり方が少々強引だという点だけはうなずけてしまうんだ．」

頻度論者はベイズ論者のやり方に対して，疑問を抱いているようです．

> 頻度論者：「今回はね，私が行った5000回試行後の最尤推定と，君のベイズ推定の結果がたまたま類似しているから良さそうに見えるものの，今ここで観測される結果が必ずしも過去のデータに従うとは限らないんじゃないのかね．」

待ってましたと言わんばかりにニヤリとした表情で，ベイズ論者は答えます．

> ベイズ論者：「そうですねー，そこはあなたの言うとおりですよ．でもね，頻度論者さんのように毎回毎回5000回とか500000回とか試行するっていうのは，現実的に考えて，割に合わない場合が多いんじゃないですかねー？」

ベイズ論者はまくし立てるように，否定しにくい言葉をかぶせてきます．

> ベイズ論者：「この国に何人のイカサマ師がいて，何枚のイカサマコインがあると思ってるんです？そういうコイン一枚一枚に対して，この国の税金を使ってひたすらコイントスをしまくる仕事を振るってのが，本当に合理的なやり方だと思うのですかい？」

むむむ．唐突に税金の話なんて出された日には，目も当てられなくなりますが，そのあたりはぼかしながら頻度論者も切り返します．

> 頻度論者：「うむ，あなたの主張も分かる．しかしだね，先程のあのイカサマ師の申すように，本当に今回ばかりは心を入れ替えた元イカサマ師なる容疑者がいたらどうするのだ？改心したはずの善良な国民が無実の罪に問われてしまう可能性だって否定出来ないのだよ．それが本当に合理的な判決だと言えるのかね？」

頻度論者も負けじと否定しにくい論点を挙げながら，追い打ちをかけます．

> 頻度論者：「あなたの言うように，過去のデータを無理矢理にでも推定に当てはめようとするその態度が，どうも主観的に思えてならないのだ．その知識が今日この瞬間にも正しいという証拠がどこにあるのだ？今この現場で起きている事象をきちんと客観的に観測した結果こそが，確実に正しい情報だと思うのだがね．」

さぁ，こんな風にまくし立て返されたら，ベイズ論者も黙っていません．

> ベイズ論者：「まー分かるんですけどね．でも，本当に観測が正しいって言えるんですかね？今はコインの表と裏っていう分かりやすい観測だから良いものの，現実世界にはノイズまみれのデータしか吐かない計測器なんて山ほどあると思うんですわ．本当にそれを信じて良いんですかね？人類の叡智で培ったモデルを事前情報として取り込めば，そういう観測のノイズに強い推定だって可能になるんですよ．」

頻度論者は即答します．

> 頻度論者：「観測にノイズが含まれる場合があることなど百も承知である．だから試行回数を増やして，真値に近い推定値を導けばいいのではないか．私が最初に言ったことだろう．人類の叡智だろうがなんだろうが，今この瞬間にもそれが絶対に正しいと証明することはできるのか？それが本当に正しいかを確かめるためには，結局実際に観測して，その結果と比較してみなければならないだろう？だから私としては，そんな不確かな情報の成否を観測によって確認することなく，安易に信じようとするそちらの態度に，違和感を感じずにはいられないのだ．」

> ベイズ論者：「せっかく使えるものがあるんだから，堅いこと言わずに使いましょうよ？ってだけの話なんですよ．全く論拠に欠ける情報と言うわけでもないわけですし．例えば，今日この瞬間からニュートン力学が成り立たなくなりました！なんて極端な変化が起きるなんて，常識的に考えてありえないですよね？」

> 頻度論者：「その人間の常識というもの自体が疑わしいのだよ．これまでの歴史を振り返っても，その時代の常識をくつがえすような理論が幾度となく提案されてきているではないか．ニュートン力学をひっくり返す理論が未来永劫に渡って絶対に登場しないということを証明できるのか？今真に信頼できるのは，現実世界の観測なのだ．人間の作り出した観念が信頼性に欠くことは，歴史が示しているとおりである．」

> ベイズ論者：「あなたヒュームみたいなこと言いますね．もうそこまで言われてしまったら，世の中の理論を何も信じられなくなってしまうじゃありませんか…．少なくとも今の時代でそれなりに妥当性を持つ理論を使う範囲においては，実用に耐える程度の精度は期待できるんじゃないですかね？それにあなたの言うように，本気で毎回毎回500000回の試行をやろうだなんていくらなんでも…」

さー，盛り上がってきましたね．これ以上この２人に議論を続けさせてもまた議論は先頭に戻り，あとは売り言葉に買い言葉でしょう．もう止めさせます笑．

さて，ここまで来ればもうお分かりと思います．

そうです．ここで重要なのは***「過去のデータ（あるいは事前知識）を推定結果に反映させるか否か」***という点が「頻度論者」vs「ベイズ論者」の最大の争点になっている，ということなんです．

これを，そんな当てにならない情報を使いまわすなど***けしからんと言う立場をとるのが「頻度論者」***，まぁずれはあるかもしれないけど***使えるものは使おうよという立場をとるのが「ベイズ論者」***ということです．

# 頻度論者とベイズ論者，どちらが正しいのか？

どちらが正しいのかという議論を初めたら，先の２人のように永遠に討論が終わらなそうな予感がしてしまいます．

頻度論的な手法は確かに理想的ではあるけどデータ集計自体に工数がかかり過ぎるため現実的には適用が難しい場合があり，ベイズ論的な手法では現実的な工数で効率的に推定はできるけど冤罪の被害者を出してしまうリスクがある，というジレンマがあるのです．

とは言え，二律背反的にどちらが正しいくてどちらが間違っているなどという結論を出すべきではないでしょう．両者には両者の良いところがあるわけですから，その立場を尊重しようよ，という態度をとるのが平和的と言えます．

つまり，状況によって使い分けましょう，ということです．

というわけで，それぞれの立場を整理してみます．

## 頻度論者の立場
- できるだけ偏りのない観測を多数得ることで，公平・公正な判断を導くことに重きを置く．
- 多少手間をかけても良いから，より精確なデータ解析を必要とする用途に適している．
  - 国勢調査等
- 公平・公正な推定が可能だが，そもそも欲しい情報を欲しいだけ観測できるかどうかがネックとなる．
- とは言え，ベイズ論者がどこからともなく持ってきた事前知識がどうも気持ち悪く思えてしまう．

## ベイズ論者の立場
- 多少データが偏っていてもよいから，少ない観測で効率的に推定が行えることに価値を見出す．
- そのためなら，外部の情報を事前知識として持ち込むことを厭わない．使えるものは使いたい．
  - この時点で，事前知識が不正確だと推定もメチャメチャになるというリスク（ベイズリスク）を必然的に背負うことになる．
  - 先のイカサマ師の話で，もし彼が本当に心を入れ替えて無実だとしたら冤罪事件となることをも厭わないということである．
- そのリスクを負うことを承知してでも，推定値を効率的に得ることを重要視する用途に適している．
  - リアルタイムなロボットの自己位置推定等（観測の度にサンプル数を稼ぐためにいちいちロボットを止めてられないですよね．）
- あるいは，そもそも観測自体ができない状態を扱いたい場合でも，エイヤ！とでも仮説を立てて，演繹的な推論により学説を主張したい場合にも使われる．
  - 例えば，経済学者はこの立場を取る場合が多い．

![図4.png](https://qiita-image-store.s3.amazonaws.com/0/110138/8e9e544a-be12-20ac-e60e-d95d72f4c4fd.png)

いかがでしょう．何となく両者の立場の違いのイメージはつくでしょうか ^^

# 最尤推定とベイズ推定の違い

ここまでお読みいただけたなら，もう語ることも無いですよね^^ 
本記事の主題の回収として，一応まとめます．

## 最尤推定
- 得られた観測のみを推定の拠り所にする方法．
- 最尤推定の精度を上げようと思ったら，頻度論者の立場に立ってサンプル数を増やすのが正攻法．

## ベイズ推定
- 得られた観測に加え，事前知識で無理やり調整を加える方法．
- ベイズ推定の精度を上げようと思ったら，事前知識の確からしさを向上させることになる．
  - 最尤推定と同様，サンプル数を増やすことでも推定精度を上げることはできます．
  - が，それができないからベイズ推定を使うのが自然な流れでしょう．
  - サンプル数が必要十分稼げる見込みがあるのなら，こんなまどろっこしいことをする必要はないし，むしろせっかくきれいな観測情報があるのに余計な情報を混ぜてしまうことで却って推定精度を下げる要因にもなりえます．
  - 従って，サンプル数改善によるベイズ推定精度の向上には限界があるでしょう．

# ベイズ則の数式との対応

オマケです．

さぁ，イマイチ直観的に理解しづらい（と思われる）ベイズ則の数式について蓋をしてきましたが，せっかくなのでお出まししてもらいましょう．

先のイカサマ師のお話で計算した値と，ベイズ則の数式を対応させてみます．

実は，こっそりXとかYという変数を出していたのですが，Xは事前分布の確率変数，Yは観測の確率変数としています．

![図5.png](https://qiita-image-store.s3.amazonaws.com/0/110138/97704587-6c12-b862-b1fd-7516320371b9.png)

どうでしょうか，先の例で行った計算と，数式との対応について，イメージが湧いてくるのではないでしょうか ^^

今回の例では確率変数を離散値としましたが，連続の確率変数を扱う場合には確率密度関数を使った式に対応させてしまえば良いです．

![図6.png](https://qiita-image-store.s3.amazonaws.com/0/110138/c18c418f-4349-21fb-46e9-b7226da7be10.png)

連続変数を扱った時のベイズ推定の挙動の例としては，過去に小生が投稿した下記の記事に譲ることと致します．

  - [シンプルなモデルとイラストでカルマンフィルタを直感的に理解してみる](http://qiita.com/MoriKen/items/0c80ef75749977767b43)
  - [なぜパーティクルフィルタの推定値に「重み付き平均」が使われるのかを考察してみた](http://qiita.com/MoriKen/items/da8d290dcefad81b478d#_reference-e5be0549f93d1b775a46)

# おわりに

以上です．

最尤推定とベイズ推定のざっくりした違いを，何となく頭でイメージできるようになる一助となって頂けたとしたら，幸いです．