3 ms·
I didn't think what you say is true, but it is. Here's what misled me: Go back to the 100 door version. You start out by opening 1 door, so it's 99/100 that th
by imh 8y ago
I didn't think what you say is true, but it is. Here's what misled me:
Go back to the 100 door version. You start out by opening 1 door, so it's 99/100 that the car is behind another door. If monty just happens to open 98 of those doors and reveal all goats, then that 99% probability that you should switch to one of them combines with new knowledge of which to switch to. Its exceedingly rare, but if it happened, then you should still switch.
The above logic is wrong. I simulated and you're correct:
n = 10000000
n_doors = 3
first_guess = np.random.randint(n_doors, size=n)
car_behind = np.random.randint(n_doors, size=n)
should_stay = first_guess == car_behind
print('p(should stay)',
np.mean(should_stay))
# 0.3333381
monty_opens_all_but = (first_guess + 1 + np.random.randint(n_doors-1, size=n)) % n_doors
print('bad setup?: ',
np.any(monty_opens_all_but == first_guess))
# False
monty_shows_only_goats = np.logical_or(monty_opens_all_but == car_behind,
first_guess == car_behind)
print('p(monty shows only goats)',
np.mean(monty_shows_only_goats))
# 0.6667607
print('p(should stay| monty shows only goats)',
np.mean(should_stay[monty_shows_only_goats]))
# 0.499936633938
I'm kinda astounded. I do stats for a living, yet without writing out the math, my intuition misled me. I thought I had a framing of the problem that allowed me to use a quick shortcut in my thinking, and that framing was wrong. Two takeaways:
1) Probability is really hard to get the right intuition about. Reasoning by analogy/shortcut problem framing is dangerous. You have to write out the math.
2) The "100 doors" explanation for the usual monty hall problem is correct for subtler reasons than are immediately obvious. You could probably set up a counter monty hall problem to trick people where there are 100 doors and he just happens to show 98 goats.