Monty hall and why you shouldn't trust your statistical intuition

A lot of interesting books have been written in the last few years about randomness, the future, and just how bad us humans are at understanding risk. Risk is all around us, in the market, job interviews, business ventures - it plays a part in every important decision we make.

Yet, according to “Thinking fast and slow” our subconscious mind just isn’t wired to understand chance. We intuitively learn by trial and error and when the game is rigged for the long run, short term ‘lucky wins’ and ‘unlucky failures’ lead us to draw completely disproportionate conclusions.

Yet it's even worse than that. As it turns out even when we leave our intuition on the bench and turn on rational thinking, we may still get it wrong.

Monty hall

The monty hall problem goes as follows

There are 3 cups (A,B and C) with a ball underneath one of them:

you choose a random cup (A for instance)

someone who knows where the ball is removes a wrong option (B in this case)

you now get to choose (stay with A OR switch to C)

What should you do?

I'll give you a hint, it's not a 50/50 decision. You should in fact switch to cup C as there is now a 2/3 chance of the ball being under that cup. For the maths behind it I recommend you search google. The truth is I still didn't really believe it untill I wrote a little simulator in ruby.

And yes, it is true... (mind explodes - mine anyways)

The code

class CupGame attr_accessor :pick def initialize @choices = [1,2,3] @answer = @choices.shuffle.first end

def correct? @pick == @answer end

def eliminate_a_wrong_choice @choices.delete(@choices.find {|c| c != @answer and c != @pick }) end

def swap_pick @pick = @choices.find {|c| c != @pick } end end

def game_result(name,&strategy) games = 10000.times.collect do game = CupGame.new strategy.call(game) game.correct? end correct_games = games.find_all {|c| c}

puts "Results for #{name}" puts "Won : #{correct_games.length * 100.0 / games.length} %" puts end

game_result("no choice") do |game| game.pick=1 end

game_result("with choice but remain on first pick") do |game| game.pick=1 game.eliminate_a_wrong_choice end

game_result("with choice and swap first pick") do |game| game.pick=1 game.eliminate_a_wrong_choice game.swap_pick end

The Result

Results for no choice Won : 33.43 %

Results for with choice but remain on first pick Won : 33.57 %

Results for with choice and swap first pick Won : 66.34 %