{ "metadata": { "name": "", "signature": "sha256:2ff3c169adbbe0e6430e75c575eb1a7606fdedb74a75b8d28f647a0d637ccbf2" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesian Model Fitting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- *Jake VanderPlas*\n", "- *ESAC statistics workshop, Oct 27-31 2014*\n", "- *Source available on [github](http://github.com/jakevdp/ESAC-stats-2014)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preliminaries\n", "\n", "Again, we'll start with some boilerplate imports and setup" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy import stats\n", "\n", "# fig_code is in the repository linked above\n", "import fig_code\n", "\n", "# use seaborn plotting defaults\n", "# If this causes an error, you can comment it out.\n", "import seaborn as sns\n", "sns.set()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exploring Probability\n", "\n", "Bayesian approaches to model fitting are all about probability. Previously we looked at probability within the likelihood; for a single measured number, we have a probability density that looks like this:\n", "\n", "$$\n", "p(y~|~I)\n", "$$\n", "\n", "Here $y$ is the value that we observe, and $I$ is whatever information is out there that helps us specify this.\n", "This expression should be read *the probability density of $y$ given $I$*.\n", "\n", "Often statistics courses will go to great lengths to distinguish discrete probabilities from continuous probability densities; here we're going to ignore the discrete case and just look at the continuous case. A probability density must satisfy the following:\n", "\n", "$$\n", "\\int_{-\\infty}^\\infty p(y~|~I)dy = 1\n", "$$\n", "\n", "That is, the probability density is normalized.\n", "\n", "**Question 1: what are the units of $p(y~|~I)$?**\n", "\n", "**Question 2: what does $\\int p(y~|~I)dI$ mean?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Answer 1: units of $p(y~|~I)$ are inverse of the units of $y$! So, for example, if $y$ is a distance, $p(y~|~I)$ has units 1/distance*\n", " \n", "*Answer 2: it's meaningless! You should never do that integral!*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Units of Probability Density\n", "\n", "This is an important thing to remember: the units of a probability density are the inverse of the units of the quantity in question. Keeping this in mind will help you recognize all sorts of common mistakes in computations of probability." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Joint Probabilities\n", "\n", "As we saw in the frequentist section, we can write *joint* probability densities for multiple variables. This is written as:\n", "\n", "$$\n", "p(x, y~|~I)\n", "$$\n", "\n", "This should be read \"the probability density of $x$ and $y$ given $I$\".\n", "In analogy to above, it must satisfy the equation\n", "\n", "$$\n", "\\iint p(x, y~|~I) dxdy = 1\n", "$$\n", "\n", "Take a moment and think about this: what are the units of this joint probability?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fig_code.plot_venn_diagram()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "One nice way to think about joint probabilities is in terms of a Venn Diagram. Areas in the Venn diagram are proportional to probabilities, and here we're just looking at the part of parameter space where $\\theta$ holds.\n", "\n", "- When we write $p(x~|~I)$, this is akin to measuring the area of the $x$ region compared to the area of the $I$ region.\n", "- When we write $p(x,y~|~I)$, this is akin to measuring the area of the intersection of $x$ and $y$ compared to the area of the $I$ region.\n", "\n", "**Question: what would $p(x~|~y,I)$ mean?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we write something like $p(x~|~y,I)$, this is known as the *conditional* probability of $x$ given $y$ (and $I$).\n", "\n", "**Question: Looking at the Venn Diagram, how could you express this conditional probability in terms of the joint probability?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Deriving Bayes' Rule\n", "\n", "One of the fundamental rules of conditional probability is this:\n", "\n", "$$\n", "p(x~|~y,I) \\equiv \\frac{p(x, y~|~I)}{p(y~|~I)}\n", "$$\n", "\n", "Or, rewriting this, we have the expression:\n", "\n", "$$\n", "p(x, y~|~I) = p(x~|~y,I) p(y~|~I)\n", "$$\n", "\n", "Of course, this is symmetric so we could also write:\n", "\n", "$$\n", "p(x, y~|~I) = p(y~|~x,I) p(x~|~I)\n", "$$\n", "\n", "Putting these last two together, we see\n", "\n", "$$\n", "p(x~|~y,I) p(y~|~I) = p(y~|~x,I) p(x~|~I)\n", "$$\n", "\n", "Which, rearranged slightly, looks like this\n", "\n", "$$\n", "p(x~|~y,I) = \\frac{p(y~|~x,I) p(x~|~I)}{p(y~|~I)}\n", "$$\n", "\n", "This little result is known as *Bayes' Rule* or *Bayes' Theorem*, after the reverend Thomas Bayes. We'll come back to this in a bit, but first we have to get a bit philosophical." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What Is a Probability?\n", "\n", "Above we've been happily exploring the mathematical characteristics of probability; but we haven't stopped to ask **what** the probability is measuring. For example, when I say \"the probability that this coin will land heads is 50%\", what claim am I actually making?\n", "\n", "A full answer to this would probably require a semester philosophy class, but history has distilled for us two camps of thought on this question:\n", "\n", "- **frequentist** or **classical** statistics would say that the probability is a statement about limiting frequencies in repeated trials: in the limit of many coin flips, 50% of the results will be heads.\n", "\n", "- **Bayesian** statistics extends this notion of probability to include **degrees of belief**. So, even absent a large number of (real or imaginary) trials, we could say that the 50% probability indicates our certainty of a single result: given what we know about the coin, we are 50% certain that the flip will land heads.\n", "\n", "But enough of this philosophy stuff... how does this relate to model fitting?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayes' Rule & Model Fitting\n", "\n", "Let's re-write Bayes' rule here, but we'll replace $x$ with $\\theta$, representing our model parameters (e.g. $\\theta = [m, b]$, the slope and intercept of the line), and we'll replace $y$ with $D$, representing our observed data (e.g. $D = \\{x_i, y_i, \\sigma_i\\}$):\n", "\n", "$$\n", "p(\\theta~|~D,I) = \\frac{p(D~|~\\theta,I)~p(\\theta~|~I)}{p(D~|~I)}\n", "$$\n", "\n", "This shows us a formula for computing the *probability (i.e. degree of belief) of our model parameters given the observed data*.\n", "\n", "When we write Bayes' rule this way, we're all of a sudden doing something controversial: can you see where this controversy lies?\n", "\n", "*Answer: two controversial points:*\n", "\n", "1. We have a probability distribution over model parameters. A frequentist would say this is meaningless!\n", "2. The answer depends on the expression $p(\\theta~|~I)$. This is the probability of the model parameters **without any data**: how are we supposed to know that?\n", "\n", "Nevertheless, applying Bayes' rule in this manner gives us a means of quantifying our **knowledge of the parameters $\\theta$ given observed data**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Four Terms in Bayes' Rule\n", "\n", "We have four terms in the above expression, and we need to make sure we understand them:\n", "\n", "#### $p(\\theta~|~D,I)$: the *posterior*\n", "This contains all the information about the answer we're interested in.\n", "\n", "#### $p(D~|~\\theta,I)$: the *likelihood*\n", "notice that it's identical to the frequentist likelihood that we discussed in the earlier section.\n", "\n", "#### $p(\\theta~|~I)$: the *Prior*\n", "This contains any information we know about the model before updating it with our data $D$\n", "\n", "#### $p(D~|~I)$: the *Evidence*\n", "This amounts basically to a normalization term: notice that $p(D~|~I) = \\int p(D~|~\\theta,I)p(\\theta~|~I)d\\theta$. You (almost) never need to actually calulate this." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian Straight Line Fit\n", "\n", "After all this theoretical development, it's time to apply this to data!\n", "Just as a reminder, here's our dataset, $D = \\{x_i, y_i, \\sigma_i\\}$:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from fig_code import linear_data_sample\n", "x, y, dy = linear_data_sample()\n", "plt.errorbar(x, y, dy, fmt='o');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And our model is $y_M(x; \\theta) = mx + b$ where $\\theta = [m, b]$.\n", "\n", "We write Bayes' theorem as follows:\n", "\n", "$$\n", "p(\\theta~|~D) \\propto p(D~|~\\theta)~p(\\theta)\n", "$$\n", "\n", "And we'll maximize this expression with respect to $\\theta$. Notice that the only difference between this and the maximum likelihood approach is that we multiply the likelihood by a prior before maximization. We **have** to specify this prior... so what should we choose?\n", "\n", "**Question: what are some potential prior choices?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- A *Flat prior*, i.e. $p(\\theta) \\propto 1$ over some wide range.\n", "- A *Noninformative prior*, perhaps based on dimensionality, symmetry, or entropy arguments\n", "- An *Empirical prior*, based on previous unrelated data which constrains this model.\n", "\n", "But note that in the presence of data which strongly constrains the model, the effect of these priors is extremely small." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Marginalization\n", "You might be wondering what the point of all this is. Now rather than maximizing the likelihood, we're maximizing the likelihood after multiplying it by a function (the prior) which is seeminly arbitrarily chosen. What's the point of it?\n", "\n", "Well, the posterior actually has some nice properties. For example, it is possible to integrate over some (but not all) of the parameters in the posterior to find *marginalized* posteriors. This lets us ignore some parts of the fit, usually known as *nuisance parameters*.\n", "\n", "For example, our posterior here is\n", "\n", "$$\n", "p(m,b~|~D)\n", "$$\n", "\n", "Say we don't care about the intercept $b$, but it is required because of some unknown bias in the measurement. We simply marginalize it out, and compute\n", "\n", "$$\n", "p(m~|~D) = \\int_{-\\infty}^\\infty p(m,b~|~D)~{\\rm d}b\n", "$$\n", "\n", "This marginalized posterior only gives us what we're interested in: the posterior probability of the slope given our data. But now this is becoming a hard computation. Analytically integrating our likelihood over $b$ (even with a simple prior) is hard! For this reason, Bayesian computations usually proceed using **sampling** methods such as *Markov Chain Monte Carlo*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian Model Fitting via Sampling\n", "\n", "We'll not go through the theoretical details of sampling here, but for now just say that a sampling approach bases results on **drawing samples from the posterior**. Once these samples are drawn, we can use the characteristics of our sample to solve our problem.\n", "\n", "We'll use the excellend [emcee](http://dan.iel.fm/emcee/) package to do this. To use emcee, we'll need to define a function which computes the log-posterior:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def model(theta, x):\n", " return theta[0] * x + theta[1]\n", "\n", "def log_prior(theta):\n", " # Use a flat prior for now\n", " return 0\n", "\n", "def log_likelihood(theta, x, y, dy):\n", " y_model = model(theta, x)\n", " return -0.5 * np.sum(np.log(2 * np.pi * dy ** 2) + (y - y_model) ** 2 / (2 * dy) ** 2)\n", "\n", "def log_posterior(theta, x, y, dy):\n", " return log_prior(theta) + log_likelihood(theta, x, y, dy)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# run this to install emcee:\n", "# !pip install emcee" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "import emcee\n", "\n", "np.random.seed(0)\n", "\n", "ndim = 2 # number of parameters in the model\n", "nwalkers = 50 # number of MCMC walkers\n", "nburn = 1000 # \"burn-in\" period to let chains stabilize\n", "nsteps = 2000 # number of MCMC steps to take\n", "\n", "# we'll start at random locations between 0 and 2000\n", "starting_guesses = np.random.rand(nwalkers, ndim)\n", "\n", "sampler = emcee.EnsembleSampler(nwalkers, ndim, log_posterior, args=[x, y, dy])\n", "sampler.run_mcmc(starting_guesses, nsteps)\n", "\n", "sample = sampler.chain # shape = (nwalkers, nsteps, ndim)\n", "sample = sampler.chain[:, nburn:, :].reshape(-1, 2)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have a sample of points drawn from the posterior! Let's plot these using Dan Foreman-Mackey's ``triangle`` package:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# run this to install triangle:\n", "# !pip install triangle_plot" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "import triangle\n", "triangle.corner(sample, labels=['slope', 'intercept']);" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the slope and intercept are roughly Gaussian-distributed, and are negatively correlated.\n", "If we want to see the \"best-fit\" value, we can choose the maximum of the posterior to find the for *Maximum a Posteriori* fit, which in the Gaussian case will be very close to the mean of the samples:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "theta_MAP = sample.mean(0)\n", "print(theta_MAP)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 3.14459578 -2.71197201]\n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot this result over the data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "xfit = np.linspace(0, 10)\n", "\n", "plt.errorbar(x, y, dy, fmt='o')\n", "plt.plot(xfit, model(theta_MAP, xfit), label='Mean Posterior Fit')\n", "plt.legend(loc='upper left');" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note though that in the Bayesian problem, the result is **not a single number**. The Bayesian result is the full posterior, which our lines have sampled.\n", "One way to examine the results is to plot many lines based on these samples:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "xfit = np.linspace(0, 10)\n", "\n", "# Choose 200 random indices\n", "indices = np.random.choice(np.arange(len(sample)), 200)\n", "\n", "plt.errorbar(x, y, dy, fmt='o')\n", "for i in indices:\n", " plt.plot(xfit, model(sample[i], xfit), '-k', alpha=0.02)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives us an idea of the spread in the posterior, which is related to the error in the derived parameters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MCMC: the Metropolis Hastings Sampler\n", "\n", "In the afternoon breakout, we'll explore what is perhaps the simplest sampling algorithm, the Metropolis-Hastings sampler.\n", "\n", "This sampler is a procedure which selects a chain of points which (in the long-term limit) will be a representative sample from the posterior. The procedure is surprisingly simple:\n", "\n", "1. Define a posterior $p(\\theta~|~D, I)$\n", "2. Define a *proposal density* $p(\\theta_{i + 1}~|~\\theta_i, P)$, which must be a symmetric function, but otherwise is unconstrained (a Gaussian is the usual choice).\n", "3. Choose a starting point $\\theta_0$\n", "4. Repeat the following:\n", "\n", " 1. Given $\\theta_i$, draw a new $\\theta_{i + 1}$\n", " \n", " 2. Compute the *acceptance ratio*\n", " $$\n", " a = \\frac{p(\\theta_{i + 1}~|~D,I)}{p(\\theta_i~|~D,I)}\n", " $$\n", " \n", " 3. If $a \\ge 1$, the proposal is more likely: accept the draw and add $\\theta_{i + 1}$ to the chain.\n", " \n", " 4. If $a < 1$, then accept the point with probability $a$: this can be done by drawing a uniform random number $r$ and checking if $a < r$. If the point is accepted, add $\\theta_{i + 1}$ to the chain. If not, then add $\\theta_i$ to the chain *again*.\n", " \n", "During the breakout, you'll have a chance to create this sampler from scratch and use it to solve the straight line fit problem!" ] } ], "metadata": {} } ] }