モンティ・ホール問題をブラウザ上で再現 実際に動かせば納得できるはず

雑学、雑感フォント

理論上の確率は分かっていても、直感とは違っているために納得しづらいケースが結構あります。説明しようにもなかなか難しい。納得しづらい理由が分かったところで、やはり腑に落ちないことも多々あります。理論上の確率が感覚的に理解しづらいものに、モンティ・ホール問題があります。

モンティ・ホール問題は、一つだけ用意されている豪華賞品を、参加者が3つのドアから選ぶ、アメリカのクイズ番組「Let’s make a deal」のーナーに由来する確率の問題です。当たりのドアを開ければ車が現れ、ハズレのドアを開けるとヤギが出てくるというもの。

普通の3択なら、どれを選ぼうがどう選ぼうが確率は1/3です。しかしモンティ・ホール問題では条件が追加されているために問題がややこしくなります。

モンティ・ホール問題では参加者が開けるドアを選んだ後に、司会者が残りの二つのドアのうちハズレのドアを開けて見せ、その結果を元に、参加者は再度開けるドアを選び直すことができます。

  1. 参加者は3つのドアから1つ開けるドアを選ぶ
  2. 司会者は参加者の選ばなかったドアのうち、ハズレのドアを開けて見せる
  3. 参加者はその結果を元に、選び直すことができる

最初に選んだドアが当たっている確率は 1/3。ならば、司会者がドアを開けた後にドアを選び直しても 1/3 だから選び直そうがそのままであろうが違いがなく感じます。しかし実際には、選び直すほうが当たる確率が高くなります。それもそのままの状態に比べて2倍という大きな差になります。

理屈を知っていればそんなものだと思えますが、なかなか納得しづらい。理解はできても納得はできないという知人を説得するために、実際の動きが見えるものを作ってみました。
モンティ・ホール問題について詳しくは Wikipedia をごらんください。

 

モンティ・ホール問題をブラウザにやらせてみる

実際の動きを繰り返してみると分かりやすいので、ブラウザで繰り返し試行するようにしました。

スタートボタン」を押すと 500回処理を繰り返します。同じボタンで中断できます。回数や値のリセットは「リセット」ボタンで行なえます。

ドアではなく、3つの箱から1つを選ぶ3択問題をイメージしてみてください。

● が当たり箱、× がハズレ箱です。青で表示されている左の列は最初選んだもの。最初選んだものが当たる確率は1/3。

「元のデータ」は1回目選択後の状態です。最初に選んだ青の箱が当たっていれば、残り2つは外れ。残り二つが外れの時は、黒の箱になっています。逆に残り二つのうちどちらかが当たりなら赤になっています。

「除外後」には、司会者がハズレを見せた箱を除外した残りが表示されています。司会者は「かならずハズレの箱を開いて見せるので、その箱を除外することができます。参加者が選択できる箱は2つになるため 選び直してもそのままでも 1/2 に見えます。が、赤の出現率に注目してください。

表に表示されている「左・中・右」は「1番目の箱、2番めの箱、3番目の箱」と読み替えても構いません。

あたり箱の場所 0 0 0

試行回数:回(選び直した時の勝率:
選択固定当たり:
選択変更当たり:

 

元のデータ

ハズレ除外後

 

理屈は単純、選ばなかった2つに変更すれば当たり確率は2/3になる

「『右・中・左』の箱のうち中や左を選ぶことがあるんじゃないか?」と思われる方もいるかもしれません。その場合は選んだ箱を左に移動させたと考えてください。場所を変えても条件は変わらないので大丈夫です。

最初選んだ青い箱の当たり確率は 1/3。これは間違いのない事実です。しかし最初に選ばなかった2つの箱を足した当たり確率は2/3。選んだものが当たりでなければ、かならず残り2つに当たりが含まれています。

青箱が当たりなら残り二つは両方ハズレ。これが選び直してもそのままでも確率はすべて1/3で変わらないと感じる原因です。


しかし青の箱が外れである 2/3 のケースでは、ハズレの箱を司会者が開くため、選ばなかった側の残りの箱を開ければ必ず当たりとなります。
つまり選び直すことで、当たりを引く確率が最初の1/3 から 2/3 へと2倍に上がります。

ハズレ除外後はアタリとハズレの二通りの組み合わせしかないにも関わらず赤の出現率が高いことからも、視覚的に分かります。
選ばなかった側がハズレの黒になるのは 1/3、当たりが含まれる赤色になるのは 2/3 ということが、感覚的にも理解できると思います。

ただ、司会者がハズレを明かして2つの箱になってから目にする人にとっての当たり確率は 1/2。3択を見ていた人にとっては選び直したほうが確率が上がるのに、3択の情報を知らない人にとっては半々という点も矛盾して感じる要因でしょう。

 

プログラムの理屈

プログラムの理屈は箱を3つ用意し、ランダムで●を入れた当たり箱を設定します。一番左の箱が当たりならば、残り二つの箱を黒くして、箱を一つ除外。一番左の箱がハズレなら、残り二つを赤色にして、当たりではない方の箱を削除しています(この過程はブラウザの console でも確認することができます)。

司会者が開けてみせた「外れ箱」は選択肢から外れたために消していますが、実際には残っていると考えても構いません。

あとは変更しない場合・変更した場合のそれぞれの辺り回数をカウントしているだけで、特別なことはしていません。