Skip to content

Instantly share code, notes, and snippets.

@fonnesbeck
Created August 20, 2012 18:07
Show Gist options
  • Save fonnesbeck/3406246 to your computer and use it in GitHub Desktop.
Save fonnesbeck/3406246 to your computer and use it in GitHub Desktop.
GP Tutorial
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "GP Tutorial"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Gaussian Processes in PyMC\n",
"\n",
"Along with standard parametric Bayesian models, PyMC includes a module `gp` for fitting non-parametric models using Gaussian processes. This is a short vignette about how they work."
]
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"from pymc.gp import *"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A Gaussian process can be thought of as a distribution of functions, or more specificallt, a distribution of normal distributions. They are often used as priors for functions about which we are highly uncertain about their true form.\n",
"\n",
"A Gaussian process is parameterized by two functions, rather than parameters. Analogous to the normal distribtion, which is parameterized by a mean and a variance (or covariance, in the case of a multinomial distribution), the GP is specified by a *mean function* and a *covariance function*."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mean function\n",
"\n",
"The mean function of a GP can be interpreted as a \"prior guess\" at the form of the true function."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Generate mean\n",
"def quadfun(x, a, b, c):\n",
" return (a*x**2 + b*x + c)\n",
"\n",
"M = Mean(quadfun, a=1., b=0.5, c=2.)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from pylab import *\n",
"x = arange(-1,1,0.1)\n",
"plot(x, M(x), 'k-')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 4,
"text": [
"[<matplotlib.lines.Line2D at 0x11405ec50>]"
]
},
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD+CAYAAAAwAx7XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHvJJREFUeJzt3XtUk/f9B/B3RK7xAlqoMme5qGDtUURXnfTYemj1VBxG\nzEQ9DqJr16PWdtVWqfaiPb3Y0nY6p1NPXVvZVFpF4oWuKuU2S6U1TmsZF0FQ0cgAyyUCmfD8/vBH\nDhEJISR5kifv118LeSCf5rA3Hz/f7/ONTBAEAUREJDn9xC6AiIhsgwFPRCRRDHgiIoliwBMRSRQD\nnohIohjwREQSZTLgBUHAe++9h4MHDyI1NRVbt26FXq+/77V5eXmIj49Ha2urTQolIqLe6bGDDwsL\ng1KpRHx8PPR6PQoKCrpcc+3aNVRVVdmkQCIisozJgJfJZIiLiwMAtLW1oba2FoGBgUbXtLa24ujR\no1AqlbarkoiIeq2/ORedP38ex48fx6RJkxASEmL03IEDB6BUKtG//90fZerG2MzMzD6USkTkuqKj\no3v9PWYF/IQJEzBhwgRs374dJ06cwMyZMwEAtbW10Ol0OH36tOHa48ePY+LEiV3+EHSIjIzsdZFE\nRK5Mo9FY9H0mA/7atWuorq42hLK/vz+qq6vR1NQENzc3DB06FCtWrDBcv3//fsyZMweenp4WFUNE\nRNZjMuDd3d2RlZWFiooKtLW14fr161CpVFCr1ZDL5VAoFACAhoYGnDx5EgBw5MgRREdHY8iQIbav\nnoiIuiWz52mSmZmZHNEQEfWSRqOxaAbPG52IiCSKAU9EJFEMeCIiiWLAExFJFAOeiEiiGPBERBLF\ngCcikigGPBGRRDHgiYgkigFPRCRRDHgiIoliwBMRSRQDnohIohjwREQSxYAnIrKhn376CT/99JMo\nr82AJyKyEUEQ8PLLL+P8+fOivD4DnojIRr766is0NjYiPj5elNc360O3iYiod+7cuYNNmzbhnXfe\ngZubmyg1sIMnIrKBv//97xg+fLhFH7VnLezgiYisrKmpCR988AH27dsHmUwmWh0mA14QBGzevBmj\nR49GW1sbtFotli9fDg8PD8M16enpqK+vh5+fH8rKyhAfH4/AwECbF05E5Kh27NiBqKgoREREiFpH\njyOasLAwKJVKxMfHQ6/Xo6CgwOj51tZWJCYmIjY2FlOmTEFKSorNiiUicnTV1dXYtWsXXnvtNbFL\nMR3wMpkMcXFxAIC2tjbU1tZ26c47rw63t7fD29vbBmUSETmH5ORkLFy4EA899JDYpZg3gz9//jyO\nHz+OSZMmISQk5L7X3LlzB7m5uXjmmWesWiARkbMoLS3F4cOHu0w6xGLWLpoJEyZg/fr1qK6uxokT\nJ7o8f+fOHXzyySdYtGgRAgICrF4kEZEzePvtt7Fq1SoMGTJE7FIA9BDw165dg0ajMTz29/dHdXU1\nmpqa0NzcDODuDH737t2YM2cOgoOD8d1339m2YiIiB/T999/j7Nmz+MMf/iB2KQYmRzTu7u7IyspC\nRUUF2tracP36dahUKqjVagwYMABz587Ftm3bcO3aNezZswfA3cCfOnWqXYonInIEgiDgjTfewPr1\n6x1qHVImCIJgrxfLzMxEZGSkvV6OiMguMjIy8O677yInJ8cmd61qNBqLbpjijU5ERH3gCEcSdIdH\nFRAR9YEjHEnQHXbwREQWcpQjCbrDDp6IyEKOciRBd9jBExFZoONIgm+++UbsUrrFDp6IyAKOdCRB\nd9jBExH1kqMdSdAddvBERL309ttv4/nnn3eYIwm6w4AnIuqFjiMJnnvuObFL6REDnojITI56JEF3\nGPBERGb66quv0NjYaPQ5GI6Mi6xERGZw5CMJusMOnojIDI58JEF32METEfXA0Y8k6A47eCKiHjj6\nkQTdYQdPRGSCMxxJ0B128EREJjjDkQTdYQdPRNSN0tJSpKen48yZM2KXYhF28ERE9yEIApKSkvDS\nSy85/JEE3WHAExHdx9GjR3Hjxg08++yzYpdiMZMjGkEQsHnzZowePRptbW3QarVYvnw5PDw8DNfo\n9XqkpKRg6NChuHHjBhQKBYYPH27zwomIbEWn02HDhg3YuXMn3N3dxS7HYj128GFhYVAqlYiPj4de\nr+9yPGZGRgb8/f2hUCgQExODnTt32qxYIiJ7+Pjjj/HrX/8aUVFRYpfSJyY7eJlMhri4OABAW1sb\namtrERgYaHTNuXPnsGjRIgDAyJEjUVFRgZaWFnh5edmoZCIi2yktLcXnn3+OvLw8sUvpM7N20Zw/\nfx7Hjx/HpEmTEBISYvRcfX290alqPj4+qK+vZ8ATkdPpWFhdvXq1JEbNZi2yTpgwAevXr0d1dTVO\nnDhh9NzgwYPR3NxseHz79m0MHjzYulUSEdmBFBZWOzMZ8NeuXYNGozE89vf3R3V1NZqamgyhPnHi\nRJSUlAAArly5gqCgIHbvROR0OhZWk5OTnXphtTOTIxp3d3dkZWWhoqICbW1tuH79OlQqFdRqNeRy\nORQKBWbPno2UlBSkpaUZdtkQETkbqSysdiYTBEGw14tlZmYiMjLSXi9HRGSW0tJSPP3008jLy3PI\n2btGo7HomGLe6ERELk1qC6udMeCJyKVJbWG1Mx42RkQuSyp3rHaHHTwRuSwpLqx2xg6eiFySlO5Y\n7Q47eCJyOVJeWO2MAU9ELkfKC6udcURDRC5F6gurnbGDJyKXIvWF1c7YwRORy3CFhdXO2METkUtw\nlYXVzhjwROQSXGVhtTOOaIhI8lxpYbUzdvBEJHmutLDaGTt4IpI0V1tY7YwdPBFJlisurHbGgCci\nyXLFhdXOOKIhIklqaGhwyYXVztjBE5Ekbdy4ETNmzHC5hdXOTHbwWq0WqampCA4ORl1dHQYMGACl\nUml0TXV1NVJSUjBq1ChUVlbiiSeewPjx421aNBGRKdnZ2Th58iROnz4tdimiMtnB63Q6REVFITY2\nFiqVCt9++y3Ky8uNrlGr1Rg7dizmzp2L2NhYfPrppzYtmIjIlIaGBrz44ovYsmULBg0aJHY5ojLZ\nwYeGhho9FgQBXl5eRl/z9fVFfX09AKC+vh5+fn5WLpGIyHwbN27E448/jujoaLFLEZ3Zi6wFBQWI\niIhAYGCg0ddjYmLw0UcfYe/evSgrK8PSpUutXiQRkTk4mjFmVsBfvHgRhYWFUKlUXZ7bsWMHoqOj\nMW3aNDQ0NGDt2rXYunUrPD09rV0rEVG3OJrpqsddNBqNBhcuXIBKpUJdXR1KSkrQ1NSE5uZmAEBt\nbS18fX0BAHK5HK2trWhtbbVt1URE9+BopiuTHXx5eTm2bNmC0NBQbNq0CS0tLZg1axa+//57yOVy\nKBQKJCYmIiMjA8XFxbh58yZ++9vf8q8nEdkVRzP3ZzLgQ0JCsHfvXpM/IDw8HOHh4VYtiojIXI2N\njRzNdIM3OhGRU3vzzTc5mukGjyogIqfF0Yxp7OCJyClxNNMzBjwROSWOZnrGEQ0ROR2OZszDDp6I\nnApHM+ZjwBORU+Foxnwc0RCR0+BopnfYwRORU+BopvcY8ETkFDia6T2OaIjI4XE0Yxl28ETk0Dia\nsRwDnogcGkczluOIhogcFkczfcMOnogcEkczfceAJyKH9Prrr3M000cc0RCRwzl8+DD+9a9/4Ztv\nvhG7FKfGgCcih1JWVoZ169bh4MGDHM30EUc0ROQwWlpasGzZMiQlJWH8+PFil+P0GPBE5DBee+01\nhIaGYunSpWKXIgkmRzRarRapqakIDg5GXV0dBgwYAKVS2eW6Y8eOQSaT4datW2hsbMTy5cttVjAR\nSdPhw4eRnZ2Nb775BjKZTOxyJMFkwOt0OkRFRWHy5MkAgNWrVyMyMhIhISGGa3Jzc9GvXz/Mnj0b\nAHDlyhUblktEUsS5u22YDPjQ0FCjx4IgwMvLy+hreXl5GDt2LDIyMlBfX48ZM2ZYv0oikizO3W3H\n7Bl8QUEBIiIiEBgYaPT1mpoaNDQ0YPbs2ZgxYwbeffddCIJg9UKJSJo2bNjAubuNmLVN8uLFiygs\nLIRKperynI+PD0aPHg0AGDZsGFpbW1FbW4sHHnjAqoUSkfSkpaUhJyeHc3cb6THgNRoNioqKoFKp\nUFdXh5qaGgQGBsLNzQ3e3t545JFHcPPmTQB3/6nV3t4OX19fmxdORM6tY+5+6NAhzt1tRCaYmKeU\nl5dj48aNhll8S0sLZs2ahaqqKsjlcigUCty+fRuff/45HnzwQdTU1ODRRx9FRETEfX9eZmYmIiMj\nbfNfQkROo6WlBTNnzoRKpcKyZcvELsfhaTQai45sMBnw1saAJyIAWLNmDW7duoU9e/ZwNGMGSwOe\nRxUQkV1x7m4/DHgishvO3e2LRxUQkV20tLRg6dKlePXVV7nf3U4Y8ERkF9zvbn8c0RCRzaWlpSE7\nOxtZWVmcu9sRA56IbIrnzIiHIxoispmOuXtSUhImTJggdjkuhwFPRDbTMXfnzUzi4IiGiGyCc3fx\n2b2Dv3z5sr1fkojs7NKlS1i3bh3+9re/ce4uIrsH/MKFC/Hzzz/b+2WJyE5u3bqFxYsXY8OGDZy7\ni8zuAf/kk08iISEBer3e3i9NRDam1+uRmJiIp5566r7Hi5N92T3g33rrLQwcOBCrV6/mB4MQSYgg\nCHjppZcwaNAgvPXWW2KXQxAh4N3c3LB792789NNP+Pjjj+398kRkIx999BH+85//YNeuXXBzcxO7\nHIJIu2jkcjn27duHWbNmITg4GHFxcWKUQURWcujQIezduxdff/015HK52OXQ/xNtm+Tw4cOxf/9+\nzJs3DyNGjMCjjz4qVilE1AdnzpxBUlIS0tPTMXz4cLHLoU5EvdFp3Lhx2LFjBxITE7l9ksgJlZeX\nIzExETt37sS4cePELofuIfqdrE8++SReeeUVbp8kcjK3bt3CwoULsXbtWos+bYhsT/SAB4Bly5Zx\n+ySRE+nYDjlz5kweQ+DAHCLggbvbJwcNGsTtk0QOrvN2yE2bNoldDplgMuC1Wi22bt2KI0eO4LPP\nPsPBgwe7vTYvLw/x8fFobW21qBA3Nzfs2rULhYWF3D5J5MC4HdJ5mNxFo9PpEBUVhcmTJwMAVq9e\njcjISISEhBhdd+3aNVRVVfW5GLlcjn/84x/cPknkoDq2Q544cYLbIZ2AyQ4+NDTUEO7A3X+aeXl5\nGV3T2tqKo0ePQqlUWqWgju2TSUlJKCgosMrPJKK+O3PmDF599VXs378fw4YNE7scMoPZM/iCggJE\nREQgMDDQ6OsHDhyAUqlE//53/zFgjfk5t08SOZaO7ZB//etfuR3SiZgV8BcvXkRhYSESExONvl5b\nWwudTofTp08jPT0dAHD8+HGUl5f3uTBunyRyDNwO6bx6vJNVo9GgqKgIKpUKdXV1qKmpQWBgINzc\n3DB06FCsWLHCcO3+/fsxZ84ceHp6WqW4ZcuWoaysDAkJCTh48CA8PDys8nOJyDx6vR4JCQncDumk\nTHbw5eXl2LJlC0pLS7Fp0yYkJyfj+vXrUKvV+Prrrw3XNTQ04NChQwCAI0eOoK6uzmoFdmyffOml\nl7h9ksiOBEHAH//4R/j6+nI7pJOSCXZMzczMTERGRvb6+3Q6HX7zm98gJiYGa9assUFlRHSvDz/8\nEBkZGTh69Ch3zIhMo9FYNB5zis9k5fZJIvvidkhpcIqAB4xPn3zggQcwffp0sUsikqScnBy8+uqr\nSE9P53ZIJ+cwRxWYY9y4cfjss8/wzDPPIDc3V+xyiCQnJycHzz77LD777DM8/PDDYpdDfeRUAQ8A\n06ZNY8gT2UDncJ82bZrY5ZAVOF3AAwx5ImtjuEuTUwY8wJAnshaGu3Q5bcADDHmivmK4S5tTBzzA\nkCeyFMNd+pw+4AGGPFFvMdxdgyQCHmDIE5mL4e46JBPwAEOeqCcMd9ciqYAHGPJE3WG4ux7JBTzA\nkCe6F8PdNUky4AGGPFEHhrvrkmzAAwx5Ioa7a5N0wAMMeXJdDHeSfMADDHlyPQx3Alwk4AGGPLkO\nhjt1cJmAB4xDPi0tTexyiKwuLS2N4U4GTvOJTtYybdo0HD58GIsXL0ZJSQnWrl2Lfv1c6u8cSVB7\nezvef/99HDhwAIcPH8a4cePELokcgMmA12q1SE1NRXBwMOrq6jBgwAAolUqja9LT01FfXw8/Pz+U\nlZUhPj4egYGBNi26r8aNG4eTJ08iISEBxcXF2L59O3x8fMQui8giOp0OK1euhFarxalTp+Dv7y92\nSeQgTLauOp0OUVFRiI2NhUqlwrfffovy8nKja1pbW5GYmIjY2FhMmTIFKSkpNi3YWgICApCeng4v\nLy/ExMSgqqpK7JKIeq2qqgoxMTHw8fGBWq1muJMRkwEfGhqKyZMnGx4LggAvLy+ja+Lj4w3/u729\nHd7e3lYu0Xa8vLywY8cOKBQKzJo1C2fPnhW7JCKznT17FrNmzUJcXBy2b98OT09PsUsiB2P28Lmg\noAARERHdjl/u3LmD3NxcLFy40GrF2YNMJsOLL76I5ORkLFq0iIuv5BTS0tKwaNEiJCcn44UXXoBM\nJhO7JHJAZi2yXrx4EYWFhVCpVPd9/s6dO/jkk0+waNEiBAQEWLM+u3n66acxcuRILr6SQ+NiKvVG\njwmm0Whw4cIFqFQq1NXVoaSkBE1NTWhubgZwdwa/e/duzJkzB8HBwfjuu+9sXrStdCy+Zmdn4/e/\n/z1u374tdklEBjqdDsuWLUNOTg5OnTrFcKcemQz48vJybNmyBaWlpdi0aROSk5Nx/fp1qNVqnDhx\nAgCwbds2lJSUYM+ePdi0aROOHDlil8JtJSAgAGq1Gt7e3lx8JYfBxVSyhEwQBMFeL5aZmYnIyEh7\nvVyfCIKAbdu2Yffu3fj8888xadIksUsiF3X27FkkJibiueeew/PPP895uwvSaDSIjo7u9fdxyNwN\nmUyGF154gYuvJKrOi6mrVq1iuFOvuNydrL3VefG1uLgY69at4+Ir2Vx7ezs2b96M1NRULqaSxZhU\nZuhYfM3JycGyZcug0+nELokkrGMxNS8vj4up1CcMeDN1LL76+Phgzpw5XHwlm+hYTJXL5UhPT+di\nKvUJA74XPD09sX37dsybNw/R0dFIS0uDHdeoScIEQcChQ4cQHR2N+fPn4y9/+QvvTKU+4wy+lzoW\nXx977DGsXLkSarUaycnJTnuDF4mvuroaL7/8Mi5duoT9+/dj4sSJYpdEEsEO3kKRkZHIzs7GqFGj\nMH36dHbz1GsdXfv06dMxZswYZGVlMdzJqtjB94Gnpydef/11xMTEsJunXmHXTvbADt4K2M2Tudi1\nkz2xg7cSdvPUE3btZG/s4K2M3Tzdi107iYUdvA2wm6cO7NpJTOzgbYjdvOti106OgB28jbGbdz3s\n2slRsIO3E3bz0seunRwNO3g7ureb37t3L5KSkjB16lSxS6M+ys/Px/vvv4/q6mp27eQw2MGLIDIy\nErm5uVAqlVi+fDnmzZvn1B916Mry8/Mxb948rFixAkqlEjk5OQx3chgMeJG4u7tjyZIlKCgowPz5\n8xn0TqZzsM+fPx8FBQVYsmQJ3N3dxS6NyIABLzIGvXNhsJMzYcA7CAa9Y2OwkzMyuciq1WqRmpqK\n4OBg1NXVYcCAAVAqlUbX6PV6pKSkYOjQobhx4wYUCgWGDx9u06KlrCPo4+PjkZqaiuXLlyMoKAjr\n1q3jYqwI8vPz8cEHH6CiogJr1qxBfHw8Q52chskOXqfTISoqCrGxsVCpVPj2229RXl5udE1GRgb8\n/f2hUCgQExODnTt32rRgV8GOXlzs2EkKTAZ8aGgoJk+ebHgsCAK8vLyMrjl37hzGjBkDABg5ciQq\nKirQ0tJig1JdE4PevhjsJCVm74MvKChAREQEAgMDjb5eX18Pb29vw2MfHx/U19d3+UNAfXO/0c1D\nDz2E3/3ud5g5cyYGDhwodolOq7GxESdOnEBKSgoqKys5iiHJMGuR9eLFiygsLERiYmKX5wYPHozm\n5mbD49u3b2Pw4MHWq5CMdO7oFy9ejNTUVDzyyCNISEjAoUOH0NjYKHaJTqGxsRGHDh1CQkICHnnk\nEaSmpmLx4sXs2ElSeuzgNRoNioqKoFKpUFdXh5qaGgQGBsLNzQ3e3t6YOHEiSkpKEB4ejitXriAo\nKIjdux24u7tjwYIFWLBgAW7duoWMjAykpqZi9erVePzxxzF37lx29vfo6NTVajVycnIwZcoUKBQK\n/PnPf4avr6/Y5RFZnUwwcSBKeXk5Nm7ciNDQUABAS0sLZs2ahaqqKsjlcigUCsMuGj8/P2i1WsTF\nxWHYsGH3/XmZmZmIjIy0zX8JAYAh7NVqNc6cOePyYd9dqM+ePZuhTk5Do9EgOjq6199nMuCtjQFv\nX64a9gx1khoGPJkk9bBnqJOUMeDJbD///DMyMjKQnp6O06dPY8SIEQgLC0N4eDjCw8MRFhaGUaNG\nwdPTU+xSu2htbcWlS5dQVFSE4uJiFBUVoaioCFVVVYiKimKokyQx4Mkier0eZWVlRmFZXFyMyspK\n/PKXvxQt+LsL8qtXryIoKKhLXaGhofDw8LB5XURisDTgeR68i/Pw8MDYsWMxduxYo6/fG/xHjhzp\nNvgDAwMhk8ksrkEQBFRVVZkM8ri4OAY5US8x4Om+ehP8Wq22z683bNgwBjmRlTHgqVe6C34icjw8\nLpiISKIY8EREEsWAJyKSKAY8EZFEMeCJiCSKAU9EJFEMeCIiiWLAExFJFAOeiEiiGPBERBLFgCci\nkigGPBGRRDHgiYgkigFPRCRRPR4X/PPPP+PAgQOorKzEe++91+X56upqpKSkYNSoUaisrMQTTzyB\n8ePH26RYIiIyX48dfFFREX71q191+7xarcbYsWMxd+5cxMbG4tNPP7VqgUREZJkeA37q1Knw8vLq\n9nlfX1/U19cDAOrr6+Hn52e96oiIyGJ9/kSnmJgYfPTRR9i7dy/KysqwdOlSk9drNJq+viQREZmh\nzwG/Y8cOREdHY9q0aWhoaMDatWuxdetWeHp6drnWkk8FJyIiy1i0i6apqQnNzc0AgNraWvj6+gIA\n5HI5Wltb0draar0KiYjIIjJBEARTFxQWFiI3Nxfnz5/HU089hTlz5uDLL7+EXC6HQqFAUVERMjIy\nEBwcjJs3b2LkyJGYPXu2veonIqJu9BjwRETknHijExGRRPV5kdUUQRBw6tQpfPHFF3jzzTcxYsSI\n+16Xm5uLyspK9OvXDw8++CCefPJJW5bltJqamrBv3z4EBARAq9Vi0aJFGDx4cJfrVq5ciYCAAADA\nkCFDsGrVKnuX6tAuXLiA77//HoMGDYJMJoNSqTR6Xq/XIyUlBUOHDsWNGzegUCgwfPhwkap1bD29\nl9nZ2Th58iQ8PDwAADNmzMD06dPFKNXh9XRTqUW/l4INXb58Wbh8+bKwYsUK4erVq/e9pqamRnjl\nlVcMj5OSkoQbN27YsiyntXv3biE/P18QBEH44YcfhG3btt33ui+++MKeZTmVlpYWYdWqVcL//vc/\nQRAE4cMPPxR+/PFHo2sOHz4sqNVqQRAEobKyUnjjjTfsXqczMOe9zMrKEqqrq8Uoz+nk5+cLP/zw\ng5CUlHTf5y35vbTpiCYoKAhBQUEmrzl//jxCQkIMj8eMGYNz587ZsiynpdFoMGbMGABAWFhYt/cU\nFBUV4ciRI0hNTUVJSYk9S3R4JSUl8Pf3R//+d//xer/38dy5c4b3eeTIkaioqEBLS4vda3V05ryX\nAPDPf/4TR48excGDB9HU1GTvMp1GTzeVWvJ72ecRzTvvvGO4k7WzBQsWYPLkyT1+f0NDA7y9vQ2P\nfXx80NDQ0NeynJap97OhocHwC+Dt7Q2dTof29nb062f8d3rx4sUIDQ2FXq/HunXrsG7dOgwbNswu\n9Tu6+vp6o/8T+fj44PLly12uufd38t7vI/Pey4cffhiTJk3CwIEDce7cOfzpT3/C66+/bu9SJcGS\n38s+B/yGDRv69P2DBg2CVqs1PL59+7ZLzztNvZ+DBg1CS0sLfHx80NzcDLlc3iXcASA0NBQA4OHh\ngaCgIBQXFzPg/5+vr69R13P79m3DfRwdBg8ebLjPo+Oa+611uDpz3suOtSAAGDduHD744AMIggCZ\nTGa3OqXCkt9Lu+2iETrtxhQEATU1NQCAiIgIlJeXG54rKSlBRESEvcpyKpGRkSguLgZwdwwzadIk\nAMbv58WLF/Hvf//b8D1arZbh3sno0aPx3//+F3fu3AEAFBcXY+LEiUY3702cONEw2rpy5QqCgoLY\nvd+HOe/l/v370d7eDuDu72JAQADDvRf6+nvptnHjxo22Kk6n0+Ho0aMoLCxEe3s75HI5hg4disrK\nSnz88ceYOXMmvL294eXlhezsbPz4448YP348jxvuRlhYGE6dOoUrV66gpKQES5Ysgaenp9H72dLS\ngmPHjuHmzZvIz8/H6NGj8dhjj4ldusPo378/fvGLX+DYsWO4dOkS/Pz88MQTT+DLL7/ElStXEB4e\njpCQEOTn56OiogIajQYJCQkYMGCA2KU7HFPv5dWrVxEeHo6rV68iKysLV69exZkzZ7BkyRIMGTJE\n7NIdUmFhIfLy8lBZWQm9Xo/Q0FCkpaX16feSNzoREUkUb3QiIpIoBjwRkUQx4ImIJIoBT0QkUQx4\nIiKJYsATEUkUA56ISKL+D4/fGuInIGK/AAAAAElFTkSuQmCC\n"
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Covariance function\n",
"\n",
"The behavior of individual realizations from the GP is governed by the covariance function. The Mat&#232;rn class of functions is a flexible choice."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from pymc.gp.cov_funs import matern\n",
"import numpy as np\n",
"C = Covariance(eval_fun=matern.euclidean, diff_degree=1.4, amp=0.4, scale=1, rank_limit=1000)\n",
"\n",
"subplot(1,2,2)\n",
"contourf(x, x, C(x,x).view(ndarray), origin='lower', extent=(-1,1,-1,1), cmap=cm.bone)\n",
"colorbar()\n",
"\n",
"subplot(1,2,1)\n",
"plot(x, C(x,0).view(ndarray), 'k-')\n",
"ylabel('C(x,0)')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 5,
"text": [
"<matplotlib.text.Text at 0x114146bd0>"
]
},
{
"output_type": "display_data",
"png": "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\nAAAASUVORK5CYII=\n"
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Returns the diagnonal\n",
"C(x)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 6,
"text": [
"array([ 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16,\n",
" 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16, 0.16,\n",
" 0.16, 0.16])"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Drawing realizations from a GP\n",
"\n",
"Since a Gaussian process is a distribution over functions, sampling from it yields functions rather than points. We refer to draws from GPs as *realizations*, which are represented using `Realization` objects in PyMC."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Generate realizations\n",
"f_list = [Realization(M, C) for i in range(3)]\n",
"\n",
"# Plot mean and covariance\n",
"x = arange(-1,1,0.01)\n",
"plot_envelope(M, C, x)\n",
"\n",
"# Add realizations\n",
"for f in f_list:\n",
" plot(x, f(x))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\ngg==\n"
}
],
"prompt_number": 8
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Non-parametric Regression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's use a GP to model observations as coming from a function for which we are highly uncertain. We can model this data as:\n",
"\n",
"$$ \\text{data}_i \\sim \\text{N}(f(o_i), V_i) $$\n",
"\n",
"which assumes only that the observation error is normally distributed. To represent the uncertainty regarding the expected value, we use a Gaussian process prior: \n",
"\n",
"$$ f \\sim \\text{GP}(M,C) $$ \n",
"\n",
"Combining these yields a posterior for *f* that is also a Gaussian process, with new mean and covariance functions:\n",
"\n",
"$$ f|\\text{data} \\sim \\text{GP}(M_o, C_o) $$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"M = Mean(quadfun, a=1., b=0.5, c=2.)\n",
"C = Covariance(eval_fun=matern.euclidean, diff_degree=1.4, amp=0.4, scale=1, rank_limit=1000)\n",
"\n",
"obs_x = np.array([-.5, .5])\n",
"V = np.array([0.002, 0.002])\n",
"data = np.array([3.1, 2.9])\n",
"\n",
"observe(M=M, C=C, obs_mesh=obs_x, obs_V=V, obs_vals=data)\n",
"\n",
"# Generate realizations from posterior\n",
"f_list = [Realization(M,C) for i in range(3)]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The function `observe` informs the mean and covariance functions that values on `obs_mesh` with observation variance `V`. Making observations with no error is called `conditioning`. This is useful when, for example, forcing a rate function to be zero when a population's size is zero."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_envelope(M, C, mesh=x)\n",
"for f in f_list:\n",
" plot(x, f(x))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nAAAASUVORK5CYII=\n"
}
],
"prompt_number": 10
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Salmon Example"
]
},
{
"cell_type": "code",
"collapsed": true,
"input": [
"class salmon:\n",
" \"\"\"\n",
" Reads and organizes data from csv files,\n",
" acts as a container for mean and covariance objects,\n",
" makes plots.\n",
" \"\"\"\n",
" def __init__(self, name, data):\n",
"\n",
" # Read in data\n",
"\n",
" self.name = name\n",
"\n",
" self.abundance = data[:,0].ravel()\n",
" self.frye = data[:,1].ravel()\n",
"\n",
" # Specify priors\n",
"\n",
" # Function for prior mean\n",
" def line(x, slope):\n",
" return slope * x\n",
"\n",
" self.M = Mean(line, slope = mean(self.frye / self.abundance))\n",
"\n",
" self.C = Covariance( matern.euclidean,\n",
" diff_degree = 1.4,\n",
" scale = 100. * self.abundance.max(),\n",
" amp = 200. * self.frye.max())\n",
"\n",
" observe(self.M,self.C,obs_mesh = 0, obs_vals = 0, obs_V = 0)\n",
"\n",
" self.xplot = linspace(0,1.25 * self.abundance.max(),100)\n",
"\n",
"\n",
"\n",
" def plot(self):\n",
" \"\"\"\n",
" Plot posterior from simple nonstochetric regression.\n",
" \"\"\"\n",
" figure()\n",
" plot_envelope(self.M, self.C, self.xplot)\n",
" for i in range(3):\n",
" f = Realization(self.M, self.C)\n",
" plot(self.xplot,f(self.xplot))\n",
"\n",
" plot(self.abundance, self.frye, 'k.', markersize=4)\n",
" xlabel('Female abundance')\n",
" ylabel('Frye density')\n",
" title(self.name)\n",
" axis('tight')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sockeye_data = np.reshape([2986,9,\n",
"3424,12.39,\n",
"1631,4.5,\n",
"784,2.56,\n",
"9671,32.62,\n",
"2519,8.19,\n",
"1520,4.51,\n",
"6418,15.21,\n",
"10857,35.05,\n",
"15044,36.85,\n",
"10287,25.68,\n",
"16525,52.75,\n",
"19172,19.52,\n",
"17527,40.98,\n",
"11424,26.67,\n",
"24043,52.6,\n",
"10244,21.62,\n",
"30983,56.05,\n",
"12037,29.31,\n",
"25098,45.4,\n",
"11362,18.88,\n",
"24375,19.14,\n",
"18281,33.77,\n",
"14192,20.44,\n",
"7527,21.66,\n",
"6061,18.22,\n",
"15536,42.9,\n",
"18080,46.09,\n",
"17354,38.82,\n",
"17301,42.22,\n",
"11486,21.96,\n",
"20120,45.05,\n",
"10700,13.7,\n",
"12867,27.71,], (34,2))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Instantiate salmon object with sockeye abundance\n",
"sockeye = salmon('sockeye', sockeye_data)\n",
"\n",
"# Observe some data\n",
"observe(sockeye.M, sockeye.C, obs_mesh = sockeye.abundance, obs_vals = sockeye.frye, obs_V = .25*sockeye.frye)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sockeye.plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nKQCcO3eO8PBwgBbPNzY2kpWVRVBQED4+PtjZ2VFaWgo0tScsLKxdMoeFhXH+/Pk2yTZ8+HDtNZmZ\nmfTt27fVaZzvKzo6WvtzTk4O3bt3t5qsCQkJJCYmMm/ePIqLi0lJSbHavm0tq7X27ZUrV1pM5/r4\n+JCfn094eHib/Z9qq7ytZc3Ly7Pavr1ZneJGMGu4W7ikpIT33nuPvn37UlNTg8lkYu7cuVRWVrJ1\n61a8vb3Jy8tjzpw5GI1Nv0O8c+dOqqqqqKqqYvjw4do/5IyMDHbv3o2XlxdVVVVtchVQcnIyBw8e\n5NSpU9xzzz1MmTKF+vr6NsvWfIWCu7s7ubm5PPDAA9o/9rbI+sknn1BXV4fRaOTy5cvMmjVLO74l\ns6anp7N8+XL8/f0BqK2tZdKkSYSHh1td37aWdeLEieTk5Fhl3zYPoP369cNkMpGVlUVkZCQGg8Hq\n+ra1rPPmzeMf//iHVfbtzeoUBUAIIUTbs/opICGEEO1DCoAQQnRRUgCEEKKLkgIghBBdVKdYC0h0\nbomJiWzZsoXMzEyCgoLQ6XQtti9btqzdM8THxxMdHY27u3ubvl97Hbc16enpvP3221RXV7N+/fp2\nfS/RNUgBEO0uJCSEyMhIVqxYwdKlS1tc8rpixYoOyTBixAgqKys5cOBApzhua/r3709kZKQM/qLN\nyBSQ6BDXu9p4zpw5HZykc5OrtkVbkk8AwiLy8/P5+OOPiYqKAuDAgQPs3bsXW1tbPDw8ePTRR3Fw\ncOCdd94hLi6OSZMmkZWVRXp6OhMnTqRbt27s27ePgoICoqKitEW0/vnPf3L48GFtmikyMpKePXu2\nmqGsrIw///nPVFRUYDabmTp1KnfeeWer+97ouEop/vKXv5Cenk5DQwOPPfYY/fr1Izo6mv379zN3\n7lwmTJjApk2bOHDgAC+++CKDBw9u0b7s7GwyMjIYPXo0ERERAJjNZjZv3kxSUhKenp4EBQW1yHXs\n2DH27NkDNN1xOnv2bAIDAyksLGTdunVcuHCBqKgoDh48SFFRUYu+Kisr491336WsrAyTyURAQAAR\nERHY2dmRnp7OX//6V3Q6HQaDgUceeURb/EzcRtp9vVEhlFJJSUlq5syZatmyZWr58uVqyZIlav36\n9Uoppc6ePavmz5+vysvLlVJKbdmyRW3cuFF77fLly9Xq1auVUkpdvHhRRUREqD179iillNq1a5f6\n3e9+p+27b98+benwpKSkFkvqfvXVV2r58uXa45dffllbzrekpETNnz9f5efnt5r/RsedPXu2yszM\nVEopdejQIRUVFaVMJpOWPzY2Vts/KipKnTlzpkX7Vq5cqeX4xS9+oUpKSpRSSu3evVs9++yz2nuv\nW7dORUVFaa89ePCgqqioUEoplZeXpxYuXKhty8/PVzNnztSWVo6JiVG//e1vte2vvPKK2r59u1JK\nqYaGBvXcc8+pgoICVVVVpebPn6+SkpKUUkr9+9//Vk899ZQym82t9o3ovOQTgOhQzd8BFBQU8PHH\nHwNNZ/8jRozAxcUFgHHjxvHSSy+xYMEC7XVDhw4FoFevXphMJu1MuHfv3uzbt0/bz8/Pj5UrV9LQ\n0EBjYyOZmZmt5iguLiYpKYmFCxcCTYsODho0iLi4OKZNm3bN/jc6rq+vL7169QJg7NixbNiwgZSU\nFAYNGnRT/TJs2DAth4uLC/n5+bi5ufH1118zZswYbTn0sWPHkpqaqr2uT58+bNiwgcrKSgwGA0VF\nRZSXl2M0GrXpotDQUK2v9u/fr7X/9OnTWvttbGyIiorCxcWFY8eO4eDgQHBwMNC0rs2bb75Jamqq\n9ulB3B6kAAiL8Pb21gafoqIisrKytC+ETSYTbm5uVFZW4uzsDKAtk2swGK553LxQYHV1NStXriQq\nKopRo0ZRUFDA448/3ur7FxUVAfDWW29p0zoVFRX07t37mn1v5rjNOaFptVgnJydKSkpuuj+uXgbY\n1tZWa1NpaalWGAGcnJxavG7VqlVMnjyZKVOmADBr1ixtTfpmzQuKXX3c5vY3r7EDTcWkeVtlZWWL\nL+hdXV2prKy86faIzkEKgLA4Ly8vunXrxiOPPKI9V1FR0WJQvRnZ2dnU1tZqZ7zNg11rPD09AXjm\nmWe0AbahoQGTyfS9jnv14GgymaiqqsLd3R1oOrtuaGjQtldXV990m9zc3FqsCV9RUaH9uaysjMLC\nwptq7zc1t7+srAwvLy+gacEzZ2dnvLy88PT0bHFZa01NDba2tjd9fNE5yFVAwuImTJhAQkICVVVV\nQNOAu2rVKm27Uuqaq1+++RiaColer9emSE6ePHnd9/Tw8CAkJKTF5ZubNm3izJkz3+u4V65c0aaF\n4uLi8PDw0KZLfHx8uHz5MtC0EmpdXd01bWmtPdD0QzlHjx6loaEBpRRxcXHaNhcXFxwdHbUlhJtz\nXe9YrbU/NjYWaCp+b7zxBiaTibCwMMrLy0lLSwOaVhVdsWJFi7Xqxe3BsHz58uWWDiFub803gpWV\nlZGcnIyHhwfdunXTtnt6emI0Gnn//feJi4sjMTGRBQsW4OzsTHR0NCdOnODSpUv079+f999/n+zs\nbFJTUxk0aBB/+tOfKCwsJCcnhx/+8Ie4uroSHR1NUlISOp2O1NRUUlJScHR0ZPv27eTm5lJSUsLw\n4cMJDQ1l37597N69m9jYWAYOHMhdd911TX57e/sbHtfX15e8vDxiYmJISUnhiSeewMPDA4AePXqw\nc+dODh8+jL29PVlZWZw9exZ/f38+//zzFu3bsWMH586d4+LFiwwePJhhw4aRk5PDBx98QHx8PP36\n9ePUqVNkZGQwbtw4/Pz82LZtGydOnECn03H27FlSU1MZOXIka9asobi4mIyMDAIDA9mwYYPWVyNH\njiQ0NJTY2Fit/VOnTsXf3x9bW1uGDBlCdHQ0sbGxHDp0iOnTp9O3b9+O+icjOogsBy2EEF2UTAEJ\nIUQXJQVACCG6KCkAQgjRRUkBEEKILkoKgBBCdFFSAIQQoov6fx0PtU0bFRiqAAAAAElFTkSuQmCC\n"
}
],
"prompt_number": 14
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment