|
2 | 2 | "cells": [
|
3 | 3 | {
|
4 | 4 | "cell_type": "code",
|
5 |
| - "execution_count": 5, |
| 5 | + "execution_count": 1, |
6 | 6 | "metadata": {},
|
7 | 7 | "outputs": [
|
8 | 8 | {
|
|
12 | 12 | "<IPython.core.display.Image object>"
|
13 | 13 | ]
|
14 | 14 | },
|
15 |
| - "execution_count": 5, |
| 15 | + "execution_count": 1, |
16 | 16 | "metadata": {
|
17 | 17 | "image/png": {
|
18 | 18 | "width": 200
|
|
126 | 126 | },
|
127 | 127 | {
|
128 | 128 | "cell_type": "code",
|
129 |
| - "execution_count": 6, |
| 129 | + "execution_count": 7, |
130 | 130 | "metadata": {},
|
131 | 131 | "outputs": [
|
132 | 132 | {
|
|
138 | 138 | "(k + 5)/(n + 10)"
|
139 | 139 | ]
|
140 | 140 | },
|
141 |
| - "execution_count": 6, |
| 141 | + "execution_count": 7, |
142 | 142 | "metadata": {},
|
143 | 143 | "output_type": "execute_result"
|
144 | 144 | }
|
145 | 145 | ],
|
146 | 146 | "source": [
|
147 |
| - ">>> import sympy\n", |
148 |
| - ">>> from sympy import stats as st\n", |
149 |
| - ">>> from sympy.abc import p,k,n\n", |
| 147 | + "import numpy as np\n", |
| 148 | + "import sympy\n", |
| 149 | + "from sympy import stats as st\n", |
| 150 | + "from sympy.abc import p,k,n\n", |
150 | 151 | "# setup objective function using sympy.log\n",
|
151 |
| - ">>> obj=sympy.expand_log(sympy.log(p**k*(1-p)**(n-k)*\n", |
| 152 | + "obj=sympy.expand_log(sympy.log(p**k*(1-p)**(n-k)*\n", |
152 | 153 | " st.density(st.Beta('p',6,6))(p)))\n",
|
153 | 154 | "# use calculus to maximize objective\n",
|
154 |
| - ">>> sol=sympy.solve(sympy.simplify(sympy.diff(obj,p)),p)[0]\n", |
155 |
| - ">>> sol\n", |
156 |
| - "(k + 5)/(n + 10)" |
| 155 | + "sol=sympy.solve(sympy.simplify(sympy.diff(obj,p)),p)[0]\n", |
| 156 | + "sol" |
157 | 157 | ]
|
158 | 158 | },
|
159 | 159 | {
|
|
326 | 326 | },
|
327 | 327 | {
|
328 | 328 | "cell_type": "code",
|
329 |
| - "execution_count": 7, |
| 329 | + "execution_count": 3, |
330 | 330 | "metadata": {},
|
331 | 331 | "outputs": [],
|
332 | 332 | "source": [
|
|
352 | 352 | },
|
353 | 353 | {
|
354 | 354 | "cell_type": "code",
|
355 |
| - "execution_count": 8, |
| 355 | + "execution_count": 4, |
356 | 356 | "metadata": {},
|
357 |
| - "outputs": [ |
358 |
| - { |
359 |
| - "ename": "NameError", |
360 |
| - "evalue": "name 'linspace' is not defined", |
361 |
| - "output_type": "error", |
362 |
| - "traceback": [ |
363 |
| - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
364 |
| - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", |
365 |
| - "\u001b[0;32m<ipython-input-8-9952eade6718>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mpvals\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlinspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mmxvals\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mposteriors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpvals\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msympy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlambdify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpvals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'k'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mmxval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfminbound\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msympy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlambdify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
366 |
| - "\u001b[0;31mNameError\u001b[0m: name 'linspace' is not defined" |
367 |
| - ] |
368 |
| - } |
369 |
| - ], |
| 357 | + "outputs": [], |
370 | 358 | "source": [
|
371 |
| - "pvals = linspace(0,1,100)\n", |
| 359 | + "from matplotlib.pylab import subplots\n", |
| 360 | + "from scipy.optimize import fminbound\n", |
| 361 | + "\n", |
| 362 | + "fig,ax = subplots(4,4,sharex=True,\n", |
| 363 | + " subplot_kw={\n", |
| 364 | + " 'yticks':[],\n", |
| 365 | + " 'xticks':[0,0.5,1],\n", |
| 366 | + " 'xticklabels':[0,0.5,1]\n", |
| 367 | + " }\n", |
| 368 | + " )\n", |
| 369 | + "fig.set_size_inches((8,8))\n", |
| 370 | + "\n", |
| 371 | + "pvals = np.linspace(0,1,100)\n", |
372 | 372 | "mxvals = []\n",
|
373 | 373 | "for i,j in zip(ax.flat,posteriors):\n",
|
374 | 374 | " i.plot(pvals,sympy.lambdify(p,j)(pvals),color='k')\n",
|
|
0 commit comments