{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Think Bayes\n", "\n", "This notebook presents example code and exercise solutions for Think Bayes.\n", "\n", "Copyright 2018 Allen B. Downey\n", "\n", "MIT License: https://opensource.org/licenses/MIT" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Configure Jupyter so figures appear in the notebook\n", "%matplotlib inline\n", "\n", "# Configure Jupyter to display the assigned value after an assignment\n", "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", "\n", "# import classes from thinkbayes2\n", "from thinkbayes2 import Hist, Pmf, Suite, Beta\n", "import thinkplot\n", "\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Comparing distributions\n", "\n", "Let's get back to the Kim Rhode problem from Chapter 4:\n", "\n", "> At the 2016 Summer Olympics in the Women's Skeet event, Kim Rhode faced Wei Meng in the bronze medal match. They each hit 15 of 25 targets, sending the match into sudden death. In the first round, both hit 1 of 2 targets. In the next two rounds, they each hit 2 targets. Finally, in the fourth round, Rhode hit 2 and Wei hit 1, so Rhode won the bronze medal, making her the first Summer Olympian to win an individual medal at six consecutive summer games.\n", "\n", ">But after all that shooting, what is the probability that Rhode is actually a better shooter than Wei? If the same match were held again, what is the probability that Rhode would win?\n", "\n", "I'll start with a uniform distribution for `x`, the probability of hitting a target, but we should check whether the results are sensitive to that choice.\n", "\n", "First I create a Beta distribution for each of the competitors, and update it with the results." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "rhode = Beta(1, 1, label='Rhode')\n", "rhode.Update((22, 11))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "wei = Beta(1, 1, label='Wei')\n", "wei.Update((21, 12))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Based on the data, the distribution for Rhode is slightly farther right than the distribution for Wei, but there is a lot of overlap." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thinkplot.Pdf(rhode.MakePmf())\n", "thinkplot.Pdf(wei.MakePmf())\n", "thinkplot.Config(xlabel='x', ylabel='Probability')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To compute the probability that Rhode actually has a higher value of `p`, there are two options:\n", "\n", "1. Sampling: we could draw random samples from the posterior distributions and compare them.\n", "\n", "2. Enumeration: we could enumerate all possible pairs of values and add up the \"probability of superiority\".\n", "\n", "I'll start with sampling. The Beta object provides a method that draws a random value from a Beta distribution:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.598" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iters = 1000\n", "count = 0\n", "for _ in range(iters):\n", " x1 = rhode.Random()\n", " x2 = wei.Random()\n", " if x1 > x2:\n", " count += 1\n", "\n", "count / iters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Beta` also provides `Sample`, which returns a NumPy array, so we an perform the comparisons using array operations:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.579" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rhode_sample = rhode.Sample(iters)\n", "wei_sample = wei.Sample(iters)\n", "np.mean(rhode_sample > wei_sample)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The other option is to make `Pmf` objects that approximate the Beta distributions, and enumerate pairs of values:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def ProbGreater(pmf1, pmf2):\n", " total = 0\n", " for x1, prob1 in pmf1.Items():\n", " for x2, prob2 in pmf2.Items():\n", " if x1 > x2:\n", " total += prob1 * prob2\n", " return total" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.5982856085975715" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf1 = rhode.MakePmf(1001)\n", "pmf2 = wei.MakePmf(1001)\n", "ProbGreater(pmf1, pmf2)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.5982856085975715" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf1.ProbGreater(pmf2)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.39831486726640597" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf1.ProbLess(pmf2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise:** Run this analysis again with a different prior and see how much effect it has on the results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulation\n", "\n", "To make predictions about a rematch, we have two options again:\n", "\n", "1. Sampling. For each simulated match, we draw a random value of `x` for each contestant, then simulate 25 shots and count hits.\n", "\n", "2. Computing a mixture. If we knew `x` exactly, the distribution of hits, `k`, would be binomial. Since we don't know `x`, the distribution of `k` is a mixture of binomials with different values of `x`.\n", "\n", "I'll do it by sampling first." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import random\n", "\n", "def flip(p):\n", " return random.random() < p" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`flip` returns True with probability `p` and False with probability `1-p`\n", "\n", "Now we can simulate 1000 rematches and count wins and losses." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.52, 0.382)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iters = 1000\n", "wins = 0\n", "losses = 0\n", "\n", "for _ in range(iters):\n", " x1 = rhode.Random()\n", " x2 = wei.Random()\n", " \n", " count1 = count2 = 0\n", " for _ in range(25):\n", " if flip(x1):\n", " count1 += 1\n", " if flip(x2):\n", " count2 += 1\n", " \n", " if count1 > count2:\n", " wins += 1\n", " if count1 < count2:\n", " losses += 1\n", " \n", "wins/iters, losses/iters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or, realizing that the distribution of `k` is binomial, we can simplify the code using NumPy:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rhode_rematch = np.random.binomial(25, rhode_sample)\n", "thinkplot.Hist(Pmf(rhode_rematch))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.509" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wei_rematch = np.random.binomial(25, wei_sample)\n", "np.mean(rhode_rematch > wei_rematch)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.404" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(rhode_rematch < wei_rematch)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, we can make a mixture that represents the distribution of `k`, taking into account our uncertainty about `x`:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from thinkbayes2 import MakeBinomialPmf\n", "\n", "def MakeBinomialMix(pmf, label=''):\n", " mix = Pmf(label=label)\n", " for x, prob in pmf.Items():\n", " binom = MakeBinomialPmf(n=25, p=x)\n", " for k, p in binom.Items():\n", " mix[k] += prob * p\n", " return mix" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rhode_rematch = MakeBinomialMix(rhode.MakePmf(), label='Rhode')\n", "wei_rematch = MakeBinomialMix(wei.MakePmf(), label='Wei')\n", "thinkplot.Pdf(rhode_rematch)\n", "thinkplot.Pdf(wei_rematch)\n", "thinkplot.Config(xlabel='hits')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.5202329045554512, 0.3905260248840108)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rhode_rematch.ProbGreater(wei_rematch), rhode_rematch.ProbLess(wei_rematch)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, we could use MakeMixture:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from thinkbayes2 import MakeMixture\n", "\n", "def MakeBinomialMix2(pmf):\n", " binomials = Pmf()\n", " for x, prob in pmf.Items():\n", " binom = MakeBinomialPmf(n=25, p=x)\n", " binomials[binom] = prob\n", " return MakeMixture(binomials)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's how we use it." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.5202329045554512, 0.3905260248840108)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rhode_rematch = MakeBinomialMix2(rhode.MakePmf())\n", "wei_rematch = MakeBinomialMix2(wei.MakePmf())\n", "rhode_rematch.ProbGreater(wei_rematch), rhode_rematch.ProbLess(wei_rematch)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise:** Run this analysis again with a different prior and see how much effect it has on the results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Distributions of sums and differences\n", "\n", "Suppose we want to know the total number of targets the two contestants will hit in a rematch. There are two ways we might compute the distribution of this sum:\n", "\n", "1. Sampling: We can draw samples from the distributions and add them up.\n", "\n", "2. Enumeration: We can enumerate all possible pairs of values.\n", "\n", "I'll start with sampling:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "iters = 1000\n", "pmf = Pmf()\n", "for _ in range(iters):\n", " k = rhode_rematch.Random() + wei_rematch.Random()\n", " pmf[k] += 1\n", "pmf.Normalize()\n", "thinkplot.Hist(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or we could use `Sample` and NumPy:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ks = rhode_rematch.Sample(iters) + wei_rematch.Sample(iters)\n", "pmf = Pmf(ks)\n", "thinkplot.Hist(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, we could compute the distribution of the sum by enumeration:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def AddPmfs(pmf1, pmf2):\n", " pmf = Pmf()\n", " for v1, p1 in pmf1.Items():\n", " for v2, p2 in pmf2.Items():\n", " pmf[v1 + v2] += p1 * p2\n", " return pmf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's how it's used:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl4VPd97/H3V6MVIQQIsQgQYhGLAIMxxniJ4yXespgsdmont3Vz3Tpt4qfpk/Rpnd6nuW3a3HvTzXepuzhxEt+m9RKStO6N4yVxHC+xscWO2CSEACEWsQskIY30u3/MaHQ0CDSgmTlnZj6v5/Gjc0ZnpO95LD46+p7f+f3MOYeIiOSGPL8LEBGR9FHoi4jkEIW+iEgOUeiLiOQQhb6ISA5R6IuI5BCFvohIDlHoi4jkEIW+iEgOyfe7gHiTJk1yNTU1fpchIpJR1q9ff8w5VznScYEL/ZqaGurr6/0uQ0Qko5jZvkSOU3tHRCSHKPRFRHKIQl9EJIco9EVEcohCX0Qkhyj0RURySOCGbIrI6HR199DcegwzIz+UR34oj1D0vzHFhUwsL/W7RPGRQl8ki3Sc6+aP/uZHHDl+5qLH3H3TYn77/g+ksSoJErV3RLLI9/7tnUsGPsBLbzWweVdrmiqSoFHoi2SJjTsO8Pp7u2L786onM3dmJTXTJzFz6gTGl42Jfe5bP3iTnt6wH2WKz9TeEckCXd09/ONzv4zt33D1XL7ym3cMOebkmU5+7xvP0tndw6H20/z4Z5v4tXtWprtU8Zmu9EWywPf/Yx3HTp4FYOyYIn7rUzddcMyEcWP47Eevi+3/6GcbOdR+Om01SjAo9EUy3PY9h3jprYbY/sOfupHyspJhj73zxkXMnRmZiDEc7uNbP3gT51xa6pRgUOiLZLCe3jD/8Mzrsf1r6mbxgWtqL3p8Xl4en//0zVh0f/OuVn61qTm1RUqgKPRFMtjzP62nLdqiKS4q4JFPfwAzu+R75lZXcs/NS2L73/3R23R29aS0TgkOhb5Ihmo+0M6/v7Y5tv/QmuuZNGFsQu994MPXxkbznDzTyTMvvpeSGiV4FPoiGaivr5+/+9fX6Y/24+vmTuOOGxYl/P7SkiI+94kbYvs/fWMbzQfak12mBJBCXyQDrd++n31txwEoyA/xhQdvGbGtE+/GFXO5av4MABzwrbVvJbtMCSCFvkgGeqO+Mbb9kQ8uZVpl+WV/DTPjt++/iVAoEgO7W45w4PDJpNUowaTQF8kwnV091G9rie1/8Nr5V/y1qiaP59olNbH9dzbtGUVlkgkU+iIZ5r2te+kN9wFQPW0i1dMmjurrXb9sTmz7HQ3fzHoKfZEM8+b6ptj2zSsvPiY/UdcsriY/PwTA/kMnaDt6atRfU4JLoS+SQU51dLJ554HY/k0r5o36a5YUF3L1wpmx/Xc37x3115TgUuiLZJC3N+xhYNKERXOmUTmxLClf9/rlnhbPZrV4splCXySDvLl+cNROMlo7A1YumRUbxdN8oH3EOfklcyn0RTLEofbTNO47CkTm0PFenY9WaUkRyxbMiO2rxZO9Egp9M7vbzHaZWZOZPTbM54vM7Lno59eZWU309QIze9rMtprZDjP7anLLF8kdb20YvIF79cKZlJUWJ/Xrr142O7atoZvZa8TQN7MQ8ARwD1AHPGhmdXGHPQycdM7NAx4Hvhl9/X6gyDm3FLgG+PzALwQRSZxzjjfrU9PaGbBq6Wzyok/1Nu47GpufX7JLIlf6q4Am51yzc64HeBZYE3fMGuDp6PZa4HaLPBPugFIzywdKgB5AzUKRy9Ry8DgHo0MpiwoLWLlkVtK/R1lpMUtqp8f2121RiycbJRL604EDnv3W6GvDHuOcCwOngQoivwDOAYeA/cBfO+dOjLJmkZzjnXZh1dIaiosKUvJ9hozi0YNaWSmR0B9uFqf4pXYudswqoA+oAmYDXzGzC+4+mdkjZlZvZvXt7ZrpT8TLOTekn5+K1s6AVVfVxP4x72w+xInT51L2vcQfiYR+KzDTsz8DaLvYMdFWTjlwAvgM8JJzrtc5dxR4G7hgJWbn3JPOuZXOuZWVlZWXfxYiWWz7nsHwLSst5qr58X9oJ8/4sjHUzasCIldt721pSdn3En8kEvrvA7VmNtvMCoEHgBfijnkBeCi6fR/wmossvLkfuM0iSoHVwM7klC6SG7ytnRuWz41NmZAqQ0bxbNYonmwzYuhHe/SPAi8DO4DnnXMNZvZ1M7s3ethTQIWZNQFfBgaGdT4BjAW2Efnl8V3n3JYkn4NI1urt7RvSW09la2fAas8EbA2NbZzu6Er595T0yU/kIOfci8CLca99zbPdTWR4Zvz7zg73uogkZvPuVs51nQegckIZC2ZPSfn3nFheyoLZU9m193CkxbN1L3fcED9KWzKVnsgVCTDv5GrXL59z2atjXSlNt5y9FPoiAbZl18HY9rKFMy5xZHJ5+/pbG9tif21I5lPoiwTU8VNnaT0SWb4wPz9E3dxpafvelRPLqJk+CYD+/n52Nh9O2/eW1FLoiwSU9yp/4ewpFBYkdAsuaZZEh25CZNioZAeFvkhAbdndGttetmDmJY5MjUVzp8a2G5riH82RTKXQFwkg59yQK/1UPpB1Md520p4Dx+g+35v2GiT5FPoiAbT/0ElOdXQCMHZMEXNmTkp7DePGljBz6gQg0tff3XIk7TVI8in0RQJoy67B1s6S2unk5fnzT7Vu7mBfv0F9/ayg0BcJoKH9/PQN1YxXN2+wxbNdff2soNAXCZhwuI+GpsGr6qv8DH1PX3/3vqP09vb5Voskh0JfJGB2tRzhfE/kpumUinFMnTTOt1omlpfGvn843Efj/qO+1SLJodAXCRhvP/+qBekftRPP29fXeP3Mp9AXCZjNQ0Lfv9bOgMXq62cVhb5IgJzrOk/TvkgLxYCltQG40vc8mbtz7xHCYfX1M5lCXyRAtjW2xdYinTOzkrLSYl/rAZg8sYxJE8YCcL6nl70Hj/lckYyGQl8kQDbvDMZQzXjeUTzb92jytUym0BcJkK27g9XPH+AN/YZG9fUzmUJfJCDaT3TQ1n4agIL8UFpWyUqUt6+/o/kQ/f39PlYjo6HQFwkI71O4dXOnpX0q5UupqiynvKwEgM7uHvYfOuFzRXKlFPoiAbF5yCpZ6Z9K+VLMbOg8PE0ar5+pFPoiAeCcY+tuf6dSHonG62cHhb5IALQcPM6Zs11AZErjmukVPld0oSEjeJoP45y7xNESVAp9kQDY2jh4lb90/nTMzMdqhlc9bSJjxxQBcOZsF61HTvlckVwJhb5IAGz39Mi9a9MGiZmxaM7g1f4OzcOTkRT6Ij5zzrGjeTBAF3naKEHjnV+/YY/6+plIoS/is9YjpzjbeR6AstJiZkwZ73NFF1c3x3sz95D6+hlIoS/iM2+bZNGcqYHs5w+YPWMSxUUFAJw4fY4jxzt8rkgul0JfxGfeOeqD3NoBCIXyWFAz+KRwoxZLzzgKfRGfbff0xr3tk6Cq9YT+7n0K/Uyj0Bfx0dETHRw/dQ6AosICZs+Y5HNFI6udNTm23bhPyydmGoW+iI+8/fwFNVMIhYL/T7K2ejD0m1uPabH0DBP8nzCRLDZ0qOZUHytJXHlZCVMqIoul9/X109KmRVUyiUJfxEfeh7LqAn4T12uep8Wzu0Utnkyi0BfxyemOLg4ejUxlEArlMb8mOPPnj2S++voZS6Ev4hNva2de9eRAzZ8/Eu8vqEaN4MkoCYW+md1tZrvMrMnMHhvm80Vm9lz08+vMrMbzuavM7B0zazCzrWbm/0rPIgGww7PWbN2czOjnD6iZXhG76Xz42Bk6znX7XJEkasTQN7MQ8ARwD1AHPGhmdXGHPQycdM7NAx4Hvhl9bz7wfeB3nHOLgVuA3qRVL5LBvFf6CzOonw9QWJBPTdXg9M9q8WSORK70VwFNzrlm51wP8CywJu6YNcDT0e21wO0WeZb8TmCLc24zgHPuuHNO47sk53V199B8oB0AIzL9QqaZr4e0MlIioT8dOODZb42+NuwxzrkwcBqoAOYDzsxeNrMNZvaHoy9ZJPPtajnCwFRl1VUVlJYU+VrPlfA+pNWkK/2Mkcido+Fmf4qfWu9ix+QDNwHXAp3Az81svXPu50PebPYI8AhAdXV1AiWJZDbvQ1mZNFTTK/7JXOdcoCeLk4hErvRbAe8qzTOA+Im0Y8dE+/jlwIno6790zh1zznUCLwIr4r+Bc+5J59xK59zKysrKyz8LkQyTSZOsXcy0yvLYSlpnO89zqP20zxVJIhIJ/feBWjObbWaFwAPAC3HHvAA8FN2+D3jNRSbafhm4yszGRH8ZfBDYnpzSRTJTb2/fkBufmdjPh8hKWpqHJ/OMGPrRHv2jRAJ8B/C8c67BzL5uZvdGD3sKqDCzJuDLwGPR954E/pbIL45NwAbn3E+SfxoimWPPgXZ6w5HxDFMnjWNieanPFV25eQr9jJPQ0yDOuReJtGa8r33Ns90N3H+R936fyLBNESE7WjsD5s/yjODR3PoZQU/kiqSZd3x+Jsyffyne9k5L23F6esM+ViOJUOiLpFF/fz87mwefxM30K/2y0mKmTvLMuHnwuM8VyUgU+iJptK/tBJ3dPQCMLxsTC8xMVqsWT0ZR6IukUXw/PxvGtXtbPLt1MzfwFPoiabTD29rJ0KGa8ebX6MncTKLQF0kT51xWPIkbr6ZqUmzGzSPHz3C6o8vniuRSFPoiaXL42BlOdXQCUFJcyKyqiT5XlBwFBSHmeBZ0b9yvq/0gU+iLpIn3Kn/h7Cnk5WXPPz89mZs5suenTiTgdmTRUM143oe0GjWCJ9AU+iJpkk0PZcWLn44hMvWWBJFCXyQNTp7pjM1CmZ8fYl715BHekVmmThpHWWlkJdTO7h7aNONmYCn0RdLAe5VfWz2ZgoKQj9Uk3wUzbqrFE1gKfZE0yMahmvGGPKTVopu5QaXQF0mD7XsGb+IuzJKHsuJ5p2PQsM3gUuiLpFhnVw/7Dh4DIuuKLpydraHvmXHzoGbcDCqFvkiK7dx7OLao9KzpkxhTUuhrPakydkwRVZXlQGQ20eYDx3yuSIaj0BdJMe9UynVzs/Mqf4BW0go+hb5IimXTSlkjmV/jmWZ5n0bwBJFCXySFenv7htzUXJRlD2XFq632DtvUlX4QKfRFUmjPgXbCnkXQJ4wb43NFqVUzvYL8/MgzCO0nOzTjZgAp9EVSKJdaOxB52lgzbgabQl8khbJ5vp2L0ZO5wabQF0mRbFsEPVHzh6yZqyv9oFHoi6TI/kPZtwh6IrzDNpv2a8bNoFHoi6RINi6CnogpFWVDZtw8ePSUzxWJl0JfJEW88+1kyyLoiTCzuEVV1OIJEoW+SAo459jZnP0za17MvFmVsW09mRssCn2RFDh87Awnz2TfIuiJ0pO5waXQF0kB76idbFsEPRHeYZv72k5oxs0Aya2fRJE0adjTFtvOlaGaXqUlmnEzqBT6Iimwbfdg6C+eW+VjJf7RjJvBpNAXSbIjx8/QfrIDgKLCAuZVV47wjuykvn4wKfRFkmxb48HYdt3cqbEJyHKNZtwMJoW+SJJt2T0Y+kvnz/CxEn9pxs1gUuiLJJFzbkg/f2ltbvbz4cIZN9XiCYaEQt/M7jazXWbWZGaPDfP5IjN7Lvr5dWZWE/f5ajM7a2Z/kJyyRYKp9cgpTnVExueXlhRRM73C54r8pSdzg2fE0DezEPAEcA9QBzxoZnVxhz0MnHTOzQMeB74Z9/nHgZ+OvlyRYPP285fUVuXc+Px4tRrBEziJ/ESuApqcc83OuR7gWWBN3DFrgKej22uB2y06u5SZfRxoBhqSU7JIcG3bPTT0c11tjSf0NeNmICQS+tOBA5791uhrwx7jnAsDp4EKMysF/gj4s9GXKhJszjm2Nnr6+Tl8E3fA5IlljBtbAkBXdw+tRzTjpt8SCf3h5oON/3V9sWP+DHjcOXf2kt/A7BEzqzez+vb29gRKEgmeloPHOdd1HoDyshJmTBnvc0X+M7MhQzd3txy+xNGSDomEfisw07M/A2i72DFmlg+UAyeA64C/NLMW4PeBPzazR+O/gXPuSefcSufcysrK3HyQRTLfliGtnek5M3/+SBbMGbyZu7NZI3j8lp/AMe8DtWY2GzgIPAB8Ju6YF4CHgHeA+4DXXKR594GBA8zsT4Gzzrm/S0LdIoHjvYl71fz4DmjuWuRZG9i7ZrD4Y8Qr/WiP/lHgZWAH8LxzrsHMvm5m90YPe4pID78J+DJwwbBOkWwWDvfR0DQYaEtqFfoD5lVXEgpFouZQ++nYlNPij0Su9HHOvQi8GPfa1zzb3cD9I3yNP72C+kQywp4D7Zzv6QWgckIZUyrKfK4oOAoL8qmdNTk23fTO5sNcv3yOz1XlrtweRCySJN5RO0vmV6mfH2fR7MHlItXi8ZdCXyQJtu5ujW0vVWvnAt41BXY0awSPnxT6IqPU0xtm597BUSl6KOtCC+dMjY3r3nugna7uHl/ryWUKfZFR2rX3COFwHwBVleVUjB/rc0XBU1pSxMxpkXWCHbCrRUM3/aLQFxkl71BNPYV7cXVq8QSCQl9klOJv4srwhvT19+hmrl8U+iKj0NXdM2T2yCXzFPoXs2jO4Aie3S2DLTFJL4W+yCjsaD5Mf38/ALOqKmKTi8mFKsaPZfLEyPMLveE+mluP+VxRblLoi4zCVu/SiBqqOaKFnqv97Wrx+EKhLzIKG3fsj20vXaDQH4n3Zu5O3cz1hUJf5AodOX6GA4dPAlCQH8rp9XATNfQhrUNaVMUHCn2RK1S/bV9se+n86RQVFvhYTWaYPnk8ZaXFAJztPB/7pSnpo9AXuULe0F+5eJaPlWQOMxsyikctnvRT6Itcgc6uHhr2DI7Pv0ahnzBvi0c3c9NPoS9yBTbtOkBfX2SoZs30SUyaoKkXEqUrfX8p9EWuwJDWzhJd5V+O2dMnUVgQWcqj/WQHx05ecgltSTKFvshl6u/vZ8P2waGa16q1c1ny80MsmD24bq6mZEgvhb7IZdrdcpSOc90AjC8bw9zqSp8ryjzeh7Q0+Vp6KfRFLlP9tpbY9oq6aq2SdQXqPIulb9dKWmml0Be5TPUNg/38a5fW+FdIBptfM4W86C/LA4dOcLbzvM8V5Q6Fvshl8D6Fm58f4qr5mnrhShQXFTB7xqTY/s69avGki0Jf5DIMeQq3toriIj2Fe6UWe6ah3rKr9RJHSjIp9EUuw9CncGv8KyQLLFs4uMrYRs9oKEkthb5Igrq6hz6Fq/H5o1M3d1psvH5b+2kOtZ/2uaLcoNAXSdCmna2xp3BnVVXoKdxRKizIH7IGwQZd7aeFQl8kQUNG7egqPylW1FXHtr1rE0jqKPRFEtDf38/6Bk29kGwrFg+G/rbGNnp6wz5WkxsU+iIJaNw3+BRueVkJ86on+1xRdpg8sYwZUyYAkXVztzW2jfAOGS2FvkgCvKN2rqmbpadwk+jqRTNj2+rrp55CX2QEzjne2dwc21drJ7m8ff0N2/drCcUUU+iLjGB3y5HYcMLiogKWe8aXy+gtmjMtttTkkeNnaNPQzZRS6IuM4Bfv7Ypt37B8rtbCTbKCgqHTWehBrdRS6ItcQk9vmLc37Int33rdAh+ryV7xLR5JHYW+yCW8v20fnd09AEypGDdkqT9JHu/N3IY9h+g+3+tjNdlNoS9yCa97WjsfvHa+Ru2kSOXEMmZOjQzdDIf72NakoZupklDom9ndZrbLzJrM7LFhPl9kZs9FP7/OzGqir99hZuvNbGv0423JLV8kdU6e6WTTjgOx/VtWzfexmuw3pMXToBZPqowY+mYWAp4A7gHqgAfNrC7usIeBk865ecDjwDejrx8DPuacWwo8BPxzsgoXSbU36hvpjw4frJs7jSkV43yuKLtdvUhDN9MhkSv9VUCTc67ZOdcDPAusiTtmDfB0dHstcLuZmXNuo3Nu4O+0BqDYzIqSUbhIKjnnhrR2dJWfeovmTI2tT9B+soODR0/5XFF2SiT0pwMHPPut0deGPcY5FwZOAxVxx3wK2Oic07poEngtB4+z/9AJAAryQ1y/bK7PFWW//PwQyxYMPgOhUTypkUjoD3fnKv7vrkseY2aLibR8Pj/sNzB7xMzqzay+vb09gZJEUss7Nn/1sjmMKSn0sZrcMWTWze0HLnGkXKlEQr8VmOnZnwHE31qPHWNm+UA5cCK6PwP4MfAbzrk9DMM596RzbqVzbmVlZeXlnYFIkoXDfby5vim2r7H56bN8oXfoZpuGbqZAIqH/PlBrZrPNrBB4AHgh7pgXiNyoBbgPeM0558xsPPAT4KvOubeTVbRIKm3YcYAzZ7sAmFheytLaqhHeIckyacJYqqdNBKCvr58tuw/6XFH2GTH0oz36R4GXgR3A8865BjP7upndGz3sKaDCzJqALwMDwzofBeYBf2Jmm6L/aU5aCbRfem/gXjufvDw9zpJO13haPL/aOGxzQEYhP5GDnHMvAi/GvfY1z3Y3cP8w7/sL4C9GWaNI2nSc6+Z9z2Ipt6i1k3Y3rpjHj3++CYB3NzdzrusmSks06C9ZdAkj4vHWhqbYOri1syYzffJ4nyvKPbNnTGJWVWTwX2+4b8jcRzJ6Cn2RKOccP3tnZ2z/lmt1le+X21cvjG3//N2dlzhSLpdCXyRq/fb9tBw8BkTG5t+4QmPz/XLzylpCoUg8Ne0/GntmQkZPoS9C5Cp/7cvrY/t33biYstJiHyvKbWWlxaxaOju2/4t1uy5xtFwOhb4IsGX3QRr3HQUgFMpjze3LfK5IbvPcRH/9/d2Ew30+VpM9FPoiMOQq/0OrFzGxvNTHagRg+cIZsf8PZ852sV7TMiSFQl9yXkNTG9v3HAIgLy+Pj39ouc8VCUT+X9y6avBq/zXd0E0Khb7kvLUvb4ht33LtfCZPLPOxGvHyToGxYft+Tp7p9LGa7KDQl5y2u+UIW3a3ApBnxifvuNrnisRrWmU5dXOnAdDvHL98f7fPFWU+hb7ktB94evk3XTOPaZXlPlYjw7ntusEx+6+9u1OLq4ySQl9y1p797bE52w341J0r/C1IhnX98jkUFUYWVzl49BS7W474XFFmU+hLzvrhq4O9/OuvnsuMKRN8rEYupriogBuvHnxQTk/ojo5CX3LSvrbjrNuyN7Z/n67yA807LcPbG/donv1RUOhLTvqBZ8TOqqU1sQm+JJgWzJ5CVfR+S/f5Xt7Z1OxzRZlLoS85p75hH+9sGpy58b47r/GxGkmEmXGr54bu2lfW6wndK6TQl5zSca6bf3jml7H9G1fMY261lujMBHfcsIgxxZG1ig8fO8NLbzX4XFFmUuhLTvnW2rc41RF5wGd82Rh++76bfK5IElVWWsx9dw3+VfaDl9dztvO8jxVlJoW+5Iy3N+7h7Q2DC57/7oMf1EyaGebDH1jClIpxAJztPM8PX9kwwjsknkJfcsKpjk6efP6N2P6t1y1g5eJZPlYkV6KgIMRnP3ZdbP8nb2zl8LEzPlaUeRT6kvWcc/zTc2/EWgEV40v53Cdu8LkquVI3LJ/DgtlTAejr6+f7/7HO54oyi0Jfst4b9Y28t7Ultv/Fz9yqhbYzmJnxmx+/Prb/zqY97Gw+7GNFmUWhL1nt2MmzfHvtW7H9u25czLIFM3ysSJJhfs0Url8++JTu9/7tV5qTJ0EKfclavb19/J9/eY3O7h4AplSM4zfWrPa5KkmWX7/3utg6uo37jvL2xj0jvENAoS9Zqre3j7/6zitsa2wDIhOqPfrZWykuKvC3MEmaKRXj+MjNS2P7339hHT29YR8rygwKfck64XAff/O9V1m/fV/stU/fszI2L7tkj/vuWsHYMZH7M+0nO/jhqxt9rij4FPqSVcLhPv76u6/y/raW2Guf/NDV3H+XplrIRqUlRXz67pWx/bUvr+cX63b5WFHwKfQlawxc4XsD/xO3L+czH12FmflXmKTUXTfWsXheVWz/7595PbZOglxIoS9ZIRzu4/GnfzZkaOaa25bx2Y9dp8DPcvn5If7ot+6ietpEILKs4l995xUa92mxleEo9CXjnero5C+feoV3PfPj33vrMn793tUK/BxRWlLEn/zuR6icEFnUvqc3zDf+6accPHrK58qCR6EvGctFF8r+0n97bshN24/dchW/sUaBn2smlpfyJ1/4SOzGbse5bv7873/CidPnfK4sWBT6kpHaT3TwjX96kf/9/deGzLT48duX89DHr1fg56jpk8fzXz7/YQryQ0BkRM9f/OOLnOvSbJwDFPqSUZxzvPRmA1/678+zcceB2OuVE8r42hc+qpaOML9mCn/wn+8kL/pzsK/tOF/55lrqG/aN8M7cYEF7dHnlypWuvr7e7zIkYLrP9/L2xiZeems7zQfaY68bcM/NS/jsR6/Tg1cyxGvv7uSJZ14f8trqq2bzuU/eyKQJY/0pKoXMbL1zbuVIx+WnoxiRK9Vy8BivvL2DN9Y30hWdTmFAVWU5X/zMrSycM9Wn6iTIblu9kIL8EN/+4VuxFuC7W/aycWcrD374Wj5885LYNA65RFf6Eih9ff3sazvOjubDvFHfSNP+oxccEwrlsebWZdx/9zUUFui6RS7tzNku/vmFdby2bueQ12dVVbDmtmWsqKvOisV0Er3STyj0zexu4H8BIeDbzrn/Eff5IuD/AtcAx4Ffc861RD/3VeBhoA/4Pefcy5f6Xgr93OGc42zneZpbj7Gz+TA7mw+zq+UI53t6hz1+WmU5d9xQxy3Xzqe8rCTN1Uqma2hq48nn36T1yMkhrxuwaO40Vi6p4dols6iaPN6fAkcpaaFvZiFgN3AH0Aq8DzzonNvuOeYLwFXOud8xsweATzjnfs3M6oBngFVAFfAzYL5z7qLL2Cv0M59zjq7uXs52nedc53nORv87cfocR493cPTEGY4c7+DoiY4LWjbxQqE8Vi+bw503LGLxvCrdpJVRCYf7eOEXW3j+pXp6w8PHUFVlObOmT2JqRRmTK8YxZdI4Jk8so3LCWPKjo4KCKJk9/VVAk3OuOfqFnwXWANs9x6wB/jS6vRb4O4v861wDPOucOw/sNbOm6Nd7J9G8ZJ8NAAAGaUlEQVQTSdR3f/Sri/5PzEWOwV/mw/1id27w9YFPOxzOQX9/f+TzsX1Hf38/fX399PX309fn6Hf99Ib76ekN09vbF/kY7uN8T5ju8730j6JtWDG+lAWzp7J4bhU3XD2HcWN1VS/JkZ8f4pN3XM3NK2v5Zf1u3t/aQtO+o3h/WtvaT9PWfvqC9xpQXFxIcWE+JUUFnu1CQiEjLy+PUCiPPLPYRzNiFyoD1ytmhnHxi5ebrpmX0skBEwn96cABz34rcN3FjnHOhc3sNFARff3duPdOv+JqL+GVX23XtKoZqLAgn6rJ41lQM4VFc6aycM5UKieW+V2WZLlJE8byqTtW8Kk7VnCqo5P1Dft4f+s+Nu08cNGLRwd0dffQ1d3DyWGPSI5ZVRN9D/3hfiXFX8Zd7JhE3ouZPQI8AlBdXZ1ASRJ0RYUFjB1TSGlJEWPHRP4rLyth8sTIn8qTK8qYUjGOcWOL1bIRX40vG8Ptqxdx++pF9PSG2bO/nSPHIy3II8fPcDT68eTpcxeGVwZKJPRbgZme/RlA20WOaTWzfKAcOJHge3HOPQk8CZGefqLFe33uEzfQ199/JW/NGJf6k3DE95p32y543aJ/iuZZZAhbXl70T1OMPM+frKG8wT9dC/JDFBbkU1AQoiA/RFFhPgX5IUqKCgLd+xS5mMKCfBbNncaiYa60+/r66e7ppau7l+6eXroHPvaECYf76Ot3uH5HX38//Z6PA5xzJNL1XDgntes+JBL67wO1ZjYbOAg8AHwm7pgXgIeI9OrvA15zzjkzewH4VzP7WyI3cmuB95JVvNedN9al4suKiACRQQWlJUWUlhT5XcqojBj60R79o8DLRIZsfsc512BmXwfqnXMvAE8B/xy9UXuCyC8Gosc9T+Smbxj44qVG7oiISGrp4SwRkSyQ6JDN3HsGWUQkhyn0RURyiEJfRCSHKPRFRHKIQl9EJIcEbvSOmbUDo1niZhJwLEnlZIJcO1/QOecKnfPlmeWcqxzpoMCF/miZWX0iw5ayRa6dL+icc4XOOTXU3hERySEKfRGRHJKNof+k3wWkWa6dL+icc4XOOQWyrqcvIiIXl41X+iIichFZE/pmdreZ7TKzJjN7zO96UsHMvmNmR81sm+e1iWb2qpk1Rj9O8LPGZDOzmWb2CzPbYWYNZval6OtZe95mVmxm75nZ5ug5/1n09dlmti56zs+ZWaHftSaTmYXMbKOZ/b/ofrafb4uZbTWzTWZWH30t5T/XWRH60cXbnwDuAeqAB6OLsmeb7wF3x732GPBz51wt8PPofjYJA19xzi0CVgNfjP6/zebzPg/c5pxbBiwH7jaz1cA3gcej53wSeNjHGlPhS8AOz362ny/Arc655Z5hmin/uc6K0MezeLtzrgcYWLw9qzjn3iCyXoHXGuDp6PbTwMfTWlSKOecOOec2RLc7iITCdLL4vF3E2ehuQfQ/B9wGrI2+nlXnbGYzgI8A347uG1l8vpeQ8p/rbAn94RZvT8kC7AE0xTl3CCIBCUz2uZ6UMbMa4GpgHVl+3tFWxybgKPAqsAc45ZwLRw/Jtp/x/wn8ITCw5mkF2X2+EPlF/oqZrY+uEw5p+LlOZLnETJDQAuySucxsLPBD4Pedc2eyfTH16Apzy81sPPBjYNFwh6W3qtQws48CR51z683sloGXhzk0K87X40bnXJuZTQZeNbOd6fim2XKln9AC7FnqiJlNA4h+POpzPUlnZgVEAv9fnHM/ir6c9ecN4Jw7BbxO5H7GeDMbuFDLpp/xG4F7zayFSGv2NiJX/tl6vgA459qiH48S+cW+ijT8XGdL6McWb4/e4X+AyGLtuWBgUXqiH//dx1qSLtrbfQrY4Zz7W8+nsva8zawyeoWPmZUAHyJyL+MXwH3Rw7LmnJ1zX3XOzXDO1RD5t/uac+6zZOn5AphZqZmVDWwDdwLbSMPPddY8nGVmHyZydTCwePs3fC4p6czsGeAWIjPxHQH+K/BvwPNANbAfuN85F3+zN2OZ2U3Am8BWBvu9f0ykr5+V521mVxG5iRcicmH2vHPu62Y2h8iV8ERgI/CfnHPn/as0+aLtnT9wzn00m883em4/ju7mA//qnPuGmVWQ4p/rrAl9EREZWba0d0REJAEKfRGRHKLQFxHJIQp9EZEcotAXEckhCn0RkRyi0BcRySEKfRGRHPL/AfiZyDk4gWVcAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pmf = AddPmfs(rhode_rematch, wei_rematch)\n", "thinkplot.Pdf(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Pmf` class provides a `+` operator that does the same thing." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pmf = rhode_rematch + wei_rematch\n", "thinkplot.Pdf(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise:** The Pmf class also provides the `-` operator, which computes the distribution of the difference in values from two distributions. Use the distributions from the previous section to compute the distribution of the differential between Rhode and Wei in a rematch. On average, how many clays should we expect Rhode to win by? What is the probability that Rhode wins by 10 or more?" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "pmf = rhode_rematch - wei_rematch\n", "thinkplot.Pdf(pmf)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.7142857142857105, 1, 1)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# On average, we expect Rhode to win by about 1 clay.\n", "\n", "pmf.Mean(), pmf.Median(), pmf.Mode()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.021355007938987394" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# But there is, according to this model, a 2% chance that she could win by 10.\n", "\n", "sum([p for (x, p) in pmf.Items() if x >= 10])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Distribution of maximum\n", "\n", "Suppose Kim Rhode continues to compete in six more Olympics. What should we expect her best result to be?\n", "\n", "Once again, there are two ways we can compute the distribution of the maximum:\n", "\n", "1. Sampling.\n", "\n", "2. Analysis of the CDF.\n", "\n", "Here's a simple version by sampling:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "iters = 1000\n", "pmf = Pmf()\n", "for _ in range(iters):\n", " ks = rhode_rematch.Sample(6)\n", " pmf[max(ks)] += 1\n", "pmf.Normalize()\n", "thinkplot.Hist(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here's a version using NumPy. I'll generate an array with 6 rows and 10 columns:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[19, 16, 14, ..., 22, 16, 12],\n", " [16, 14, 13, ..., 15, 17, 16],\n", " [14, 16, 20, ..., 21, 14, 22],\n", " [16, 18, 16, ..., 12, 16, 16],\n", " [16, 12, 16, ..., 15, 14, 14],\n", " [14, 10, 15, ..., 10, 15, 11]])" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iters = 1000\n", "ks = rhode_rematch.Sample((6, iters))\n", "ks" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the maximum in each column:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([19, 18, 20, 18, 22, 22, 20, 21, 21, 24])" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "maxes = np.max(ks, axis=0)\n", "maxes[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And then plot the distribution of maximums:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pmf = Pmf(maxes)\n", "thinkplot.Hist(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or we can figure it out analytically. If the maximum is less-than-or-equal-to some value `k`, all 6 random selections must be less-than-or-equal-to `k`, so: \n", "\n", "$ CDF_{max}(x) = CDF(x)^6 $\n", "\n", "`Pmf` provides a method that computes and returns this `Cdf`, so we can compute the distribution of the maximum like this:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pmf = rhode_rematch.Max(6).MakePmf()\n", "thinkplot.Hist(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise:** Here's how Pmf.Max works:\n", "\n", " def Max(self, k):\n", " \"\"\"Computes the CDF of the maximum of k selections from this dist.\n", "\n", " k: int\n", "\n", " returns: new Cdf\n", " \"\"\"\n", " cdf = self.MakeCdf()\n", " cdf.ps **= k\n", " return cdf\n", "\n", "Write a function that takes a Pmf and an integer `n` and returns a Pmf that represents the distribution of the minimum of `k` values drawn from the given Pmf. Use your function to compute the distribution of the minimum score Kim Rhode would be expected to shoot in six competitions." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def Min(pmf, k):\n", " cdf = pmf.MakeCdf()\n", " cdf.ps = 1 - (1-cdf.ps)**k\n", " return cdf" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pmf = Min(rhode_rematch, 6).MakePmf()\n", "thinkplot.Hist(pmf)" ] } ], "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.7.0" } }, "nbformat": 4, "nbformat_minor": 2 }