{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "When will I win the Great Bear Run?\n", "-----------------------------------------\n", "\n", "This notebook presents an application of Bayesian inference to predicting the outcome of a road race.\n", "\n", "Copyright 2016 Allen Downey\n", "\n", "MIT License: http://opensource.org/licenses/MIT" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function, division\n", "\n", "from thinkbayes2 import Pmf, Cdf, Beta\n", "\n", "import thinkbayes2\n", "import thinkplot\n", "\n", "import numpy as np\n", "from scipy import stats\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Last year I wrote about my chances of winning my age group in a 5K](http://allendowney.blogspot.com/2015/10/when-will-i-win-great-bear-run.html). This is an update to that article, based on new data.\n", "\n", "Almost every year since 2008 I have participated in the Great Bear Run, a 5K road race in Needham MA. I usually finish in the top 30 or so, and in my age group I have come in 2nd, 3rd, 4th (three times), 5th, and 6th.\n", "\n", "So I have to wonder if I'll ever win my age group. To answer this question, I developed a Bayesian model of road racing." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The SOB model\n", "\n", "To understand the model, it helps to look at the data. Here is the list of people who beat me in each race:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "data = {\n", " 2008: ['Gardiner', 'McNatt', 'Terry'],\n", " 2009: ['McNatt', 'Ryan', 'Partridge', 'Turner', 'Demers'],\n", " 2010: ['Gardiner', 'Barrett', 'Partridge'],\n", " 2011: ['Barrett', 'Partridge'],\n", " 2012: ['Sagar'],\n", " 2013: ['Hammer', 'Wang', 'Hahn'],\n", " 2014: ['Partridge', 'Hughes', 'Smith'],\n", " 2015: ['Barrett', 'Sagar', 'Fernandez'],\n", " 2016: ['McGrane', 'Davies', 'Partridge', 'Johnson'],\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are some regulars who show up and beat me almost every year, but they are not always in my age group. But there are other names that appear only once.\n", "\n", "To predict my performance in future races, we need a model that includes the probability that regulars will show up, and well as the possibility that newcomers will appear.\n", "\n", "I model this process with three factors, $S$, $O$, and $B$. In order to finish ahead of me, a runner has to\n", "\n", "1. **S**how up,\n", "2. **O**utrun me, and\n", "3. **B**e in my age group.\n", "\n", "For each runner, the probability of displacing me is a product of these factors:\n", "\n", "$p_i = SOB$\n", "\n", "Some runners have a higher SOB factor than others; we can use previous results to estimate it.\n", "\n", "But first we have to think about an appropriate prior. Based on casual observation, I conjecture that the prior distribution of $S$ is an increasing function, with many people who run nearly every year, and fewer who run only occasionally:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nEREpEf8/KOyvsGluo0EAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ss = Beta(2, 1)\n", "thinkplot.Pdf(ss.MakePmf(), label='S')\n", "thinkplot.Config(xlabel='Probability of showing up (S)',\n", " ylabel='PMF', loc='upper left')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The prior distribution of $O$ is biased toward high values. Of the people who have the potential to beat me, many of them will beat me every time. I am only competitive with a few of them.\n", "\n", "(For example, of the 18 people who have beat me, I have only ever beat 2)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAV0py/5tlRLEAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "os = Beta(3, 1)\n", "thinkplot.Pdf(os.MakePmf(), label='O')\n", "thinkplot.Config(xlabel='Probability of outrunning me (O)',\n", " ylabel='PMF', loc='upper left')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The probability that a runner is in my age group depends on the difference between his age and mine. Someone exactly my age will always be in my age group. Someone 4 years older will be in my age group only once every 5 years (the Great Bear run uses 5-year age groups).\n", "\n", "So the distribution of $B$ is uniform." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bs = Beta(1, 1)\n", "thinkplot.Pdf(bs.MakePmf(), label='B')\n", "thinkplot.Config(xlabel='Probability of being in my age group (B)',\n", " ylabel='PMF', loc='upper left')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I used Beta distributions for each of the three factors, so each $p_i$ is the product of three Beta-distributed variates. In general, the result is not a Beta distribution, but maybe we can find a Beta distribution that is a good approximation of the actual distribution.\n", "\n", "I'll draw a sample from the distributions of $S$, $O$, and $B$, and multiply them out. It turns out that the result is a good match for a Beta distribution with parameters 1 and 3." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n = 1000\n", "sample = ss.Sample(n) * os.Sample(n) * bs.Sample(n)\n", "cdf = Cdf(sample)\n", "\n", "thinkplot.PrePlot(1)\n", "\n", "prior = Beta(1, 3)\n", "thinkplot.Cdf(prior.MakeCdf(), color='grey', label='Model')\n", "thinkplot.Cdf(cdf, label='SOB sample')\n", "thinkplot.Config(xlabel='Probability of displacing me',\n", " ylabel='CDF', loc='lower right')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look more carefully at the data. There are 18 people who have beat me during at least one year, several more than once.\n", "\n", "The runner with the biggest SOB factor is Rich Partridge, who has displaced me in 5 of 9 years. In fact, he outruns me almost every year, but is not always in my age group." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(18,\n", " Counter({'Barrett': 3,\n", " 'Davies': 1,\n", " 'Demers': 1,\n", " 'Fernandez': 1,\n", " 'Gardiner': 2,\n", " 'Hahn': 1,\n", " 'Hammer': 1,\n", " 'Hughes': 1,\n", " 'Johnson': 1,\n", " 'McGrane': 1,\n", " 'McNatt': 2,\n", " 'Partridge': 5,\n", " 'Ryan': 1,\n", " 'Sagar': 2,\n", " 'Smith': 1,\n", " 'Terry': 1,\n", " 'Turner': 1,\n", " 'Wang': 1}))" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from itertools import chain\n", "from collections import Counter\n", "\n", "counter = Counter(chain(*data.values()))\n", "len(counter), counter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function makes a Beta distribution to represent the posterior distribution of $p_i$ for each runner. It starts with the prior, `Beta(1, 3)`, and updates it with the number of times the runner displaces me, and the number of times he doesn't." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def MakeBeta(count, num_races, precount=3):\n", " beta = Beta(1, precount)\n", " beta.Update((count, num_races-count))\n", " return beta" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can make a posterior distribution for each runner:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "num_races = len(data)\n", "betas = [MakeBeta(count, num_races) \n", " for count in counter.values()]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check the posterior means to see if they make sense. For Rich Partridge, who has displaced me 5 times out of 9, the posterior mean is 46%; for someone who has displaced me only once, it is 15%.\n", "\n", "So those don't seem crazy." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[15.384615384615385,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 23.076923076923077,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 23.076923076923077,\n", " 23.076923076923077,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 46.15384615384615,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 15.384615384615385,\n", " 30.76923076923077]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[beta.Mean() * 100 for beta in betas]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we're ready to do some inference. The model only has one parameter, the total number of runners who could displace me, $n$. For the 18 SOBs we have actually observed, we use previous results to estimate $p_i$. For additional hypothetical runners, we update the distribution with 0 displacements out of `num_races`.\n", "\n", "To improve performance, my implementation precomputes the distribution of $k$ for each value of $n$, using `ComputePmfs` and `ComputePmf`.\n", "\n", "After that, the `Likelihood` function is simple: it just looks up the probability of $k$ given $n$." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class Bear2(thinkbayes2.Suite, thinkbayes2.Joint):\n", "\n", " def ComputePmfs(self, data):\n", " num_races = len(data)\n", " counter = Counter(chain(*data.values()))\n", " betas = [MakeBeta(count, num_races) \n", " for count in counter.values()]\n", " \n", " self.pmfs = dict()\n", " low = len(betas)\n", " high = max(self.Values())\n", " for n in range(low, high+1):\n", " self.pmfs[n] = self.ComputePmf(betas, n, num_races)\n", " \n", " def ComputePmf(self, betas, n, num_races, label=''):\n", " no_show = MakeBeta(0, num_races)\n", " all_betas = betas + [no_show] * (n - len(betas))\n", " \n", " ks = []\n", " for i in range(2000):\n", " ps = [beta.Random() for beta in all_betas]\n", " xs = np.random.random(len(ps))\n", " k = sum(xs < ps)\n", " ks.append(k)\n", " \n", " return Pmf(ks, label=label)\n", " \n", " def Likelihood(self, data, hypo):\n", " n = hypo\n", " k = data\n", " return self.pmfs[n][k]\n", " \n", " def Predict(self):\n", " metapmf = thinkbayes2.Pmf()\n", " for n, prob in self.Items():\n", " pmf = bear2.pmfs[n]\n", " metapmf[pmf] = prob\n", " mix = thinkbayes2.MakeMixture(metapmf)\n", " return mix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what some of the precomputed distributions look like, for several values of $n$.\n", "\n", "If there are fewer runners, my chance of winning is slightly better, but the difference is small, because fewer runners implies a higher mean for $p_i$." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bear2 = Bear2()\n", "\n", "thinkplot.PrePlot(3)\n", "pmf = bear2.ComputePmf(betas, 18, num_races, label='n=18')\n", "pmf2 = bear2.ComputePmf(betas, 22, num_races, label='n=22')\n", "pmf3 = bear2.ComputePmf(betas, 26, num_races, label='n=24')\n", "thinkplot.Pdfs([pmf, pmf2, pmf3])\n", "thinkplot.Config(xlabel='# Runners who beat me (k)',\n", " ylabel='PMF', loc='upper right')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the prior distribution of $n$, I'll use a uniform distribution from 18 to 40." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "low = 18\n", "high = 40\n", "bear2 = Bear2(range(low, high))\n", "bear2.ComputePmfs(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here's the update, using the number of runners who displaced me each year:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "for year, sobs in data.items():\n", " k = len(sobs)\n", " bear2.Update(k)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the posterior distribution of $n$. It's noisy because I used random sampling to estimate the conditional distributions of $k$. But that's ok because we don't really care about $n$; we care about the predictive distribution of $k$. And noise in the distribution of $n$ has very little effect on $k$." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nudAd8QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thinkplot.PrePlot(1)\n", "thinkplot.Pdf(bear2, label='n')\n", "thinkplot.Config(xlabel='Number of SOBs (n)',\n", " ylabel='PMF', loc='upper right')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The predictive distribution for $k$ is a weighted mixture of the conditional distributions we already computed:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "predict = bear2.Predict()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here's what it looks like:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.3229375957878466" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thinkplot.Hist(predict, label='k')\n", "thinkplot.Config(xlabel='# Runners who beat me (k)', ylabel='PMF', xlim=[-0.5, 12])\n", "predict[0] * 100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to this model, my chance of winning my age group is less than 2%. Disappointing. " ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }