{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Reminder: use Shift-ENTER to run each cell; feel free to edit, etc, before and after running!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Monty Hall problem\n", "\n", "You, lucky contestant, are on a game show! You stand a chance to win a car (with a trade-in value of $50k)!\n", "\n", "The host, one Monty Hall, describes the game to you as follows:\n", "\n", " 1. Here before you, you see three doors -- A, B, and C! Behind one of them is the car.\n", "\n", " 2. I will start by having you pick one door, but I **do not open it**.\n", "\n", " 3. Then, I will reveal what is behind one of the two doors you did not choose (needless to say, it will not be the car!)\n", "\n", " 4. At that point, you may either keep your first choice, OR you may switch your choice to another door.\n", "\n", "If you can identify which door has the car behind it, you get to keep the car (or the money).\n", "\n", "The question for you is this: as a winning strategy, should you:\n", "\n", "(a) always stay with your original door choice\n", "\n", "(b) always switch\n", "\n", "or\n", "\n", "(c) does it not matter?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Monty Hall Monte Carlo\n", "\n", "You, being an accomplished computational scientist, decide that rather than thinking hard about this, you're just going to simulate it using the Monte Carlo method ([http://en.wikipedia.org/wiki/Monte_Carlo_method](http://en.wikipedia.org/wiki/Monte_Carlo_method)). This lets you explore the more complex emergent properties of this system by only worrying about the simple rules defining the system. ([http://en.wikipedia.org/wiki/Agent-based_model](http://en.wikipedia.org/wiki/Agent-based_model))\n", "\n", "Let's start by setting up the problem." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# grab the pseudo-random # generator module in Python: http://blog.doughellmann.com/2010/10/pymotw-random-pseudorandom-number.html\n", "import random\n", "\n", "# now, build a function to create 3 doors, with one car behind them.\n", "# this function will return a dictionary with keys A, B, and C, containing associated values 'empty' or 'car'.\n", "def create_doors():\n", " doors = {}\n", " doors['A'] = 'empty'\n", " doors['B'] = 'empty'\n", " doors['C'] = 'empty'\n", " \n", " # randomly choose *one* of the three doors\n", " keylist = list(doors.keys())\n", " car_is_behind = random.choice(keylist)\n", " doors[car_is_behind] = 'car'\n", " \n", " return doors\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a look at the output of this function:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'A': 'empty', 'B': 'empty', 'C': 'car'}\n", "{'A': 'empty', 'B': 'car', 'C': 'empty'}\n", "{'A': 'car', 'B': 'empty', 'C': 'empty'}\n" ] } ], "source": [ "print(create_doors())\n", "print(create_doors())\n", "print(create_doors())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulating some choices with two functions\n", "\n", "Next, here are two functions, one which simulates choice (a) -- staying with your original door -- and one which simulates choice (b) -- switch. If the function returns true, you've won! If the function returns false, you've lost." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def always_switch():\n", " # set up the problem\n", " doors_d = create_doors()\n", " \n", " # pick a door\n", " doors = ['A', 'B', 'C']\n", " my_choice = random.choice(doors)\n", " \n", " # remove it from Monty's consideration -- he will never choose this one\n", " doors.remove(my_choice)\n", " assert len(doors) == 2, \"you should only have two doors left...\"\n", " \n", " # now Monty Hall picks a door:\n", " while 1:\n", " monty_choice = random.choice(doors)\n", " if doors_d[monty_choice] != 'car': # he'll never reveal the car!\n", " break\n", " \n", " doors.remove(monty_choice)\n", " \n", " # now, because you always switch, you're left with monty's non-choice:\n", " assert len(doors) == 1, \"you should only have one door left...\"\n", " \n", " my_choice = doors[0]\n", " \n", " if doors_d[my_choice] == 'car':\n", " return True # you win!\n", " return False # you lose :(" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def never_switch():\n", " # set up the problem\n", " doors_d = create_doors()\n", " \n", " # pick a door\n", " doors = ['A', 'B', 'C']\n", " my_choice = random.choice(doors)\n", " doors.remove(my_choice)\n", " assert len(doors) == 2, \"you should only have two doors left...\"\n", " \n", " # now Monty Hall picks a door:\n", " while 1:\n", " monty_choice = random.choice(doors)\n", " if doors_d[monty_choice] != 'car': # he'll never reveal the car!\n", " break\n", " \n", " doors.remove(monty_choice)\n", " \n", " # now, because you never switch, you're left with your original choice:\n", " assert len(doors) == 1, \"you should only have one door left...\"\n", " \n", " # you stick with your original choice:\n", " if doors_d[my_choice] == 'car':\n", " return True # you win!\n", " return False # you lose :(" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n", "False\n", "True\n", "False\n", "False\n", "True\n" ] } ], "source": [ "# ok, let's try this out!\n", "print(always_switch())\n", "print(always_switch())\n", "print(always_switch())\n", "\n", "print(never_switch())\n", "print(never_switch())\n", "print(never_switch())\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, a couple of things:\n", "\n", "Question: *Is* this a true implementation of the Monty Hall scenario? Why or hwy not?\n", "\n", "Second, note that every time you run this, you will get a different set of answers -- because we're using a random number generator." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The First Question: is it better to always switch? Or should you never switch? Or is it the same?\n", "\n", "To answer this question, let's run 'always_switch()' a bunch of times, and calculate how often we win." ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "With always_switch(), I won 667 of 1000 tries\n" ] } ], "source": [ "won_count = 0\n", "N = 1000\n", "for i in range(N):\n", " if always_switch():\n", " won_count += 1\n", " \n", "print('With always_switch(), I won', won_count, 'of', N, 'tries')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can do the same with never switching:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "With never_switch(), I won 319 of 1000 tries\n" ] } ], "source": [ "won_count = 0\n", "N = 1000\n", "for i in range(N):\n", " if never_switch():\n", " won_count += 1\n", " \n", "print('With never_switch(), I won', won_count, 'of', N, 'tries')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, so according to our simulation, we should always switch. ...can we get this answer some other way?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Another question: what happens if you increase the number of doors, and Monty opens n-1 doors?\n", "\n", "Since all our doors are virtual, we can change their number quite easily. (Well, it involves a little more programming...)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# write a function to create M doors, not just 3.\n", "def create_multi_doors(M):\n", " doors = {}\n", " for i in range(M):\n", " doors[i] = 'empty'\n", " \n", " # randomly choose *one* of the three doors\n", " keylist = list(doors.keys())\n", " car_is_behind = random.choice(keylist)\n", " doors[car_is_behind] = 'car'\n", " \n", " return doors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll also need to update our always_switch/never_switch functions to use create_multi_doors():" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def always_switch2(M):\n", " # set up the problem\n", " doors_d = create_multi_doors(M)\n", " \n", " # pick a door\n", " doors = list(doors_d.keys())\n", " my_choice = random.choice(doors)\n", " \n", " doors.remove(my_choice)\n", " \n", " while len(doors) > 1:\n", " door = random.choice(doors)\n", " if doors_d[door] != 'car':\n", " doors.remove(door)\n", " \n", " assert len(doors) == 1, doors\n", " \n", " # now pick the one that's left:\n", " my_choice = doors[0]\n", " \n", " if doors_d[my_choice] == 'car':\n", " return True # you win!\n", " return False # you lose :(\n", "\n", "def never_switch2(M):\n", " # set up the problem\n", " doors_d = create_multi_doors(M)\n", " \n", " # pick a door\n", " doors = list(doors_d.keys())\n", " my_choice = random.choice(doors)\n", " \n", " doors.remove(my_choice)\n", " \n", " while len(doors) > 1:\n", " door = random.choice(doors)\n", " if doors_d[door] != 'car':\n", " doors.remove(door)\n", " \n", " assert len(doors) == 1, doors\n", " \n", " # ...but we're sticking with our original choice. \n", " if doors_d[my_choice] == 'car':\n", " return True # you win!\n", " return False # you lose :(" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] } ], "source": [ "print(always_switch2(3))" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n", "True\n", "True\n", "False\n", "False\n", "False\n" ] } ], "source": [ "print(always_switch2(100))\n", "print(always_switch2(100))\n", "print(always_switch2(100))\n", "\n", "print(never_switch2(100))\n", "print(never_switch2(100))\n", "print(never_switch2(100))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, the functions don't obviously break... what happens if we run them a bunch?" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "With always_switch2() and 3 doors, I won 641 of 1000 tries\n", "With never_switch2() and 3 doors, I won 359 of 1000 tries\n" ] } ], "source": [ "won_count = 0\n", "N = 1000 # num trials\n", "M = 3 # doors\n", "\n", "for i in range(N):\n", " if always_switch2(M):\n", " won_count += 1\n", " \n", "print('With always_switch2() and', M, 'doors, I won', won_count, 'of', N, 'tries')\n", "\n", "won_count = 0\n", "\n", "for i in range(N):\n", " if never_switch2(M):\n", " won_count += 1\n", " \n", "print('With never_switch2() and', M, 'doors, I won', won_count, 'of', N, 'tries')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A few questions to explore --\n", "\n", "How do we know always_switch2() and never_switch2() work properly?\n", "\n", "What's the actual mathematical formula underlying the results?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualization!" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import math\n", "\n", "# calculate the avg & standard deviation\n", "def calc_stddev(series):\n", " avg = sum(series) / float(len(series))\n", " devs = [ i - avg for i in series ]\n", " devs = [ i**2 for i in devs ]\n", " stddev = math.sqrt(sum(devs) / float(len(series)))\n", " return avg, stddev\n", "\n", "\n", "# run the given function with parameter M (# doors), N times; return average\n", "def try_N_times(fn, M, N):\n", " won = 0\n", " for i in range(N):\n", " if fn(M):\n", " won += 1\n", " return won / float(N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Explore the simulation\n", "\n", "What does `N` represent and what happens as you change `N` in different ways?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_(Answer/Notes here. Double-click to edit.)_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What does `n_trials` represent and what happens as you change `n_trials` in different ways?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_(Answer/Notes here. Double-click to edit.)_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What does `M` represent and what happens as you change `M` in different ways?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_(Answer/Notes here. Double-click to edit.)_" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nykyePJm5c+cCsHjxYrKzs5k3bx4AH3/8MSNHjiQjIwOAM844g/Xr1/P1118zbtw4LrnkEgCOOeYY\nevfuzZw5c+r3O3v2bKZPnw7AjBkzmDFjBqWlpaxfv54f/ehHXr910wVY4jcds327U9v/1a++3TZ8\nOKxb519MIXT++efTt29fAKZMmcLw4cNZtGhRgzLHH388a9eupbi4mHnz5nHFFVewdetW9u7dy7x5\n85g8eXJ92enTp9O9e3e6devGzJkzWbFiBeXl5QBceumlPPnkkwAUFRXxzjvvcPHFFwOQmJjIunXr\n2L17N927d+fYY48Nx9s3Mc4Sv2mXe2bOJG/6dBaceiqf9OtH3i23kDd9OqsKCmIq8T/xxBMcddRR\nZGZmkpmZyeeff86uXbsalElOTuaYY44hPz+fefPmkZuby8SJE5k/fz5z586tT/y1tbXccsstDB8+\nnIyMDIYMGYKI1O9v6tSpvPHGG1RWVvL8889z0kkncdBBBwHw6KOPsmbNGkaOHMmECRN48803w3si\nTEyyi7umXeq7bX79NYwaxfE9nWV3z50/32nq2bcPioshM9PfQDuhsLCQn/70p3z44Yccf/zxABx1\n1FHNTolw0kkn8cEHH7B8+XLGjx/PSSedxDvvvMPixYs56SRnRvKnn36a119/nQ8++ICcnBxKS0vJ\nzMys39+AAQM47rjjePHFF5k9ezZXX311/f6HDRvG0087axe9+OKLXHDBBRQVFZGSkuL1aTAxzGr8\npmOOPRZ6NlprXQSOP97p4hnFKioqiIuLo3fv3tTW1vLYY4/x2WefNVt28uTJPPHEE4waNYqEhARy\nc3N55JFHGDJkCL169QKgvLycpKQkMjMzqaio4NZbb23SJfTSSy/l97//PZ999hnnnXde/fannnqq\n/ptBeno6IkJcnP3bms7xvMYvIrcCU3EWWf8UuFxV93t9XOOTE07o0Mty+uZ42uUyp29O0GUPO+ww\nfvnLX3LccccRHx/PZZddxqRJk5otO3HiRPbt21ffrDNq1ChSUlIatO9fdtllvPPOOwwYMIBevXrx\n29/+loceeqjBfs477zyuvvpqzj//fJKTk+u3//vf/+aGG26gsrKSQYMG8dxzz5GUlNSet25ME57O\nzikig4APgZGqul9EngPeVNUnGpWz2TmjRN706c2O0D139mxemTq1+dds2kTeP//ZYJvNJtnUIYcc\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.mlab as mlab\n", "import pylab\n", "\n", "# Parameters we've made easy to change\n", "#################\n", "n_trials = 500 # How many times to gather statics from groups of N samples\n", "M = 3 # How many doors to use (originally 3)\n", "N = 100 # How many samples from which to gather statistics (like mean of N coin flips)\n", "#################\n", "\n", "# Try M doors N times; then run n_trials times, and track.\n", "always_list = [ try_N_times(always_switch2, M, N) for _ in range(n_trials) ]\n", "never_list = [ try_N_times(never_switch2, M, N) for _ in range(n_trials) ]\n", "\n", "# get the actual and fitted distribution for the 'always switch' decision\n", "n1, bins1, patches1 = pylab.hist(always_list, facecolor='green', alpha=0.5, range=(0, 1), bins=50, normed=1, label='always')\n", "always_avg, always_stddev = calc_stddev(always_list)\n", "y1 = mlab.normpdf(bins1, always_avg, always_stddev)\n", "pylab.plot(bins1, y1, 'g--')\n", "\n", "# get the actual and fitted distribution for the 'never switch' decision\n", "n2, bins2, patches2 = pylab.hist(never_list, facecolor='red', alpha=0.5, range=(0, 1), bins=50, normed=1, label='never')\n", "never_avg, never_stddev = calc_stddev(never_list)\n", "y2 = mlab.normpdf(bins2, never_avg, never_stddev) # fit\n", "pylab.plot(bins2, y2, 'r--')\n", "\n", "# label the plot\n", "pylab.xlabel('probability of winning')\n", "pylab.ylabel('distribution of p for multiple trials')\n", "pylab.title('Monty Hall problem (%d doors)' % M)\n", "pylab.legend(loc='upper center')" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "average win rate, always switching: 0.6697599999999995\n", "average win rate, never switch: 0.33708000000000027\n" ] }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pylab.plot(bins1, y1, 'g', label='never switch')\n", "pylab.plot(bins2, y2, 'r', label='always switch')\n", "pylab.axis(ymax=12)\n", "pylab.legend()\n", "pylab.xlabel('probability of winning')\n", "pylab.ylabel('distribution of p for multiple trials')\n", "pylab.title('Monty Hall problem (%d doors)' % M)\n", "print('average win rate, always switching:', always_avg)\n", "print('average win rate, never switch:', never_avg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Bonus Question**: What are the assumptions we're making in this simulation compared to the real game show?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 0 }