Skip to content

Instantly share code, notes, and snippets.

@rhydomako
Created June 9, 2016 03:02
Show Gist options
  • Save rhydomako/bcfc66a3d6947899723eb678b5c5e5c5 to your computer and use it in GitHub Desktop.
Save rhydomako/bcfc66a3d6947899723eb678b5c5e5c5 to your computer and use it in GitHub Desktop.
Some notes about C-K Hur, A. V. Nori, S. K. Rajamani, and S. Samuel, "A Provably Correct Sampler for Probabilistic Programs"
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import scipy.stats\n",
"import matplotlib.pylab as plt\n",
"import pystan\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Mixture example"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following mixture model from [C-K Hur, A. V. Nori, S. K. Rajamani, and S. Samuel, \"A Provably Correct Sampler for Probabilistic Programs\"](http://sf.snu.ac.kr/gil.hur/publications/fsttcs15.pdf) is highlighted as a difficult case for Stan and R2:\n",
"\n",
"```\n",
"1: double x, y;\n",
"2: x ~ Gaussian(0, 1);\n",
"3: if (x > 0) then\n",
"4: y ~ Gaussian(10, 2);\n",
"5: else\n",
"6: y ~ Gamma(3, 3);\n",
"7: return y;\n",
"```\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Baseline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Straight-forward to direct-sample and also show the analytic curve\n",
"* Will give an idea of what the distribution is suppose to look like"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mixture_sample():\n",
" x = np.random.normal(0, 1)\n",
" if x > 0:\n",
" y = np.random.normal(10, 2)\n",
" else:\n",
" y = np.random.gamma(3, 1./3)\n",
" return y"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEQCAYAAABcE6TVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VNX5+PHPM1lJwhYg7ITFDVAQERSFGqVsigv6BYWv\n4FIVLbjV/txbQb8Vt9pNq0BpBTdQK4JKKShGRaWgYtgFCwGSECBsISH7PL8/7pBMQpZJMslMkuf9\nes2Lufeec+8zIXlycu6554iqYowxpmlwBToAY4wx9ceSvjHGNCGW9I0xpgmxpG+MMU2IJX1jjGlC\nLOkbY0wT4lPSF5HRIrJNRLaLyEOVlBskIgUicq3XvmQRSRKR9SKy1h9BG2OMqZnQqgqIiAt4CRgO\npAHrRGSJqm4rp9wzwL/LnMINJKjqEf+EbIwxpqZ8aekPBnao6m5VLQAWAleXU+5u4D3gQJn94uN1\njDHG1DFfknFnYK/XdopnXzER6QRco6qv4CR5bwqsFJF1InJ7bYI1xhhTO1V27/joj4B3X7934r9Y\nVfeJSDuc5L9VVVf76brGGGOqwZeknwp089ru4tnn7XxgoYgI0BYYIyIFqrpUVfcBqOpBEVmM0110\nStIXEZsEyBhjqklVy/auVMqX7p11wGkiEi8i4cANwNIyF+3pefXA6df/paouFZEoEYkBEJFoYCSw\nqZLg7eWH1xNPPBHwGBrTy76e9vUM1ldNVNnSV9UiEZkOrMD5JTFPVbeKyFTnsM4pW8XrfXtgsacV\nHwq8qaorahSpMcaYWvOpT19VlwNnltk3u4Kyt3q93wWcW5sAjTHG+I8NpWyEEhISAh1Co2JfT/+y\nr2dgSU37hfxNRDRYYjHGmIZARNBq3sj115BNY4yfdO/end27dwc6DBNE4uPjSU5O9su5rKVvTJDx\ntN4CHYYJIhV9T9SkpW99+sYY04RY0jfGmCbEkr4xxjQhlvSNMQE3c+ZMJk+eXKO6q1evpnfv3n6O\nqPFqMEn/nXcWM2TIGIYMGcPPfjaWXbt2BTokY5qshIQEYmNjKSgo8Ns5nam7quZyudi5c2fx9tCh\nQ9m6davf4mjsGkzSf++9D1mz5kzWrLmHb789yrfffhvokIxpknbv3s3atWuJi4tj6dKlVVfwM19/\nOZjyNZik7+gHjCE0tGOgAzGmyVqwYAEjRoxgypQpvPbaa8X7b7nlFqZPn87YsWNp0aIFQ4YMKfUX\n+X333Ue3bt1o2bIlgwYNYvXq8mdYHzt2LC+//HKpff3792fJkiVccsklqCr9+vWjRYsWvPvuu3z+\n+ed07dq1uGxKSgrXXXcdcXFxtGvXjnvuuce/X4AGroElfWPMjBkzEJFTXjNmzPC5fEVlfbFgwQKu\nv/56xo8fz7///W8OHjxYfGzRokXMnDmTo0eP0qtXLx577LHiY4MHD2bDhg0cOXKESZMmMX78ePLz\n8085/0033cTrr79evJ2UlERaWhpjx47l888/B2Djxo1kZmYyfvx4oKT173a7GTt2LD169GDPnj2k\npqZyww031PizNkaW9I0xPlu9ejWpqalcddVVnH766fTt25e33nqr+Pi4ceMYOHAgLpeL//3f/+WH\nH34oPjZp0iRatWqFy+Xi/vvvJy8vjx9//PGUa1x11VXs2LGD//73vwC88cYbXH/99YSEhBSXqejh\ntf/85z/s27eP5557jsjISMLDw7nooov89fEbBUv6xhifLViwgJEjRxITEwPA+PHjmT9/fvHxDh06\nFL+PiooiKyurePuFF16gT58+tG7dmtatW5OZmUlGRsYp14iIiGDChAm88cYbqCpvv/22zyN7UlJS\niI+Px+Wy1FYRm3vHmAZmxowZ1eqeqW75iuTm5vLOO+/gdrvp2NG5r5aXl8exY8fYsGFDpXW//PJL\nnn/+eT777DP69OkDQGxsbIUt9ilTpjBlyhQuvvhioqOjueCCC3yKsWvXruzZswe3222JvwL2VTHG\n+GTx4sWEhoaydetWkpKSSEpKYtu2bQwbNowFCxZUWjcrK4uwsDDatGlDfn4+Tz75JMePH6+w/JAh\nQxARHnjggVNa+R06dCg1ZNPb4MGD6dixIw8//DAnTpwgLy+Pr7/+uvofthHzKemLyGgR2SYi20Xk\noUrKDRKRAhG5trp1jTHBbcGCBdx666107tyZuLi44te0adN46623KCoqqrDuqFGjGDVqFGeccQY9\nevQgKiqq1Iib8kyZMoVNmzZx4403lto/Y8YMpkyZQmxsLO+9916pYy6Xiw8//JAdO3bQrVs3unbt\nyjvvvFPzD90IVTnLpoi4gO3AcCANZ83cG1R1WznlVgI5wN9V9X1f63rqVzrL5oQJt/Luu0OBW2ne\nfDzz5k0ovnNvTGNis2w63njjDebMmcMXX3wR6FACrr5n2RwM7FDV3apaACwEri6n3N04i6IfqEFd\nY4wpduLECV5++WWmTp0a6FAaHV+Sfmdgr9d2imdfMRHpBFyjqq8AUp26xhjjbcWKFcTFxdGxY0cm\nTpwY6HAaHX+N3vkjUOv+eu8RBgkJCbaWpjFN0MiRI0sN9TQlEhMTSUxMrNU5fEn6qUA3r+0unn3e\nzgcWivNYXFtgjIgU+li3mD+GlRljTGNVtjE8c+bMap/Dl6S/DjhNROKBfcANQKm/uVS158n3IvIP\n4ENVXSoiIVXVNcYYU3+qTPqqWiQi04EVOPcA5qnqVhGZ6hzWOWWrVFXXf+EbY4ypDp/69FV1OXBm\nmX2zKyh7a1V1/SE1NZUPPviAyy+/nPDwcH+f3hhjGqUG+USu253DI488wrhx43jiiScCHY4xxjQY\nDTLp5+f/SG5uLgDPPPNMgKMxxni76667+N3vfhfoMAKmNks/1ocGmfRDQlqX2ranF01j1qFD93Ln\nz/fXq0OH7j7H0r17d6KiomjZsiWxsbEMHTqU2bNnl/oZfOWVV0rNo+8v8+fPZ9iwYX4/b10I5tW9\nGmTSLyycXmp75cqVAYrEmLq3f/9unPERdfNyzu8bEeHjjz/m2LFj7N69m4cffphnn32WX/ziFz7V\nr2x+nqqoalAn04aigSb9KUC74u0DBw5UXNgY41cnW/XNmzdn7NixLFq0iPnz57NlyxbAWTbxt7/9\nLUDxUobPPfccHTt25NZbnXEeH330EQMGDKB169YMHTqUjRs3Fp+/vOUOt23bxl133cU333xD8+bN\niY2NLTe21157jV69etGiRQt69erF22+/DcDOnTsZPnw4bdu2JS4ujhtvvJHMzMziej169OCFF14o\nXobxtttu48CBA1x++eW0bNmSkSNHcuzYMcBZI9jlcjF37lw6d+5M586d+f3vf1/h12vNmjVcfPHF\ntG7dmgEDBhSv/lVZvHVKVYPi5YRSsfHjb1GYp6Ce18sKr2pU1ABdvHhxpXWNaUjK/iwAXt/3dfGq\n/GfPW/fu3fXTTz89ZX+3bt301VdfVVXVm2++WX/zm9+oqmpiYqKGhobqI488ovn5+Zqbm6vff/+9\nxsXF6bp169TtduuCBQu0e/fump+fr0VFRdq/f3994IEHNCcnR/Py8vSrr75SVdXXXntNhw0bVmFs\n2dnZ2qJFC92xY4eqqqanp+uWLVtUVfWnn37STz75RAsKCjQjI0MvueQSvf/++0t9riFDhujBgwc1\nLS1N4+Li9LzzztOkpCTNy8vTyy67TJ988klVVU1OTlYR0UmTJmlOTo5u3LhR27VrV/x1mTFjhk6e\nPFlVVVNSUrRNmza6fPlyVVX95JNPtE2bNpqRkVFpvGVV9H/k2V+tXNsgW/qOXwJTCQuLIzIyMtDB\nGNOkderUicOHD5d7LCQkhJkzZxIWFkZERARz587lzjvv5Pzzz0dEmDx5MhEREaxZs4a1a9fWarnD\nkJAQNm7cSG5uLu3bt6d3794A9OrVi+HDhxMaGkqbNm24//77S7W4Ae6++27atm1Lx44dGTZsGBde\neCH9+vUjPDyccePGsX79+lLlZ8yYQWRkJGeffTa33HJLua30N998kyuuuIJRo0YBMHz4cM4//3yW\nLVtWabx1KaiT/ubNW/jtb5/gt799gk2bvg90OMaYCqSmplbY5dKuXTvCwsKKt3fv3s3vf/97YmNj\niY2NpXXr1qSkpJCWlsbevXtrvNxhVFQUixYt4pVXXqFjx45ceeWVxWvwHjhwgIkTJ9KlSxdatWrF\njTfeeMpSje3bty9+36xZs1O2vecDEhG6dOlSvB0fH09aWtopMe3evZt33nmn1Gf96quv2LdvX6Xx\n1qWgTvp//vNsnnpqLU895WLr1muBnwFXAs8BawMbnDEGgHXr1pGWllbhyJqyN1+7du3KY489xuHD\nhzl8+DBHjhwhKyuL66+/vtRyh1WdpzwjRoxgxYoVpKenc+aZZ3LHHXcA8Mgjj+Byudi8eTNHjx4t\nXn+3plSVvXtLJhDes2cPnTp1OqVc165dmTJlSqnPevz4cR588MFy47399ttrHJOvgjrpO0YDTwC/\nBbYAH+FM6HlPIIMypsk7fvw4H330ERMnTmTy5MnFa99W5fbbb+fVV19l7Vqn4Zadnc2yZcvIzs6u\ndLnD9u3bk5KSQkFBQbnnPXDgAEuXLuXEiROEhYURExNT/BdDVlYWMTExNG/enNTUVJ5//vlaf/6n\nnnqKnJwcNm/ezD/+8Q9uuOGGU8rceOONfPjhh6xYsQK3201ubi6ff/45aWlp5cYbEhJS67iq0gCS\nvrfVXu+HBiwKY+pT+/bxOMtU1M3LOb/vrrzySlq2bEm3bt2YNWsWv/71r/n73//uc/2BAwcyd+5c\npk+fTmxsLGeccQbz588HKl/u8LLLLqNv37506NCBuLi4U87rdrt58cUX6dy5M23btuWLL77glVde\nAeCJJ57gu+++o1WrVlx55ZVcd911peqW/SvCl78qLrnkEk477TRGjBjBgw8+yPDhw08p06VLF5Ys\nWcLTTz9Nu3btiI+P54UXXsDtdlcab12qcrnE+lLecolTp97LnDk9gXs9e4YAazzv5wFJhIYu4uKL\nz6r1HNPGBAtbLjG47d69m549e1JQUFCjew814c/lEv21iEo9OAF867U9FPgFhYWwdm1mBXWMMcb/\nGvIv5QbUvfMfoNDzvg9wOhABQE5ODsePHw9QXMaYpqYhPxncgFr6FwFfel4tcPojOwG7AEhLS+PM\nM/0+g7MxxpQSHx9fq+kkAq0BJf0InC4d7xu4nTmZ9FNTUy3pG2NMFXzq3hGR0SKyTUS2i8gpC6CL\nyFUikiQi60XkWxG5zOtYstcxPw+u71z8LjW1wqV3jTHGeFTZ0hcRF/ASMBxIA9aJyBJV3eZV7BNV\nXeopfw6wGDjNc8wNJKjqEb9GDsDtNGu2md/8ZhKjR4/2/+mNMaaR8aV7ZzCwQ1V3A4jIQuBqoDjp\nq+oJr/IxgPfzzUKd3TAeTnh4ZwYMGEC7du2qLm5MAxAfH9+gbxQa/4uPr96zFJXxJel3BvZ6bafg\n/CIoRUSuAWYBHYBRXocUWCkiRcAcVZ1b/TCzgejqVzOmAUpOTg50CKYR89uNXFX9APhARIYCr1Oy\nGPrFqrpPRNrhJP+tqrq6vHPMmDGj+H1CQsLJMwM9gVhgGPB7oLm/wjbGmAYjMTGx1g+i+pL0U4Fu\nXttdPPvKpaqrRSRURNqo6iFV3efZf1BEFuP8lVBl0gd4++3FwAGv137gVR9CNsaYxichIcGrQeys\nx1tdvvS1rwNOE5F4EQkHbgCWehcQkV5e788DUNVDIhIlIjGe/dHASGBT9ULc6fX+4nJDLiwspKCg\ngMLCwlOOGWOMKVFlS19Vi0RkOrACJ+POU9WtIjLVOaxzgOtEZAqQj9MBf72nentgsYio51pvquqK\n6oXonfRPnbo1OzudK6+8ClBCQyPYvHkDZ5xxRvUuYYwxTYRPffqqupySPvqT+2Z7vX8OZ5L7svV2\nAefWLsTKk35hoRun3x8iIs7k4MGDlvSNMaYCQT33Tn5+Ps6IT4BmwMBySpU8oKWaXw9RGWNMwxXU\nST88PBx4HOeZsI+B8HJKlSR9t9uSvjHGVKaBzL3T0fMqj7X0jTHGV0Hd0veNd0s/L4BxGGNM8GsE\nSX8E8B7wNZGR/ntU2RhjGqMG0r1TmR6eF7hc5fX5G2OMOSloW/r5+fmcOJEN5AINd8ECY4wJJkHb\n0t+wYQNvvDHPs/UO8F0gwzHGmEYhaFv62dnZXls2w6YxxviDJX1jjGlCGkjSj6qi9F+ASzl+/Hs+\n++yzOozKGGMatqDt0z9xwnsxrqpa+v8FEnG7Yd++fXUYlTHGNGxB29IPCQmhWbNmQARVL5pS8oBW\nRkZGJeWMMaZpC9qkf+ONNzJ58u3As8DLVZQuSfoHDx6sy7CMMaZBC9qkXz3W0jfGGF80kqTfqfid\ntfSNMaZiPiV9ERktIttEZLuIPFTO8atEJElE1ovItyJyma91/aMbsIyYmP7MmzevytLGGNNUVZn0\nRcQFvASMAvoCE0XkrDLFPlHV/qo6ALgFmFONun4QAYwhJCSali1b+v/0xhjTSPjS0h8M7FDV3apa\nACwErvYuoKre4ytjgAxf61bk4MGD5OScAPIAty9VjDHGVMGXcfqdgb1e2yk4ybwUEbkGmAV0wGnZ\n+1y3PDfffDPLli3zbPUBxvpSzRhjTCX89nCWqn4AfCAiw4DXKbOQui9mzJhR/D41NdXrSFVP5Bpj\nTOOXmJhIYmJirc7hS9JPxblTelIXz75yqeqXIhIqIm2qW9c76Ze08sHm3jHGGEhISCAhIaF4e+bM\nmdU+hy99+uuA00QkXkTCgRuApd4FRKSX1/vzAFT1kC91K1L9Cdf+RVbWBq655hruvPNOXy5hjDFN\nTpUtfVUtEpHpwAqcXxLzVHWriEx1Dusc4DoRmQLkA9k4yb3Cur4EVnruHV+6d/IpKsoiIyOLPXv2\n+HIJY4xpckRVAx0DACKi3rEMHDiQzZu3kJdXhHMvuH0VZ/gWGARAv379SEpKqqtQjTEmKIgIqirV\nqRO0T+R+99133HTTHcDzVJ3wwXsqhi1btnL55deTmZlZV+EZY0yDFLRJv/rigBAACgsLSExcQ3Jy\nckAjMsaYYNOIkn4IziMCnq2QZoELxRhjglQjSvoAS4DtQBYuV3iggzHGmKATtCtn1czAQAdgjDFB\nLSiTfl5eHunp6eTm5gAFgQ7HGGMajaBM+hs2bGDw4JNT9HQFfh3IcIwxptEIyj790g9mhQUsDmOM\naWyCMumXnoKhZjdkVW06ZmOMKasBJP2IatRMAc4GWpOVtcO/QRljTCMQlH36Ne/eaQlsBkBVCJYp\nJowxJlgEZUs/LCyMzp07ExERAVTnIavmnheAcuzYMf8HZ4wxDVhQJv1JkyaRkpLCTTdNBa6rZu1O\nxe8OHDjg17iMMaahC8qkXzslE68dPHgwgHEYY0zwadRJ/+jRowGMwxhjgo9PSV9ERovINhHZLiIP\nlXN8kogkeV6rRaSf17Fkz/71IrLWn8GXbxaQQvPmZ3PFFVfU/eWMMaYBqXL0joi4gJeA4UAasE5E\nlqjqNq9iO4GfqeoxERkNzAEu9BxzAwmqesS/oVek88m46+dyxhjTgPgyZHMwsENVdwOIyELgaqA4\n6avqGq/ya/DuYwGhmt1I+/btw+12k5eXi/M7wxhjjD/4kvQ746xXeFIKzi+CitwG/MtrW4GVIlIE\nzFHVuVVd8LbbbmPZsmWerdt9CNEYY4wv/PpwlohcCtwCDPXafbGq7hORdjjJf6uqrq7sPDb3jjHG\n1A1fkn4q0M1ru4tnXymem7dzgNHe/fequs/z70ERWYzzV0K5SX/GjBkAbN++3WtvTefeUQ4fPkxh\nYSGhoUH54LExxlRLYmIiiYmJtTqHVDVVgYiEAD/i3MjdB6wFJqrqVq8y3YBPgcne/fsiEgW4VDVL\nRKKBFcBMVV1RznX0ZCx9+/Zly5YtniMPAc9U82P9HFgFKFu2bKF3797VrG+MMcFPRFDVao1aqbIJ\nrKpFIjIdJ2G7gHmqulVEpjqHdQ7wGyAW+Ks4w2YKVHUw0B5YLCLqudab5SX8smo/y2Yhzq0E2Lt3\nryV9Y4zx8KnfQ1WXA2eW2Tfb6/3tlHPHVVV3AedWN6gOHTqQn59PRsYhCgpqkvS7Fr/bu3dvJeWM\nMaZpCconctesWUNaWhq33HInJROoVUdJ0k9JSfFbXMYY09AFZdKvvS7F76ylb4wxJRpp0nda+pGR\nkTanvjHGeGmkYxl/TvPmvfnyy7fp379/oIMxxpig0Uhb+s0QCbX5d4wxpoyga+nn5uaSkpJCdHQ0\nBQX5gQ7HGGMalaBL+hs2bOCCCy4AoG3bdsBjgQ3IGGMakaDr3nnrrYXF7zMyMoCegQvGGGMamaBL\n+mlpaV5bo4Ara3yugoIC9uzZY2vlGmOMR9Al/YKCAq+t6BqfJy/vAIMGDSI+Pp6XXnqp9oEZY0wj\nEIRJ3/vmbc2TvkhI8Rh9e0DLGGMcQXcjNyQkFGiFM9FabI3PI1IyD79NxWCMMY6ga+n37dsXeADY\nD/yhxudxuUomarOWvjHGOIIu6fuLy1XS0t+7d69Nx2CMMQRh947/uIiKiqJZs2Z07dqVEydOEB1d\n83sExhjTGDTapC8iJCYmMmjQoECHYowxQcOn7h0RGS0i20Rku4g8VM7xSSKS5Hmt9qyX61PduhQR\nEVGflzPGmKBXZdIXERfwEs6TUn2BiSJyVpliO4GfqWp/4P9wFkj3tW4pmZmZwBGcG7kFlRU1xhhT\nTb609AcDO1R1t6oWAAuBq70LqOoaVT3m2VwDdPa1blnLly8DXgQ6AP/2+YMYY4ypmi9JvzPgPeYx\nhZKkXp7bgH/VsK7fnsg1xhhzKr/eyBWRS4FbgKE1PUfppB9V65iys7PZu3cv2dnZDBw4sNbnM8aY\nhsyXpJ8KdPPa7uLZV4rn5u0cYLSqHqlO3ZNmzJjB0aNHvfbUvKXvdocwZcqdJCV9A0CvXr346aef\nanw+Y4wJtMTERBITE2t1DqnqoSURCQF+BIYD+4C1wERV3epVphvwKTBZVddUp65XWVVVWrVqxbFj\nJ28P7AR61PCjbQHWATcDzkienJwcW03LGNNoiAiqWq2kVmWfvqoWAdOBFcBmYKGqbhWRqSJyh6fY\nb3AmyvmriKwXkbWV1a3ses2bNwdaAm2oXZ9+H+AmoAUAeXl5nvn5jTGm6aqypV9fTrb0H330cWbN\nigQe99OZ++K0+uH7779nwIABfjqvMcYEVp209Bu+rsXvbOI1Y0xT12inYSjRHZEQBgzob0/oGmOa\nvCaQ9F8hOvrfvPfee/ToUdObwsYY0zg0ge4dG61jjDEnBVXSz8nJ8YywOep5GWOM8aeg6t7ZtGkT\nc+fO9mwlAt8GMBpjjGl8gqqln52d7bVl8+4YY4y/BXHSr/28OyepFrFp0yaWLl1KVlaW385rjDEN\nTVB175w4ccJry38t/ZycdK666ioA1q1bx/nnn++3cxtjTEMSxC19/yV9kZLfbSkpKX47rzHGNDRB\nlfSjoqKIjY3FmS8nzm/ndeZ9c9hTucaYpiyouncmTJjADz9s8PPcO+BylXxMS/rGmKYsqFr6dcW7\ne+e7774LYCTGGBNYTSLpu93jEWlOSEgcn332OYcPHw50SMYYExBNIukXFPwV1UyKivYTEdEKt9sd\n6JCMMSYgmkTSN8YY4/Ap6YvIaBHZJiLbReShco6fKSJfi0iuiPyqzLFkEUnyXlGrIsnJyRw6dAg4\nBuRV53MYY4zxQZWjd0TEBbyEs85tGrBORJao6javYoeAu4FryjmFG0jwWiy9QtOmTWPZsmWerUuA\nsVVVMcYYUw2+tPQHAztUdbeqFgALgau9C6hqhqp+BxSWU198vI7NvWOMMXXMl2TcGfAe3J7i2ecr\nBVaKyDoRub2ygnWb9DOArygqyiMpKcnP5zbGmIahPh7OulhV94lIO5zkv1VVV5dXMDk52WtrM84f\nGf7yN+ARCgrgn//8J8OHD/fjuY0xpu4lJiaSmJhYq3P4kvRTgW5e2108+3yiqvs8/x4UkcU4mbzc\npB8dHe1ZRAUgwddL+KhL8bvUVJ/DN8aYoJGQkEBCQkLx9syZM6t9Dl+6d9YBp4lIvIiEAzcASysp\nX7w+oYhEiUiM5300MBLYVFHFHj160KpVayDG8/KnrsXv9u3b5+dzG2NMw1BlS19Vi0RkOrAC55fE\nPFXdKiJTncM6R0Ta4yxz1Rxwi8i9QB+gHbBYRNRzrTdVdUVF1/rss8949NHHPXPvtKv1hyutJOlb\nS98Y01T51KevqsuBM8vsm+31fj/eWbVEFnBubQL0n5J7z+np6RQWFhIaGlTzzRljTJ1rQk/kRgCX\n4XKFcdNNN5GbmxvogIwxpt41oaQP8Cnh4S147rnniInx9z0DY4wJfk2wfyOMsWMnERYWTvfuXZg/\n/6+4XE3sd58xpskKqqSflJTkmfa4ZZ1dIzd3Jf/5TzIAX311DX/725+IiIios+sZY0wwEVUNdAwA\neEb4eHSiGo8C1FhISATZ2ZmW9I0xDZKIoKpSdckSQdqvER7oAIwxplEKqu6dEmF1eO4fgO+AHwiW\nv3KMMaa+NMGkfwtO4oeg/fjGGFNHgrR7py6T/oDid9bSN8Y0NUGV9Pv27UurVq1wZnOoK94PCFvS\nN8Y0LUGV9Ddt2sRdd00DRtXhVaylb4xpuoIq6deP/l7vlbw8W4vXGNN0NMGk3wK4CXgQkRBr7Rtj\nmpQmOnzlNQBcrj8SGRkZ2FCMMaYeNcGWvjHGNF1BlfQ3b97M0aNHgYJAh2KMMY2ST0lfREaLyDYR\n2S4iD5Vz/EwR+VpEckXkV9Wp6+3ss8/mlVdeBv5brQ9hTG1kZWVx9OhRjh49SkGBNThM41Zl0hcR\nF/ASzjjKvsBEETmrTLFDwN3A8zWoWw6be8fUj507dxIbG0f79t2Ji+vCuHGTAx2SMXXKlxu5g4Ed\nqrobQEQWAlcD204WUNUMIENExla3bvnq8onck1bhdhcyatQoHnjgAa688sp6uKYJlPz8fO6881ek\np2dQVFRfmLLCAAAY2UlEQVRI+/atuOyyoSQnJxMV1Ztjx74DEklJmRHgSI2pW74k/c7AXq/tFJxk\n7osa1q2Plv4KVN18/vnnXHTRRZb0G7lDhw7x5ptvkJ//KpBLePgq3n8/EYC8vOmeUrtJTt5Mly5d\nSnXzREZGsnv3bgDWrVvHDTfcgdvtDPV97rnfMn78tfX4SYypnSAdsvktkAgk1OE1Sp7MXb9+fR1e\nxwSLkJBmwA0A5OffTH5+2RLtOXYsg2PHSu+NiIhg5MjrKCx0k5q6i5SUs8jPfxh4jUcffYQdO7Zx\nxRVX0K9fP0SqNbW5MdWSmJhIYmJirc5R5SIqInIhMENVR3u2HwZUVZ8tp+wTwHFVfbEGdbV3796k\npqaSmXkX8EytPljVfgSc2wvt27cnPT29jq9nAmnfvn306nUeOTnJwGpgeAUle1O29zEsLIyQkAvI\nzT05RmEo0A54EO/bWN26deOhhx7i9ttvJyysProoTVNXV4uorANOE5F4EQnHaSotrSyOmtbdsmUL\n06bdDdTHouWnFb/bv3+/Jf1GZPLkuxgyZAxDhozhjjvuB5x5lgoLc3CS+iicX/rleQVIAuZzwQUj\nSE9P509/+hOhoV2BcZ5XO0/ZraVq7tmzh2nTpjF48GCKior8/8GM8YMqu3dUtUhEpgMrcH5JzFPV\nrSIy1Tmsc0SkPU6fTHPALSL3An1UNau8unX2aaolBOf3k/OXzvr16xkzZkxAIzL+8cYbrwIfA4V8\n991k3nlnIVlZhygqKgBO9t08DCwup3aC59/dhIdH0L59e1q2rGjN5vMZMaKINm1asnz5cs8zJjBy\n5EhCQkL894GM8SOf+vRVdTlwZpl9s73e7we6+lo3WLhcIcye/QqDBw+md+/egQ7H1MLNN09nw4Yt\nALhc4bjdYwChoOARjh17pEzpWJzkrpT+w7S6osnOzuLnP08gNTWVL7/8EoDnnnuOgQMHMmHChFqc\n25i6EaQ3cuuHiIvJkyfbwuiNwMKFC8jLexOIBjpQkswnA08COUAEcC/wCNCqijMKW7f+wIQJt7Jn\nz39R7VJOmfH85z8HWLs2A9ULgHlAT8LC/h8pKSmnlF63bh3nn3++3ew1AdWkk75pbC7BmUXVW2fg\n18BO4HdAvI/nGkVGxtO8+24Bzo3bhHLKxFNU9FylZ9m4cSOLFy9m165dzJ8/n7Fjx7JgwQLPYkHG\n1L+gSvpbt27l+PHjgM18aWqiopFoM6l+N04Yzl8JtTNr1p95++1kYA2gfPjhhwwYMIBFixYxeLDz\nyMrcuQtYunQ5AC1axDB79ovExNTHYAbTFAXVhGt9+vThvffeCXQYpoFxu90UFuYBt1F+4g90d8o4\n4ObireTkZIYOHcof/vAHVJW//OVvfPRRLz76aCyLF/+bHTt2BCxS0/gFVdIHAjq+2VbRangOHDjA\n6NGjKSrKB94DZldVJQDCgL8QGXkRUVFRABQUFDBr1iwyMjI8ZUYAkwgLiw1UkKaJaPJJ//rrbyQ+\nvgctWrTgl7/8Zb1e29TOunXrOPfcc1m5cqXX3vcJhgXv339/CXff/QDffrumeF9YWFeefvppBg0a\nhIgwZMgwnnzyGVJTS88qu2bNGlauXMnatWvrO2zTBARVnz5AWFj9zbBZVLSQJUtWAMkA/PDDD/V2\nbVM7X3zxBQkJl6Lq9tr7IM7N2sB25xQU3M1XX73PV18B3AKMLz7Wvn17Vq9ezbnnXszSpa2ATsCj\nwBBP3et55JH3AcjO/oqfftpKfLyvN5+NqVqV0zDUFxFRgLPPPodNmyYAj9fTlY/gjNuG8PBwsrKy\n7BH6BuDYsWPExrbF7S7E+f97Awjuh+uaNbuTsLDFREY258iRfRQU/BtnZFD5YmJOY/365Zx22mkV\nljFNW11Nw1BvzjjjDJo3b17PV23NyWF8+fn5bNmypZ6vb2qiZcuWxMTEAhcA3xDsCR8gJ+cPZGZ+\nxYEDyyko2Ez5Cf8vOENM3eUcM6b2gqp758cff+TRRx/nm2/q+8r9AWfq3PXr19O/f//6DsD4aPPm\nzWzd6szkUVhYgHPztrwHp4JRM7znfDrVh8B9OAl/V5muK2P8I6iSfuD0B5YSEhJCWlpaoIMxZaSl\npREbG0tkZCRjxozn8OGuhIQ0x+krb1dV9QZkISUt/PfJyYkgIyPDuneMXwVV907gTMblCuH48eM8\n+uijgQ7GeNmwYQODBg3i1ltv9cyUWUR29p/JzHyPEydm40yt0FgswGnpO9zuPMaPH8+PP1Y0I6gx\n1WctfQDiEXHRrFmzQAdivKxatYpx48aRmZnJ22+/zemnnx7okOpYCPAHoBfOHEFusrOzba4e41dB\n1dKfN28eSUk2bNLAwoULGT16NJmZmQC0aNGCn/3sZwGOqr5MB5YALmbPns0ZZ5wR6IBMIxJULf3p\n0/+FSBuctdNNU/PJJ5/x0UfL+OmnHXz88ZLi/R07dmT58uX069cvgNHVt7FER8czYMCAqosaUw1B\nlfRzc/+JM4LhnECHYgLgqaf+wBdfxAKDEFmOah69e/dm1qxZrF69mtWrV5OdfSTQYdYbERd79uzB\n5XIRHR1N+/btAWcVMOe4dfuY6vMp6YvIaOCPlKx+Vd4at3/GGSydDdyiqus9+5NxlityAwWqOrjy\nq0X5Hn0dOHDgAAsWLOCSSy5h0KBBAY2lKThw4ADffvstAIcO7ceZNO0qYmKWceGF0SxcuJALLxzJ\n7t3dcbnicLt/AXQPXMD1ahhXX30bAAUFB0hPT6FVq1Y8//zzbN++nVdffZXQ0KBqt5mGQFUrfeEk\n+p9wnmAKA34AzipTZgzwsef9BcAar2M7gdY+XEed1xoFredXnoaEhOmrr76qoaGhCuiUKVPU1L3/\n+Z+btFmzftqy5RiNiblSYY+CasuWCbpq1SpVVT3ttIEK6wLwfRE8r2bN4jQ9PV1ff/11Pfmzcvnl\nl2tmZmaA/wdNIDkpvPLcWvbly43cwcAOVd2tqgU4g4nLdrpfjTPeDFX9D9DSs24uOBOhVOOGcbTv\nRf1IVenTpw+FhYUAvPvuuxw7dqyKWqa2jhw5Qk7OPRw7toysrKV4r7qZl5dHTk4Obrc9pHTS559/\nXvx+2bJlDBs2jL179wYwItPQ+JKMOwPe31Upnn2VlUn1KqPAShFZJyK3V325QHTvhBAR0YNLLx3B\nycm6cnJyWLhwYQBiaTpWr17NF1/8G3gZKCp1rLDwDK68chwtWsSSkrIHiAtEiEFnzpw5pZ4lSUpK\n4oILLiApKSmAUZmGpD46BC9W1X0i0g4n+W9V1dXlF20NvILT2k+g/CXq6kIIOTnbPe9n4cx66Awh\nnTp1aj3F0LS8+eab3HrrrRQU5APrgYeB54uPZ2fPJjjnxg8MkXb06tUXlyuEjh07M2fOHH75y19S\nWFiIy+Wibdu2gQ7R1IPExEQSExNrdY4qZ9kUkQuBGao62rP9ME4/0rNeZV4FPlPVRZ7tbcAlqrq/\nzLmeAI6r6ovlXEeDYR502AGUjIvesmULvXv3Dlw4jYyq8thjjzFr1iyvvS2A5ZycXtiUJxvIAiA8\nvA/duvUgNzeL9PSd3HLLLXTo0IGzzjqLSZMmBjZMU69qMsumL0k/BPgRGA7sA9YCE1V1q1eZy4Fp\nqnqF55fEH1X1QhGJAlyqmiUi0cAKYKaqrijnOkGS9A8RGtqZX/ziZn7xi19w/vnn29A4P5o7dy53\n3HFH8bbL1Qy3+wNgZOCCanCSgf04Py+rgAIgh8jIV8nJOUpeXh533HE/Bw4cAuDSSy/mwQfvCVi0\npu7USdL3nHg08CdKhmw+IyJTcVr8czxlXgJGUzJk83sR6QEsxvnuDAXeVNVnKrhG0CT9qKgzyM4+\nFOhAGqX8/Hy6devO/v37cJYIfAdoFeCoGoOjREZ2JyfnKHv37uW00/qTnz8LyKJt2z/z7rvzATj9\n9NPp3LnsLTnTUNVZ0q8PlvQbt7S0NJYuXQrA3Lmv8f33bYAPcEYBm9rLITy8G273cVQVkVgKCxX4\nGzExcwgJyaSoKJPTT2/O999/XuXZTMNgSd8vLOnXhfvvf5CXX/6C0NBzURVycx/m5OI1xl8KcEZB\n/RO40bPPBTwJPAJsJTR0EHFx3QD43/+dyHPPPRGIQI2f1CTpB9njfHuAboEOwvhBWloa9957L/fd\ndx9t27bl8OFDFBRcR0HB/wt0aI1YmOfVCWeI6wGcB+EfB1YDr1NYuIW0tFzga1ateitgkZrACbKk\nfy3wbaCDOMVPP/1EcnIyP//5zwMdSoPw6aefMmnSJA4cOMA///kB0dE9cJ5/sJEl9eNSnGGwE4Ev\nPPuW4yT/Vz3bKQGIywSDIEv6gZ135yS3u5CkpCTS09N58skn+frrr+natSu7du0iJCQk0OEFBVVl\n8+bNFBU5D1WdnOt+5syZPP/88yen1kC1iKysOdTfMxfG0Qn4FPgN8AzQw/OvaeqCLOkHZgqG0mII\nDb2An/1sCkVFeeTk/ATA3r17+eSTTxg1alSA4wsOy5Yt49prJxEZ2Z38/EPceOO1rFnzGZs2bSou\nExMTQ1bWNVjCD5RQnIcNhwIdsFFSBoJsEZXgSPoRZGWtIDMziezs5YSHl/z18be//S2AcQWXrKws\nIiJGk5mZRG7usyxatJD9+0vmKurRowfnnHMOTgvTBNYVwMByj2zZssXmmGpiLOlXISIipvj9+++/\nz5IlSyop3VRN5PjxpRw8+CZwNjCWXbtu5JtvRgA3BzY0UyG3u4hx48bRp08fFi9eHOhwTD0JsqQf\nfCN3QkPDGTFiBABut5t33303wBEF3qZNm4pnI3W4gAuBYcAGnIVwngRmAj3rP0Djk337ktm+fTtp\naWlce+21jBs3zhZhbwKCLOk/FegAyvXGG2/Qs2dP7r77bubPnx/ocAJm06ZNTJgwgXPOOaeSSZ9s\nyoqGIY79+0uP4Pnggw/o3bs3IkJ4eBTh4VE8++wfAhSfqStBlvSDT0FBDj/88ANPPfUURUUu7r33\n/zF9+q9YvHhpoEOrN5s3b+b666+nX79+xX/pfPDBB6gWVVHTBK9+qB7HGbp5Q/FeZ9TV/1FQkEFB\nwdNs27YjUAGaOhJko3eCTRxu96VMmPACbnceubltKCgYCuxi1apnGDfuqkAHWOfWrl3LhRdeSNkn\nt5s1a0ZOTkGAojL+EYmz7MXbwH3ADJyZPB/F+YstPGCRmbpjSb9SUWRllbeQytfAdwBkZ2cTERHR\naNcqjYuLIzQ0nIKCPM8eF2Fh/8OBA3Hk548LaGzGny4A/oUzX2JJF93q1V9w663TOHLkMBs3rmPs\n2LFcdNFFXHHFFURHB9/AC1M1m3unRr6mR4+7mDfvj0ybNo3Bgwfzj3/8o8FOwex2u1m1ahU9e/ak\nZ8+eFBUVMWfOHLKysti5cyevvbaS3NxuwL04M2MGx0N0pq4dA97wvF+AM6s6gDBw4Hm8+OKLDBs2\nrMF+3zcGjWDCteNATJVlAy+NqKgryMnZjLNsMEycOJHHH3+cPn36BDg235w4cYIvv/ySlStX8s47\n77B3716aN48lJCSSY8f2oaqEhv4agMLCS4HLAxuwCSAFuuPMjVXas88+y4MPPljfARmPRpD0PwTG\nBjoUHylwE/B6qb2XX345c+bMCeo5yz/77DNGjx5Nfn5+mSMu4L84k3a1xlr0psQ+nFb/P4Di9ZP4\n6aef6NWrFwAbN24sfo7l+PHjPProo7Rs2bL+Q21C6noRlT9SsojKs+WU+TMwBqdT8GZV/cHXup5y\n6qwCdGl14g+wfJwFxUqW/G3ZsiXp6elERkYGLKrc3Fy2bNnC5s2bGTNmDABPPDGLvXvTERHi4zvx\n0ksvlLk5K4SGtqewcCv2uL6pmAK30arVEiIjm3H++UO56KJ+dO3alb/8ZQ5r17YA+gHPEhoaQmxs\nO2Jj23L//dMYNmwYZ511lnUH+VFdLZfoArbjZLc0YB1wg6pu8yozBpjuWS7xAuBPnuUSq6zrdQ6F\nNTg3lBqSIuB3wFLgOzp16s6iRU7r/5xzzilu6Xz11Vfs3LmT3r17c9ZZZxET499urBkzZrBlyxY2\nbdrEjz/+iNvtBiA8vBUuVwi5uYeA+YCbkJBfEhoquN1FuN3hFBW9ijM/TmugmV/jahwSsfmDvB0G\nlnne/0hMzE9ACG63cOLEk0AGMPiUWu3atWP//v18/vnnJCQkkJqayq5du8jLyyM3N5fhw4cHtLHU\nENVV0r8QeEJVx3i2fVkYfSvOT0mPqup6nUNhI85j/A3VCmJiZhAS4iI/fz8TJozgtdf+CsAdd9zB\n3Llzi0t26dKF+Ph4nn/+eYYMOXVB8JkzZ7Jp0yaysrKKX9nZ2bz77rv079+/VNns7GzOO+88tm/f\nXk5M/8JZxdLbTpzfwZFAR5xhe6ZiMzwv45vFwB04yb9EbGwcbrdy9OhBwsOjyc/PJiamH6pKdvZG\nAFq0aEG7du3o2bMnw4YN45577uH48eMANG/enJYtW5KRkcGOHTuIjo4mOjqaqKgooqOjadasGWFh\nTWsltrpaRKUzsNdrO4VTf42XV6azj3W9NPQhYCPJyjq5wPc/2LlzIZ9++inp6el8/PGyUiVTUlJI\nSUlh9OiradWqfaljOTmZqOaQkXHwlCtccskoWrZsR15eJmPGjKRly1b86U8vUPZJWJEQXK7mFBU1\nLyfOntj0CKbujAOuBrYBSThz+v+Hw4fPwnkQ7Bvy8x8DQsjKaobznMAkADIzM8nMzOS///0vMTEx\n9OzZm9xc53s7PLyQ9957i8TERP7v//7vlKtef/31LFx46hDrDz/8kPvuu4+QkJBSr7Fjx/K73/3u\nlPIrVqxg1qxZiEjxC2DEiBE89NBDp5T/9NNPeeGFFwCKy4oIl112GQ888EC55f/wh1OfdL7sssv4\n1a9+dcr+VatWlVv+0ktr1hVeV4PLa9RpFxMzFZcrwt+xBERu7ha+/HInP//5ikrLZWYeJDe39A3T\n/PxTR0mcdPx4Hjk5x8nP38Nrr5XM+tms2XmoFhESEk1BQTqRkb09R2wO9drKzf2RyMjvAh1GA9cZ\nZ3TeXM/Xs2QK7vz8FPLymqGai/ew7ZOTwDVvPhKRUI4eXVbpQkaLFi1i0aJFPke0YcMGnn76aZ/L\nd+rUqdz9qampLF++/JT9bdq0qbD8xx9/fMr+2NjYcsunpKTw0UcfnbK/devWlYVbIV+7d2ao6mjP\nti/dO9uAS3C6dyqt63WO4BhGZIwxDUhddO+sA04TkXiccVs3cOq6d0uBacAizy+Jo6q6X0QyfKhb\no8CNMcZUX5VJX1WLRGQ6sIKSYZdbRWSqc1jnqOoyEblcRH7CGbJ5S2V16+zTGGOMqVTQPJxljDGm\n7gV8amURGS0i20Rku4icemvcVIuIJItIkoisF5G1Vdcw3kRknojsF5ENXvtai8gKEflRRP4tIvaY\nqQ8q+Fo+ISIpIvK951V2PLGpgIh0EZFVIrJZRDaKyD2e/dX6/gxo0vc8vPUSMAroC0wUkbMCGVMj\n4AYSVHWAqlYyPNZU4B8434/eHgY+UdUzcR4bf6Teo2qYyvtaAryoqud5XqcOezEVKQR+pap9gSHA\nNE++rNb3Z6Bb+oOBHaq6W52ZyxbiDPA1NScE/v+1wVLV1cCRMruvxnmcGc+/19RrUA1UBV9LsOXV\nakRV009Ob6OqWTiTIHWhmt+fgU4OFT3UZWpOgZUisk5Ebg90MI1EnKruB+cHD4gLcDwN3XQR+UFE\n/mZdZTUjIt2Bc3Hmrmlfne/PQCd9438Xq+p5OHMhTxORoYEOqBGy0Q8191egp6qeC6QDLwY4ngZH\nRGKA94B7PS3+st+PlX5/BjrppwLdvLa7ePaZGlLVfZ5/D+JMgmL9+rW3X0TaA4hIB+BAgONpsFT1\noJYMGZwLDApkPA2NiITiJPzXVXWJZ3e1vj8DnfSLH/wSkXCch7eazorjfiYiUZ5WACISDYwENlVe\ny5RDKN3vvBS42fP+JmBJ2QqmQqW+lp6kdNK12Pdndf0d2KKqf/LaV63vz4CP0/cM2foTJQ9v2WQx\nNSQiPXBa94rz4N2b9vWsHhF5C2eG2DbAfuAJ4APgXaArsBuYoKpHAxVjQ1HB1/JSnL5oN5AMTD3Z\nH20qJyIX48xetxHnZ1xxVrFfC7yDj9+fAU/6xhhj6k+gu3eMMcbUI0v6xhjThFjSN8aYJsSSvjHG\nNCGW9I0xpgmxpG+MMU2IJX1jjGlCLOkbY0wTYknfmAqISF8ReVxELvBsvxbgkIypNUv6xlQsGigA\nxLNYhU20Zho8S/rGVEBV1wLnqeoa4ELg6wCHZEytWdI3pnLZnn+HAN8EMhBj/MGSvjGV2yMi43Fa\n/DYbpGnwQgMdgDHBSkRuAxKBNJyplY1p8GxqZWMqICIjgXCgPfB3tR8W0whY0jfGmCbE+vSNMaYJ\nsaRvjDFNiCV9Y4xpQizpG2NME2JJ3xhjmhBL+sYY04RY0jfGmCbEkr4xxjQh/x+E5fKG60mMOQAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a616b50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(\n",
" [mixture_sample() for _ in xrange(10000)],\n",
" normed=True,\n",
" bins=100,\n",
" histtype='stepfilled',\n",
" label='Direct samples'\n",
")\n",
"\n",
"sigma = 2.\n",
"X = np.linspace(0, 20)\n",
"Y = 0.5/np.sqrt(2*sigma**2*np.pi)*np.exp(-0.5*(X-10)**2/sigma**2) + \\\n",
" 0.5*scipy.stats.gamma.pdf(X,3,scale=1./3)\n",
"\n",
"plt.plot(X,Y, c='k', ls='--', lw=3, label='Analytic')\n",
"plt.legend(loc='best')\n",
"plt.xlabel('$y$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### PyStan"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* We can check to see if Stan samples the correct distribution:"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mixture_code = \"\"\"\n",
"parameters {\n",
" real x;\n",
" real y;\n",
"}\n",
"model {\n",
" x ~ normal(0, 1);\n",
" if(x > 0) {\n",
" y ~ normal(10, 2);\n",
" } else {\n",
" y ~ gamma(3, 3);\n",
" }\n",
"}\n",
"\"\"\""
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mixture_fit = pystan.stan(model_code=mixture_code, iter=4000)"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Inference for Stan model: anon_model_6f895cde7c27da044508de58a69e7bc8.\n",
"4 chains, each with iter=4000; warmup=2000; thin=1; \n",
"post-warmup draws per chain=2000, total post-warmup draws=8000.\n",
"\n",
" mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat\n",
"x 0.79 0.02 0.61 0.03 0.3 0.67 1.15 2.22 967.0 1.01\n",
"y 10.03 0.05 1.99 6.09 8.72 10.06 11.35 13.95 1543.0 1.0\n",
"lp__ -1.0 0.03 1.06 -3.85 -1.36 -0.68 -0.27 -0.02 1172.0 1.0\n",
"\n",
"Samples were drawn using NUTS(diag_e) at Wed Jun 8 13:29:33 2016.\n",
"For each parameter, n_eff is a crude measure of effective sample size,\n",
"and Rhat is the potential scale reduction factor on split chains (at \n",
"convergence, Rhat=1).\n"
]
}
],
"source": [
"print mixture_fit"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1050f8550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.subplot(2,1,1)\n",
"plt.hist(mixture_fit.extract()['x'], normed=True, bins=50, histtype='stepfilled', label='PyStan $x$', alpha=0.5)\n",
"\n",
"X1 = np.linspace(-4,4, 50)\n",
"Y1 = 1./np.sqrt(2*np.pi)*np.exp(-0.5* X1 ** 2)\n",
"plt.plot(X1,Y1, c='k', ls='--', lw=3, label='Analytic $x$')\n",
"plt.legend(loc='best')\n",
"plt.xlabel('$x$');\n",
"\n",
"plt.subplot(2,1,2)\n",
"plt.hist(mixture_fit.extract()['y'], normed=True, bins=50, histtype='stepfilled', label='PyStan $y$', alpha=0.5);\n",
"\n",
"plt.plot(X,Y, c='k', ls='--', lw=3, label='Analytic $y$')\n",
"plt.legend(loc='best')\n",
"plt.xlabel('PyStan $y$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nope"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### M-H sampling using only the last successful values"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* The Hur paper indicates that Stan follows the approach of \n",
"[D. Wingate, A. Stuhlmüller, and N. D. Goodman, \"Lightweight implementations\n",
"of probabilistic programming languages via transformational compilation\"](http://jmlr.csail.mit.edu/proceedings/papers/v15/wingate11a/wingate11a.pdf)\n",
"* If I understand this approach correctly, the sampled values for all code branches are held in a database (or dict, or map, or whatever), and updated when samples through that path are accepted. In this case, you can end up using previous values that originate from iterations well before the previous."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"n_steps = 100000\n",
"samples = [(1,1)] #start somewhere\n",
"\n",
"#this is the trace-database of values needed to calculate the M-H acceptance condition\n",
"previous_values = {\n",
" \"x\": np.random.normal(0, 1),\n",
" \"y_branch_0\": np.random.normal(10, 2),\n",
" \"y_branch_1\": np.random.gamma(3, 1./3),\n",
"}\n",
"\n",
"#probability distributions definitions\n",
"x_pdf = scipy.stats.norm(0,1)\n",
"y_branch_0_pdf = scipy.stats.norm(10,2)\n",
"y_branch_1_pdf = scipy.stats.gamma(3, scale=1./3)\n",
"\n",
"for step in xrange(n_steps):\n",
" change_log = []\n",
" \n",
" x_new = previous_values['x'] + np.random.normal(0,1)\n",
" beta_x = min(1, x_pdf.pdf(x_new) / x_pdf.pdf(previous_values['x']))\n",
" change_log.append(('x', x_new))\n",
" \n",
" if x_new > 0:\n",
" branch = 'y_branch_0'\n",
" y_new = previous_values[branch] + np.random.normal(0,1)\n",
" beta_y = min(1, y_branch_0_pdf.pdf(y_new) / y_branch_0_pdf.pdf(previous_values[branch]))\n",
" change_log.append((branch, y_new))\n",
" else:\n",
" branch = 'y_branch_1'\n",
" y_new = previous_values[branch] + np.random.normal(0,1)\n",
" beta_y = min(1, y_branch_1_pdf.pdf(y_new) / y_branch_1_pdf.pdf(previous_values[branch]))\n",
" change_log.append((branch, y_new))\n",
" \n",
" #M-H acceptance condition\n",
" if np.random.uniform(0,1) < beta_x*beta_y:\n",
" samples.append((x_new, y_new))\n",
" \n",
" #apply the applicable changes to the trace-database\n",
" for change in change_log:\n",
" previous_values[change[0]] = change[1]\n",
" else:\n",
" samples.append(samples[-1])"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nlFKqFft/Kz/5d/3aDe8AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11c9db0d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,8))\n",
"plt.subplot(2,2,1)\n",
"plt.hist(\n",
" [s[0] for s in samples],\n",
" normed=True,\n",
" bins=100,\n",
" histtype='stepfilled',\n",
" label='$x$',\n",
" alpha=0.5\n",
")\n",
"\n",
"X1 = np.linspace(-4,4, 50)\n",
"Y1 = 1./np.sqrt(2*np.pi)*np.exp(-0.5*X1 ** 2)\n",
"plt.plot(X1,Y1, c='k', ls='--', lw=3, label='Analytic $x$')\n",
"plt.xlabel('$x$');\n",
"\n",
"plt.subplot(2,2,2)\n",
"plt.plot([s[0] for s in samples])\n",
"plt.ylabel('$x$')\n",
"\n",
"plt.subplot(2,2,3)\n",
"plt.hist(\n",
" [s[1] for s in samples],\n",
" normed=True,\n",
" bins=100,\n",
" histtype='stepfilled',\n",
" label='$y$',\n",
" alpha=0.5\n",
");\n",
"\n",
"plt.plot(X,Y, c='k', ls='--', lw=3, label='Analytic $y$')\n",
"plt.xlabel('$y$');\n",
"\n",
"plt.subplot(2,2,4)\n",
"plt.plot([s[1] for s in samples])\n",
"plt.ylabel('$y$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This simple implementation does a bit better, but doesn't quite provide the correct distribution."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# M-H sampling with saving distribution information"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* The Hur paper describes saving information about the distribution along with the sampled value so that the correct M-H acceptance condition can be constructed regardless of which path the program executes\n",
"* Here, I've applied this process explicitly for the sample mixture distribution. The paper describes how to generalize this approach, but I kept it simple for pedagogical purposes"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"n_steps = 100000\n",
"samples2 = [(1,1)] #start somewhere\n",
"\n",
"#probability distributions definitions\n",
"def dist_value(p):\n",
" dist, value = p\n",
" if dist == 'x':\n",
" return scipy.stats.norm(0,1).pdf(value)\n",
" elif dist == 'y_branch_0':\n",
" return scipy.stats.norm(10,2).pdf(value)\n",
" elif dist == 'y_branch_1':\n",
" return scipy.stats.gamma(3, scale=1./3).pdf(value)\n",
"\n",
"#naive initialization of the pre-lists\n",
"x_pre = ('x', np.random.normal(0, 1))\n",
"y_pre = ('y_branch_1', np.random.gamma(3, scale=1./3))\n",
"\n",
"for step in xrange(n_steps):\n",
" #populate the current-lists\n",
" x_cur = ('x', x_pre[1] + np.random.normal(0,1))\n",
" if x_cur[1] > 0:\n",
" y_cur = ('y_branch_0', y_pre[1] + np.random.normal(0,1))\n",
" else:\n",
" y_cur = ('y_branch_1', y_pre[1] + np.random.normal(0,1))\n",
" \n",
" beta = (dist_value(x_cur)/dist_value(x_pre)) \\\n",
" *(dist_value(y_cur)/dist_value(y_pre))\n",
" \n",
" #M-H acceptance condition\n",
" if np.random.uniform(0,1) < min(1,beta):\n",
" samples2.append((x_cur[1], y_cur[1]))\n",
" x_pre = x_cur\n",
" y_pre = y_cur\n",
" else:\n",
" samples2.append(samples2[-1])"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11b009650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,8))\n",
"plt.subplot(2,2,1)\n",
"plt.hist(\n",
" [s[0] for s in samples2],\n",
" normed=True,\n",
" bins=100,\n",
" histtype='stepfilled',\n",
" label='$x$',\n",
" alpha=0.5\n",
")\n",
"\n",
"X1 = np.linspace(-4,4, 50)\n",
"Y1 = 1./np.sqrt(2*np.pi)*np.exp(-0.5*X1 ** 2)\n",
"plt.plot(X1,Y1, c='k', ls='--', lw=3, label='Analytic $x$')\n",
"plt.xlabel('$x$');\n",
"\n",
"plt.subplot(2,2,2)\n",
"plt.plot([s[0] for s in samples2])\n",
"plt.ylabel('$x$')\n",
"\n",
"plt.subplot(2,2,3)\n",
"plt.hist(\n",
" [s[1] for s in samples2],\n",
" normed=True,\n",
" bins=100,\n",
" histtype='stepfilled',\n",
" label='$y$',\n",
" alpha=0.5\n",
");\n",
"\n",
"plt.plot(X,Y, c='k', ls='--', lw=3, label='Analytic $y$')\n",
"plt.xlabel('$y$');\n",
"\n",
"plt.subplot(2,2,4)\n",
"plt.plot([s[1] for s in samples2])\n",
"plt.ylabel('$y$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Not bad"
]
}
],
"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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment