モンティ・ホール問題を100万回まわしたら、司会者が中身を知らないだけで勝率が2/3から1/2に落ちた
約7分で読めます

モンティ・ホール問題を100万回まわしたら、司会者が中身を知らないだけで勝率が2/3から1/2に落ちた


モンティ・ホール問題は、たぶん確率の話題でいちばん有名なものだ。

ドアが3枚あって、1枚の後ろに車、2枚の後ろにヤギがいる。あなたが1枚選ぶと、中身を知っている司会者が残り2枚のうちヤギのドアを1枚開けてみせる。ここで「選び直しますか?」と聞かれる。変えるべきか、変えないべきか。

答えは「変えるべき」で、勝率は1/3から2/3に上がる。私もそれは知っている。知っているのだが、毎回どこかで引っかかる。ドアが2枚に減ったのだから五分五分ではないのか、という感覚が消えない。

そこで、引っかかっている部分を切り分けるために実際に回した。特に確かめたかったのは、「司会者が中身を知っている」という条件を外したらどうなるかだ。

実験に使ったコードの全文はGitHubに置いています

まず100万回

3枚のドアで100万回。司会者は中身を知っていて、必ずヤギのドアを開ける。

戦略実測理論値
変更しない0.333971/3 = 0.33333
変更する0.666032/3 = 0.66667

教科書通りだ。ここに驚きはない。

司会者から「知識」を取り上げる

次に、司会者の設定だけを変える。司会者も中身を知らず、プレイヤーが選ばなかった2枚から適当に1枚開けるとする。当然、車を開けてしまうことがある(実測33.34%)。その回はゲームとして成立しないので除外し、残った「たまたまヤギが出た回」だけで勝率を測る。

プレイヤーから見える光景は、1本目の実験と完全に同じだ。自分が1枚選び、別の1枚が開いてヤギがいて、2枚が残っている。それでも——

3本の棒グラフ。左の「変更しない(司会者は中身を知っている)」が0.3340、中央の「変更する(司会者は中身を知っている)」が0.6660、右の「変更する(司会者は中身を知らない)」が0.4990。各棒の上端に理論値を示す破線が重なっている

0.4990。 五分五分だ。

同じ「ヤギのドアが1枚開いた」でも、それが必ずヤギを開けると決まっている人の行動なのか、たまたまヤギだったのかで、価値がまるで違う。前者では「司会者は車のドアを避けた」という情報が付いてくるが、後者には何も付いてこない。

私がずっと引っかかっていたのは、たぶんここだった。ドアが2枚に減ったこと自体には、何の情報もない。情報は司会者の制約から来ている。

100枚のドアで見る

3枚だと差が小さくて実感しにくい。ドアを100枚に増やし、司会者に98枚開けてもらう。

100枚のドアを10×10の格子で表したアニメーション。最初に1枚が濃紺で選ばれ、そこから灰色のドアが次々に薄く消えていき、最後に選んだドアともう1枚(赤)だけが残る。上部に「司会者がヤギのドアを開けていく… 残りN枚」という表示が出る

最初に選んだ1枚が当たっている確率は1/100だ。それは司会者が何をしようが変わらない。だから最後に残ったもう1枚が当たっている確率は99/100になる。実測でも0.9900だった。

ただし、これは「司会者が98枚も消してくれる」からこその数字だ。枚数を変えて測るとはっきりする。

横軸がドアの枚数N(対数目盛)、縦軸が車を当てた割合の折れ線グラフ。司会者が残り1枚になるまで開ける場合(赤)はNが増えるほど1.0に近づき、N=100で0.990。司会者が1枚だけ開ける場合(青)はNが増えるほど下がり、N=100で0.0099となって、変更しない場合の1/N(灰色の破線)にほぼ重なる

司会者が1枚しか開けてくれないなら、ドアが100枚あっても変更にほぼ意味がない(0.0099 対 0.0097)。変更が得になるのは「変更先の候補が絞られているから」であって、「ドアが減ったから」ではない。

NN枚のうち司会者がkk枚開ける場合、変更したときの勝率は

P=(11N)1N1kP = \left(1 - \frac{1}{N}\right) \cdot \frac{1}{N - 1 - k}

になる。NNkkを動かして眺められるようにした。

何回やれば納得できるのか

最後に、少し実務的なことを測った。この手の話は「自分で試してみればわかる」と言われがちだが、実際に何回まわせば「1/2ではない」と言い切れるのか。

勝率2/3のコインを振り続け、帰無仮説「勝率は1/2」に対する片側二項検定が初めて5%を切る試行数を、2,000回ぶん記録した。

ヒストグラム。「変更が有利」と5%水準で言い切れるまでにかかった試行回数の分布で、20回前後にピークがあり右に長い裾を引いている。中央値21回の赤い破線と、90%点62回の橙色の破線が引かれている

中央値は21回。90%点でも62回だった。運が悪くても100回まわせばほぼ決着がつく。「気になるなら自分で試せ」は、この問題に関しては現実的な助言だった。

ただし、途中経過を見ると気は抜けない。

横軸が試行回数(対数目盛)、縦軸が累積勝率の折れ線グラフ。40本の薄い赤線が最初は0.2から1.0まで大きくばらついているが、試行が進むにつれて収束し、1000回付近では全ての線が2/3を示す破線の周りの狭い範囲に集まる。1/2を示す点線はその下にある

40人が同時に試したとして、序盤は勝率が1.0の人も0.3の人もいる。数十回では「たまたま」がまだ効いている。見せかけの回帰の回で見たのと同じ構図で、少ない試行から読み取れることは思ったより少ない。

まとめ

  • 3枚・100万回で、変更しない0.334、変更する0.666。理論通り
  • 司会者が中身を知らず、たまたまヤギを開けた場合は0.499。 プレイヤーから見える光景は全く同じ
  • 情報は「ドアが減ったこと」ではなく「司会者が車を避けたこと」から来ている
  • NN枚に一般化すると、変更の得は司会者が消してくれる枚数kkで決まる。100枚でも1枚しか開かないなら0.0099で、変更しない場合とほぼ同じ
  • 「1/2ではない」と5%水準で言うのに必要な試行は中央値21回、90%点62回

腑に落ちたのは確率の側ではなく、情報の出所のほうだった。

司会者が開けたドアの中身は、どちらの設定でもヤギだ。目の前の事実は同じ。違うのは、その事実が生まれた経緯のほうにある。「必ずヤギを選んで開ける」という制約のもとで出てきたヤギには情報が乗っていて、「適当に開けたらヤギだった」というヤギには乗っていない。

同じことを、私は仕事でも取り違えている気がする。誰かが「これは大丈夫でした」と報告してくれたとき、その言葉の価値は、その人が何を確認しなかったかで決まる。全項目を見た上での「大丈夫」と、目についた範囲での「大丈夫」は、文字列としては同じものだ。受け取る側からは区別がつかない。

区別する方法はひとつしかない。中身ではなく、手順のほうを聞くことだ。