Monty Hall Problemシミュレーション
What's モンティホール問題?
確率論(事後確率関連)でもっとも有名な問題のひとつがモンティホール問題です。そんなモンティホール問題(Monty Hall Problem)とは、
これは、クイズ番組です。 3つの閉じられたドアがあります。 これらのドアのどれか1つを開けると、そこには高級車があり、それをもらえます。 しかし、間違ったドア(高級車の無いドア)を開けると、そこにはヤギしかおらず、挑戦は失敗となります。 挑戦者は、まず、1つドアを選びます。 すると、ドアのどれが正解かを知っている司会者が、 挑戦者が選んでいないドアかつ、正解でないドアを開け、こういいます。 「あなたが選ばなかったこのドアには、ヤギがいました。 今なら、まだ開けていないもう1つのドアに変更しても構いません。 どうしますか?」 このとき、挑戦者は、ドアを変えるべきでしょうか? それとも、自分の決定を信じて、変えないほうがよいでしょうか? (確率的にどちらが良いか)
という問題です。
この問題は、事後確率の問題であり、人間が直感で判断するのは、厳しい問題です。
IQが最も高いと言われるマリリン・ボス・サバント氏は、この問題を正解しました。
(この人が最初に答えを提唱したといわれている)
さて、確率はいくらでしょう?
シミュレーション
今回は、シミュレーションから答えを導いてみます。一様分布擬似乱数により、ドアを選択し、変更した時としなかった時の確率を算出し、比較します。
実装言語はRです。
ソースコードはGitHubにて公開します。
MITライセンスです。
github.com
こんな感じでシミュレーションします。
結果はこうなりました。
この図を見れば、確率は言うまでもなく明らかです。
確率は、NotChangeが32.49%、Changeが67.32%でした。
では、これをできるだけ直感的に考えるべく、ドアの数を増やしてみます。
問題設定を少し変えてみます。
これは、クイズ番組です。 100個の閉じられたドアがあります。 これらのドアのどれか1つを開けると、そこには高級車があり、それをもらえます。 しかし、間違ったドア(高級車の無いドア)を開けると、そこにはヤギしかおらず、挑戦は失敗となります。 挑戦者は、まず、1つドアを選びます。 すると、ドアのどれが正解かを知っている司会者が、 挑戦者が選んでいないドアかつ、正解でないドアを98個開け、こういいます。 「あなたが選ばなかったこのドア98個には、ヤギがいました。 今なら、まだ開けていない残り1つのドアに変更しても構いません。 どうしますか?」 このとき、挑戦者は、ドアを変えるべきでしょうか? それとも、自分の決定を信じて、変えないほうがよいでしょうか? (確率的にどちらが良いか)
100個ドアを用意するのです。
同様にシミュレーションしてみました。
プログラムは、door変数の値を変えただけです。
確率は、NotChangeが0.96%、Changeが98.93%となりました。
この二つのシミュレーションから推測できるように、
NotChangeの当たる確率は、
となり、
Chageの当たる確率は、
となります。
ドアを変えない場合は、当然の確率ですね。(司会者が開けても開けなくても関係ないから)
ドアが100個あると、挑戦者が正解を選ばなかった場合、司会者は一つしか無い正解を除いて、
98個のドアの可能性を除外してくれたというわけで、
変えたほうが確率が高くなるのは直感的であると思います。
ですが、元の問題文からは回答者が決めた後、司会者が1つ開けるという問題設定しかされていないため、
100コの扉にしたときに、司会者は1つだけ開けるのか、98コ開けるのか明確でありません。
そこで、それ以外の考え方として、このような説明もあります。
回答者は選択を変えない限り、確率は1/3で一定です。
注目すべきは、「司会者は答えを知っていて、正解でないほうの扉を開けている」という点。
回答者がAを選び、正解がAなら、どちらを司会者が開けても関係ありません。
ところが、正解がBかCなら、司会者は正解でないほうを開けるので必ず残った扉は正解です。
まとめると、正解がAなら変えたら×、Bなら変えたら○、Cなら変えたら○。
よって、確率は2/3になります。
この説明であれば、問題設定を変えないため、より納得しやすいかもしれません。
筆者も初めにこの問題を知ったときは、100コの扉の方が理解しやすかったですが、
完全な理解のためには、やはり後者の説明のほうが、正当派な気がしています。