Skip to content

Instantly share code, notes, and snippets.

@phewson
Created June 20, 2013 10:32
Show Gist options
  • Save phewson/5821745 to your computer and use it in GitHub Desktop.
Save phewson/5821745 to your computer and use it in GitHub Desktop.
This is a simple illustration of a rejection sampler. At the moment we just get Beta random variables, which is a little unfortunate as we are using two uniform distributions in the simulations which I think confuses a few people.
{
"metadata": {
"name": "Rejection Sampler Illustrated"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"from scipy import random\n",
"%load_ext rmagic "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 61
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Rejection Sampler\n",
"======================\n",
"\n",
"More details on how this method (for R users) are given in other \n",
"texts such as page 55 of Rizzo (2007) for more details.\n",
"Essentially, the inverse transform method is easy to apply but requires\n",
"knowledge of the distribution $F(x)$. In some cases, even if we\n",
"have the density $f(x)$, we don't have the distribution $F(x)$.\n",
"e.g. with the Normal distribution we need tables for $F(x)$. And even then, we can't always find $F^{-1}(x)$\n",
"\n",
"The idea in\n",
"rejection sampling is to simulate from one distribution which is\n",
"easy to simulate, but then to accept that simulated value with\n",
"some probability $P$. By choosing $P$ correctly, we can ensure\n",
"that the sequence of accepted simulated values are from the\n",
"desired distribution.\n",
"\n",
"\n",
"## A simple example: sampling from a beta density\n",
"\n",
"(Based on an example in Robert and Casella, 2004)\n",
"\n",
"\n",
"As an introduction to the use of simulation in inference we shall look at the rejection sampler. The basic idea of a rejection sampler is:\n",
"\n",
"* We wish to simulate variables from some density $f(x)$, but don't know how to do this. \n",
"* On the other hand, we do know how to simulate variables from $g(x)$. $g(x)$ must clearly have the same support as $f(x)$.\n",
"* So we simulate from $g(x)$ and thow away (reject) variables in such a way as to leave us with variables that look as if they came from $f(x)$.\n",
"\n",
"We shall illustrate this with an example based on simulating from the Beta density:\n",
"$$\n",
"f(x) = \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)}x^{a-1}(1-x)^{b-1}.\n",
"$$\n",
"\n",
"To be specific, let's say that that we wish to simulate from a $Beta(2.7,6.3)$ density so $f(x) \\sim Beta(2.7, 6.3)$. Most computer software has some routine for generating pseudo-random numbers following a standard uniform distribution, so we shall take $g(x) \\sim U(0,1)$. The only thing I don't like about this example is that both the proposal desity for $x$ and the auxiliary distribution for $u$ are uniform. Please be very clear you can see the difference between the roles of the two distributions.\n",
"\n",
"Consider the two density functions:\n",
"\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%R curve(dbeta(x, 2.7, 6.3), lwd = 2, col = \"red\", xlab = \"x\", ylab = \"Density\", main = \"Comparison of density functions\"); curve(dunif(x, 0,1), add = TRUE, col = \"green\", lwd = 2, lty = 2); legend(\"topright\", lwd =c(2,2), lty=c(1,2), col = c(\"red\", \"green\"), legend = c(\"Beta(2.7, 6.3)\", \"Uniform(0,1)\"))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n9+9HZGQkgJqf/Yorrrhg271792Lw4MF4+umnkZiY6Oqo2kRGRmLfvn21zy/2t3HixAl06tQJCxcu\nBAAUFxejoqICS5Ys8fjD9PUZY82bN6997uvrizNnzsA0TVfE1KauY6y0tBQOhwPx8fEAak779O7d\nG4WFhRg4cKCrY1tSXcaiZeg+CW0FFRUV0rZtW1m/fr1UVFTI6NGj5amnnhIRkePHj8u6desuu52n\ne+ihhyQ5OVmqq6vl/fffl65du9ZOtsrIyJCSkhIREenfv79MnjxZjh07VvuorKzUGd0l1qxZI3Fx\ncXLgwAEpLCyUTp06yZYtW0REJD8/X3Jyci54zwsvvOA1k7DqOsbKysqkdevWsmnTJhERmT17tgwY\nMEBbbleq6xgbPHiwLF26VERqJrO1atVKjh8/ri23DudPwvrpGPu5sWg1LOAfLFu2TIKDgyUiIkIG\nDRokp06dEhGRzz//XAIDAy+7nacrLCyU2NhY6dChg8TExEhGRkbta+3atZPVq1fL5s2bBcAFj8WL\nF+sL7iKmacqYMWOkZcuWEh4eLjNmzKh9bdy4cfLggw9e8B5vKmCRuo+xlStXSnh4uMTExMjVV18t\ne/fu1RXZpeoyxkRENm/eLLfddpvExcVJXFycvPHGG5oS63N+Af90jP3cWLQaJeIBy4k4id1ux6lT\npy57Treu23mikpIShIWF6Y5hWWVlZWjWrJlXzEptiLqOHRHB0aNHvfJvra5jrKysDCEhIS5I5J7c\nYSyygImIiDTgLGgiIiINWMBEREQasICJiIg0YAETERFpwAImIiLSgAVMRESkAQuYiIhIAxYwERGR\nBixgIiIiDVjAREREGrCAiYiINGABExERacACJiIi0oAFTEREpAELmIiISAMWMBERkQYsYCIiIg1Y\nwERERBqwgImIiDRgARMREWnAAibyEoWFhejZsyf27NkDAFi0aBFGjBgBEdGcjMg7KeHoI/IaEydO\nxO7du7Fw4ULExcXhk08+QZ8+fXTHIvJKLGAiL1JeXo4ePXogJCQEw4cPR0pKiu5IRF6Lh6CJvEhQ\nUBCSkpKQm5uLcePG6Y5D5NW4B0zkRU6cOIHu3buje/fuaN++PZYsWaI7EpHX4h4wkReZNGkShg0b\nhg8++ADr16/HJ598ojsSkdfy0R2AiFzjs88+w8qVK7Fz5060aNECL774IhITE5Gbm4vg4GDd8Yi8\nDg9BExERacBD0ERERBqwgImIiDRgARMREWnAAiYiItKABUxERKQBC5iIiEgDFjAREZEGLGAiIiIN\nWMBEREQasICJiIg0YAETERFpwAImIiLSgAVMRESkAQuYiIhIAxYwERGRBixgIiIiDVjAREREGvw/\nCSFKQkh4mr0AAAAASUVORK5CYII=\n"
},
{
"output_type": "pyout",
"prompt_number": 66,
"text": [
"array([<rpy2.rinterface.SexpVector - Python:0x11684bd08 / R:0x7fee922bb8d8>,\n",
" <rpy2.rinterface.SexpVector - Python:0x11684bd20 / R:0x7fee94130190>], dtype=object)"
]
}
],
"prompt_number": 66
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* You should be able to see that if we simulate from a Uniform density and reject variables to match the shape of the $Beta(2.7, 6.3)$ density we have a problem. \n",
"* Obviously the two densities have the same support, but for part of the range (approximately from $x=0.8$ to $x=5.6$) the density of $Beta(2.7, 6.3)$ exceeds the density of the $Uniform(0,1)$. \n",
"\n",
"\n",
"What we need to do therefore is to reject variables in the proportion $\\frac{f(x)}{Mg(x)}$ where $M$ \n",
"is a constant chosen to ensure that $Mg(x)$ is greater than $f(x)$ everywhere. If our candidate density \n",
"is $1$ everywhere, and we know that the mode of the $Beta(2.7,6.3)$ density is $\\frac{a-1}{a+b-2}=0.2429$ \n",
"we can evaluate the density given in formula~(\\ref{betadens}) and see that it is $2.669$. If we round this and take $M=2.7$ we should be able to run the simulation.\n",
"\n",
"* In order to make these rejection decisions in approximately the correct proportion, we generate another random variable. \n",
"* For every rejection sampler algorithm, this will be $U(0,1)$. \n",
"* If this ``make a decision'' random variable is less than the proportion of densities $\\frac{f(x)}{Mg(x)}$ we accept the proposed variate $x$, if not we reject it. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from scipy.special import gamma # need to be sure we use gamma function, not pdf\n",
"from scipy.stats import beta # just a check that we have this all correct, not really needed\n",
"\n",
"a = 2.7\n",
"b = 6.3\n",
"mode = (a-1)/(a+b-2)\n",
"print \"mode\"\n",
"print mode\n",
"print \"density\"\n",
"print (gamma(a+b)/(gamma(a)*gamma(b)))* mode**(a-1)*(1-mode)**(b-1) # are we using the correct gamma function?\n",
"print beta.pdf(mode, a, b)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"mode\n",
"0.242857142857\n",
"density\n",
"2.66974401115\n",
"2.66974401115\n"
]
}
],
"prompt_number": 62
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Rejection Sampler Algorithm\n",
"\n",
"\n",
"1. Simulate $x^{(cand)}$ from $g(x)$: in this example $x^{(cand)} \\sim U(0,1)$\n",
"2. Simulate $u$ from $U[0,1]$\n",
"3. Accept $x^{(cand)}$ if $u \\leq \\frac{f(x^{(cant)})}{ M g(x^{(cand)})}$ (here $f(x)$ is given in above) with $a=2.7$ and $b=6.3$, $M=2.7$, and $g(x)=1$ )\n",
"4. Continue"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"samplex = 1000\n",
"\n",
"def sampleBeta(a,b,M,samplex):\n",
" x = []\n",
" for i in range(samplex):\n",
" ystar = random.uniform() # This line is problem specific\n",
" u = random.uniform()\n",
" fx = (gamma(a+b)/(gamma(a)*gamma(b)))* ystar**(a-1)*(1-ystar)**(b-1)\n",
" Mgx = M*1\n",
" if u < fx/Mgx:\n",
" x = np.append(x, ystar)\n",
" \n",
" return(x)\n",
" \n",
" "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 63
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can now run the algorithm and check the acceptance rate. The length of the returned array is the number of accepted values, so by comparing this value with the number of simulations programmed we have an empirical acceptance rate. It is informative to compare this with the theoretical acceptance rate, namely $\\frac{1}{M}$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"M = 2.67\n",
"xout = sampleBeta(2.7,6.3,2.67,1000)\n",
"print len(xout)/1000.\n",
"print 1/M"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0.367\n",
"0.374531835206\n"
]
}
],
"prompt_number": 68
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can compare the simulated values with their theoretical density."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%Rpush xout\n",
"%R hist(xout, freq = FALSE); curve(dbeta(x, 2.7, 6.3), lwd = 2, col = \"red\", add = TRUE)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nsICJiIgk+D+qvKTUBK1+YwAAAABJRU5ErkJggg==\n"
},
{
"output_type": "pyout",
"prompt_number": 69,
"text": [
"array([[ 0.00000000e+00, 9.00000000e-03, 1.80000000e-02,\n",
" 2.70000000e-02, 3.60000000e-02, 4.50000000e-02,\n",
" 5.40000000e-02, 6.30000000e-02, 7.20000000e-02,\n",
" 8.10000000e-02, 9.00000000e-02, 9.90000000e-02,\n",
" 1.08000000e-01, 1.17000000e-01, 1.26000000e-01,\n",
" 1.35000000e-01, 1.44000000e-01, 1.53000000e-01,\n",
" 1.62000000e-01, 1.71000000e-01, 1.80000000e-01,\n",
" 1.89000000e-01, 1.98000000e-01, 2.07000000e-01,\n",
" 2.16000000e-01, 2.25000000e-01, 2.34000000e-01,\n",
" 2.43000000e-01, 2.52000000e-01, 2.61000000e-01,\n",
" 2.70000000e-01, 2.79000000e-01, 2.88000000e-01,\n",
" 2.97000000e-01, 3.06000000e-01, 3.15000000e-01,\n",
" 3.24000000e-01, 3.33000000e-01, 3.42000000e-01,\n",
" 3.51000000e-01, 3.60000000e-01, 3.69000000e-01,\n",
" 3.78000000e-01, 3.87000000e-01, 3.96000000e-01,\n",
" 4.05000000e-01, 4.14000000e-01, 4.23000000e-01,\n",
" 4.32000000e-01, 4.41000000e-01, 4.50000000e-01,\n",
" 4.59000000e-01, 4.68000000e-01, 4.77000000e-01,\n",
" 4.86000000e-01, 4.95000000e-01, 5.04000000e-01,\n",
" 5.13000000e-01, 5.22000000e-01, 5.31000000e-01,\n",
" 5.40000000e-01, 5.49000000e-01, 5.58000000e-01,\n",
" 5.67000000e-01, 5.76000000e-01, 5.85000000e-01,\n",
" 5.94000000e-01, 6.03000000e-01, 6.12000000e-01,\n",
" 6.21000000e-01, 6.30000000e-01, 6.39000000e-01,\n",
" 6.48000000e-01, 6.57000000e-01, 6.66000000e-01,\n",
" 6.75000000e-01, 6.84000000e-01, 6.93000000e-01,\n",
" 7.02000000e-01, 7.11000000e-01, 7.20000000e-01,\n",
" 7.29000000e-01, 7.38000000e-01, 7.47000000e-01,\n",
" 7.56000000e-01, 7.65000000e-01, 7.74000000e-01,\n",
" 7.83000000e-01, 7.92000000e-01, 8.01000000e-01,\n",
" 8.10000000e-01, 8.19000000e-01, 8.28000000e-01,\n",
" 8.37000000e-01, 8.46000000e-01, 8.55000000e-01,\n",
" 8.64000000e-01, 8.73000000e-01, 8.82000000e-01,\n",
" 8.91000000e-01, 9.00000000e-01],\n",
" [ 0.00000000e+00, 4.10329991e-02, 1.27023703e-01,\n",
" 2.41016668e-01, 3.74156382e-01, 5.20247221e-01,\n",
" 6.74563814e-01, 8.33353745e-01, 9.93573829e-01,\n",
" 1.15272940e+00, 1.30876680e+00, 1.45999661e+00,\n",
" 1.60503585e+00, 1.74276295e+00, 1.87228150e+00,\n",
" 1.99289034e+00, 2.10405852e+00, 2.20540387e+00,\n",
" 2.29667450e+00, 2.37773267e+00, 2.44854056e+00,\n",
" 2.50914766e+00, 2.55967956e+00, 2.60032784e+00,\n",
" 2.63134101e+00, 2.65301637e+00, 2.66569258e+00,\n",
" 2.66974297e+00, 2.66556952e+00, 2.65359727e+00,\n",
" 2.63426938e+00, 2.60804256e+00, 2.57538298e+00,\n",
" 2.53676252e+00, 2.49265541e+00, 2.44353518e+00,\n",
" 2.38987195e+00, 2.33212993e+00, 2.27076526e+00,\n",
" 2.20622406e+00, 2.13894067e+00, 2.06933619e+00,\n",
" 1.99781709e+00, 1.92477417e+00, 1.85058150e+00,\n",
" 1.77559570e+00, 1.70015521e+00, 1.62457984e+00,\n",
" 1.54917034e+00, 1.47420816e+00, 1.39995525e+00,\n",
" 1.32665408e+00, 1.25452762e+00, 1.18377952e+00,\n",
" 1.11459429e+00, 1.04713763e+00, 9.81556771e-01,\n",
" 9.17980891e-01, 8.56521626e-01, 7.97273590e-01,\n",
" 7.40314960e-01, 6.85708106e-01, 6.33500251e-01,\n",
" 5.83724170e-01, 5.36398911e-01, 4.91530544e-01,\n",
" 4.49112932e-01, 4.09128508e-01, 3.71549079e-01,\n",
" 3.36336623e-01, 3.03444100e-01, 2.72816262e-01,\n",
" 2.44390462e-01, 2.18097451e-01, 1.93862179e-01,\n",
" 1.71604571e-01, 1.51240302e-01, 1.32681543e-01,\n",
" 1.15837697e-01, 1.00616108e-01, 8.69227456e-02,\n",
" 7.46628675e-02, 6.37416476e-02, 5.40647764e-02,\n",
" 4.55390281e-02, 3.80727928e-02, 3.15765724e-02,\n",
" 2.59634386e-02, 2.11494516e-02, 1.70540373e-02,\n",
" 1.36003236e-02, 1.07154325e-02, 8.33072823e-03,\n",
" 6.38202069e-03, 4.80972298e-03, 3.55896267e-03,\n",
" 2.57964653e-03, 1.82647849e-03, 1.25893080e-03,\n",
" 8.41168812e-04, 5.41929624e-04]])"
]
}
],
"prompt_number": 69
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I need to stop getting that return from R.\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment