diff --git a/CNAME b/CNAME
new file mode 100644
index 00000000..e69de29b
diff --git a/Chapter2_MorePyMC/MorePyMC.ipynb b/Chapter2_MorePyMC/MorePyMC.ipynb
index 20eef7f1..a3458fdd 100644
--- a/Chapter2_MorePyMC/MorePyMC.ipynb
+++ b/Chapter2_MorePyMC/MorePyMC.ipynb
@@ -860,7 +860,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 5
+ "prompt_number": 3
},
{
"cell_type": "markdown",
@@ -878,7 +878,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 6
+ "prompt_number": 4
},
{
"cell_type": "markdown",
@@ -901,19 +901,19 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "[False False False True False True False True True False True True\n",
- " True False False True True True True False False True True False\n",
- " True True True False False True True True True False True True\n",
- " False False False False False False True True False True True False\n",
- " True False True True True True True False False True True False\n",
- " True False True False True False False True True False True False\n",
- " True True False True True True False False True True False True\n",
- " False True False True True False False False True False True False\n",
- " False False True False]\n"
+ "[False True True False True True False True True True True True\n",
+ " False True True True False True False True True False False True\n",
+ " True False True False True False False False False False True False\n",
+ " True False True False False True True False True False False False\n",
+ " False False True False False True True True True True False False\n",
+ " False True True False True False True False True True True True\n",
+ " False True False True False True True False True True True False\n",
+ " False True True False False True True True False False False True\n",
+ " True True False False]\n"
]
}
],
- "prompt_number": 7
+ "prompt_number": 5
},
{
"cell_type": "markdown",
@@ -931,7 +931,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 8
+ "prompt_number": 6
},
{
"cell_type": "markdown",
@@ -955,7 +955,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 9
+ "prompt_number": 7
},
{
"cell_type": "markdown",
@@ -975,13 +975,13 @@
"outputs": [
{
"output_type": "pyout",
- "prompt_number": 10,
+ "prompt_number": 8,
"text": [
- "0.54000000000000004"
+ "0.32000000000000001"
]
}
],
- "prompt_number": 10
+ "prompt_number": 8
},
{
"cell_type": "markdown",
@@ -1003,7 +1003,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 13
+ "prompt_number": 9
},
{
"cell_type": "markdown",
@@ -1021,7 +1021,7 @@
"\n",
"### To be explained in Chapter 3!\n",
"mcmc = mc.MCMC( model )\n",
- "mcmc.sample( 120000, 80000,4 )"
+ "mcmc.sample( 150000, 120000,4 )"
],
"language": "python",
"metadata": {},
@@ -1031,7 +1031,7 @@
"stream": "stdout",
"text": [
" \r",
- "[****************100%******************] 120000 of 120000 complete"
+ "[****************100%******************] 150000 of 150000 complete"
]
},
{
@@ -1049,11 +1049,16 @@
"collapsed": false,
"input": [
"figsize(12.5, 3 )\n",
+ "from scipy.stats.mstats import mquantiles\n",
+ "\n",
"p_trace = mcmc.trace(\"freq_cheating\")[:]\n",
+ "quantiles =mquantiles( p_trace, prob=[0.05, 0.95] )\n",
+ "\n",
+ "plt.title(\"Posterior distribution of frequency of cheaters\")\n",
"plt.hist( p_trace, histtype=\"stepfilled\" , normed = True, \n",
" alpha = 0.85, bins = 30, label = \"posterior distribution\",\n",
" color = \"#348ABD\")\n",
- "plt.vlines( [.05, .35], [0,0], [5,5], linestyles = \"--\" )\n",
+ "plt.vlines( quantiles, [0,0], [5,5], linestyles = \"--\" )\n",
"plt.xlim(0,1)\n",
"plt.legend();"
],
@@ -1062,16 +1067,16 @@
"outputs": [
{
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAtgAAADFCAYAAABuBIVpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X90FPW9//FXCEkgICELFAJk+KEIUuJCLhVpgz9CVYJf\nsBZsG/RWMUIVpOppT9lKe+69tlcJ99gqknP19qqVCqYVtVoroRpBb0IVbYIoKijCJkCCJCyGhJAf\nm/3+4WELQrIzYXdmd/N8nOM5Drsz897wAt6ZvOczCYFAICAAAAAAYdHL6QIAAACAeEKDDQAAAIQR\nDTYAAAAQRjTYAAAAQBjRYAMAAABhRIMNAAAAhFFvM28aPXq0BgwYoMTERCUlJWnbtm2RrgsAAACI\nSaYa7ISEBG3ZskUulyvS9QAAAAAxzfSICM+jAQAAAEJLMPMkx7FjxyotLU2JiYn60Y9+pEWLFgVf\nKy0tjWiBAAAAgFNmzpxpeR9TIyLl5eXKyMjQ4cOHddVVV2nChAmaMWNG8PXs7GzLJ0bPVFhYqOXL\nlztdBmIAWYEV5AVmkRVYUVFR0a39TI2IZGRkSJKGDBmi66+/npscAQAAgE6EbLCPHz+uY8eOSZKa\nmpr0t7/9TVlZWREvDPGpqqrK6RIQI8gKrCAvMIuswA4hR0QOHTqk66+/XpLU3t6uG2+8UVdffXXE\nC0N8mjRpktMlIEaQFVhBXmAWWYEdTN3k2JXS0tKomMH2er3y+XwyDIPlBIFuqK+vV3V1tVwulwzD\ncLocAAAcV1FREbmbHGNBYWGhiouLVVRUpPz8fKfLAWJOSUmJli1bpgULFmjNmjVOlwMgzrS2tqqu\nrk7Sl8/XAKJBIBBQSkqKBg0aFNbjxk2DjdhQVlamnJwcp8tADCArsIK8RLfW1lYdOnRII0aMUK9e\nph/BAdiivr5ejY2N6t+/f9iOScoBAEBE1dXV0VwjarlcLjU0NIT1mCQdtuIKE8wiK7CCvEQ/mmtE\nq0iMLJF2AAAQUcxcI9qFO6Nx02AbhiG326309HSnS0EXysrKnC4BnXC5XHK73crMzHS6FElkBdaQ\nFwDRJG4abI/Ho82bN2vWrFlOlwLEpLy8PG3evJlHCANAlPjtb3+ru+66K2LHnzNnjv7whz9Ikp59\n9lnNnz8/bMf+5je/qa1bt0r6cqW322+/PWzHjvTXJRxYRQS2Yk4SZpEVWEFeYk9NQ4sON7VG7PhD\n+iUrY0BKxI4fytKlSzVixAjde++93T7GPffcE8aKzpSQkBAcjbjhhht0ww03hNzH7Oc62Vyfq7Ky\nMt1+++364IMPgr8W6a9LONBgAwAA2x1uatVDZdURO/7dOZmONtjnyu/3KzExsVv7tre3q3dvZ1o8\nJ88dTeJmRASxgTlJmEVWYAV5wblwu9166KGHNH36dI0dO1bLli1TS0tL8PW1a9dq6tSpOv/883Xj\njTeqtrY2+NqKFSs0fvx4jRo1Sjk5Ofr444/11FNPacOGDVq9erUMw9CNN94oSaqpqdHNN9+sCy+8\nUFOmTNH//M//BI9TWFioW265RbfffrtGjRql9evXnzFasXHjRk2fPl1jxozR3LlztXv37tM+w+rV\nq5WTkyPDMNTR0XHG59y8ebOmTZum0aNHa/ny5Tr1Yd7r16/X7NmzJX358BUrn+ur5/b7/XK73Xrz\nzTeDx29paVFBQYFGjRqlK6+8Ujt37gy+NmjQIO3bty+4vXTpUt1///06fvy4vve976m2tlaGYWjU\nqFGqra21/HUpKirSjBkzNHr0aBUUFJz2exspNNgAAKDH27Bhg5577jlVVFTo008/1YMPPihJevPN\nN/WrX/1KTz75pD766CNlZmbqtttukySVlpbq73//u9555x15vV49+eSTSk9P180336wbbrhBd911\nl6qqqrRu3Tp1dHRowYIFysrK0ocffqg///nPevTRR/X6668Ha9i4caOuu+46eb3eM8Y1Pv30Uy1e\nvFgrV67Up59+qquuukoLFixQe3t78D3PP/+8/vSnP2nv3r1nLItYX1+vW265Rb/4xS+0Z88ejR49\nWm+//fZZvxavv/666c91tnMnJiaesSrHK6+8ou985zv67LPPNH/+fN10003y+/1nPf/J0ZXU1FQ9\n++yzGjZsmKqqquT1ejVs2DBLX5eEhAS9+OKL2rBhg7Zv364PP/xQzzzzzFnPG05x02B7vV5t375d\nR44ccboUdIE5yehVX1+v7du3q6qqyulSJJEVWENecC4SEhK0aNEiDR8+XAMHDtRPfvITPffcc5K+\nbLxvuukmZWVlKTk5Wb/85S/1zjvvaP/+/UpOTlZjY6N2796tjo4OjRs3TkOHDg0e99QrxBUVFaqv\nr9dPf/pT9e7dW6NGjdK//uu/6oUXXgi+55JLLlFeXp4kqU+fPqfV+MILL+jqq6/W5ZdfrsTERN15\n5506ceKEtm3bFvwMixcv1vDhw5WScuZozKuvvqoJEyZozpw5SkxM1B133KGvfe1rZ/16JCUlmf5c\nZs4tSZMnTw6ee8mSJWppadG777571veeeo6vnuurQn1dJGnx4sUaOnSoBg4cqGuuuUbvv/9+l8cM\nh7hpsAsLC5Wbm6tNmzY5XQoQk0pKSpSbm6tVq1Y5XQoA2G7EiBHB/x85cmRwDKS2tva05Uv79esn\nl8ulmpoazZgxQ7fddpt+9rOfafz48brnnnt07Nixsx5///79qq2t1ZgxY4L/PfTQQzp8+HDwPcOH\nD++0vtraWo0cOTK4nZCQoOHDh6umpuasn+Fs+3/1+J29/7LLLjP9ucycWzr9s52t9u4y83U59RuJ\nvn37qqmp6ZzPG0rcNNiIDcxJwiyyAivIC87V/v37T/v/jIwMSQqOJ5zU1NSkI0eOBF9fvHhxcKRi\nz549WrNmjaQzH1wyYsQIjRo1Snv37g3+5/V6VVxcHHxPVw87ycjIUHX1P28KDQQCOnjwYLCOUPsP\nGzZMBw4cOG3/U7e/yuznMnNuSaedq6Oj47TaU1NT1dzcHHy9trY2eLxQxzXzdXECDTYAAOjRAoGA\nHn/8cR08eFA+n08PPvigrr/+eknSvHnztH79en3wwQdqaWnRr3/9a02dOlUjR45UZWWl3n33XbW1\ntalv375KSUkJzj4PGTLktBv3/uVf/kX9+/fX6tWr1dzcLL/fr48++kiVlZWmarzuuuv06quv6s03\n31RbW5uKioqUkpKiSy65xNT+V199tXbt2qWXX35Z7e3teuyxx/T555+f9b1WPpdZ7733XvDcjz76\nqFJSUjR16lRJ0qRJk/Tss8/K7/cH59pPGjJkiHw+nxoaGs563HP9ukQK66jAVsxJwiyyAivIS+wZ\n0i9Zd+dE7smxQ/olm35vQkKC5s+fr3nz5qm2tlbXXnutfvKTn0iSLr/8ct177726+eabdfToUU2b\nNk3/+7//K0k6duyYVqxYIa/Xq5SUFM2cOVPLli2TJN10001auHChxowZoxkzZmjt2rV65pln9Mtf\n/lLZ2dlqaWnRuHHjtGLFitPqOFttkjRu3Dg9+uijWr58uWpqanTxxRdr/fr1ppfEc7lceuKJJ/Tz\nn/9cd955p77//e/r0ksvPe08J89l9XOZMXv2bL3wwgtaunSpxo4dq7Vr1waXIXzggQe0ZMkSPf74\n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\n"
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAtgAAADRCAYAAAD2Q8XkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4VHX2P/D3TPpkCB0CCYGEiSAtISAEpFeJDzZgVUAQ\nAyiiBkRFVL4org3XBSIofi0sLMKqoMBXArsQKQYwlADSE0oKJZFqgJA2Ob8/+GWWSZs7k8mdkvfr\neXj0ztxy5s7hw8nNuZ+rEREBERERERHZhdbRARARERERuRMW2EREREREdsQCm4iIiIjIjlhgExER\nERHZEQtsIiIiIiI7YoFNRERERGRHLLCJ3FC/fv0wefJk1Y63bds2aLVaXLhwocJle9NqtVi5cmWl\ny/aUnp4OrVaLXbt21cj+rVVcXIxnnnkGjRo1glarxY4dOypcLysrCwMHDoRer4eHh4fKUbqvTz/9\nFMHBwfDw8MDcuXNt2kdN5isROQcW2EQWPP3009BqtdBqtfDy8kKrVq0wZcoUXL161S77T0pKglar\nRWZmpl32BwBr167F3//+d7vtz1r3338/srOz0axZM0XrT5w4Ef3791e8/+zsbIwYMcLW8CplMBjw\nzjvvmL0WEhKC7OxsdOvWze7Hs8WaNWuwatUq/Pzzz8jOzkaPHj0qXO/999/H5cuXcejQIVy8eFHl\nKN3ThQsXMG3aNLz55pu4cOECZsyY4eiQqlQTYwsRKePp6ACIXEGfPn3w/fffo7i4GPv27cOkSZOQ\nlZWFn3/+2W7HsMcznwoLC+Ht7Y169erZbV+28PLyQpMmTaodQ1mlMdXEvgFAo9GUe02r1dbY8WyR\nlpaGoKAgREdHW1zvvvvuQ+vWrStdpzrfcW105swZiAiGDx+Opk2bOjocxew5thCRQkJEVRo/frwM\nGjTI7LX33ntPPDw8JD8/X0pKSuTjjz+W0NBQ8fb2ltatW8uCBQvM1l+7dq1ERkaKTqeTevXqSbdu\n3eTAgQNy9uxZ0Wg0Zn/69+9v2m7VqlUSEREhvr6+0qpVK3n55Zfl1q1bpvf79u0rsbGx8tZbb0lg\nYKA0a9bM9PrEiRNN6xUWFsrMmTMlKChIvL29pV27drJy5UqzGDUajcTHx8uTTz4pdevWlSeeeKLS\ncxIfHy9BQUGi0+lk6NChsmzZMtFoNHL+/HkREdm6davZcmFhoUyfPl2Cg4PFx8dHmjVrZtr/nDlz\nyp2DZcuWVRmTRqORFStWmMW+cOFCeeyxx8Tf31+CgoJk4cKF5T7ft99+a/bawIED5emnnzads7Jx\nZGRkmL6jnTt3mrY7ceKExMTEiF6vF71eL8OHD5dTp06Z3l+6dKl4enrKzp07pXPnzqLT6aRLly6y\nd+/eSs9pqapyqWyMoaGhFe6j7OeYMGFClefzP//5j/Ts2VP8/PwkKChIJkyYIFeuXDHtr6SkRN56\n6y1p3Lix6PV6efzxx+Xvf/+7eHp6mtaZM2eOGAwGszh+/fVX03kstW/fPhk8eLDo9Xpp3LixPPbY\nY2bvl+5n3bp10qZNG/H395d+/fpJWlqa2b737dsnQ4cOlYCAANHr9dKtWzdJTk6W06dPi0ajkV27\ndpmtv337dvHw8JDMzMxKz/2GDRskKipKfHx8pEmTJvL888+b/r5VlKd3x323oqIiefvttyUsLEx8\nfHwkKChIXnzxRbPv57PPPpOxY8dKnTp1JDg4WD744AOzfRQWFsqcOXMkNDRUfH19pX379vLFF1+Y\nrbNgwQKJjIwUvV4vgYGB8sQTT8jFixdFRGpsbKlsLCMicyywiSwYP368DB482Oy1Tz75RDQajdy8\neVMWLVokfn5+8uWXX8qpU6dkyZIl4uvrK19//bWIiFy8eFG8vLzk448/lvT0dDlx4oSsWrVKDh8+\nLEajUdavXy8ajUb27dsnOTk5cu3aNRG5U6TVr19fVqxYIWfPnpUdO3ZIp06d5KmnnjLF0bdvX6lT\np45MmTJFjh8/LkeOHBERkX79+smkSZNM673yyivSsGFDWb16taSlpcn7778vWq1WEhMTTetoNBpp\n2LChLF68WM6cOWNWMN5t7dq14unpKfPnz5e0tDT5+uuvpUmTJqLVaistsD/55BMJDg6W7du3S1ZW\nluzdu9dUAN+8eVPGjBkj999/v+Tk5EhOTo7k5+dXGVPZYlmj0UiDBg1k0aJFkpaWJgsXLhRPT09Z\nt26d2TplC+xBgwaZis+rV69KaGiovPrqq6Y4jEZjuQI7Ly9PQkJCZNCgQZKSkiL79++X/v37i8Fg\nkMLCQtN3p9VqpW/fvpKUlCQnTpyQYcOGSWhoqBQXF1d4XkXEYi5dvXpVXnnlFQkNDZWcnBy5fPly\nhfvJzs6Wnj17ytixYyUnJ0dyc3MrPZ+JiYmi0+lk0aJFcurUKdm7d6/0799f+vbta9rfggULxN/f\n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\nm4iIiIjIjv4ff4RvwocEZQ4AAAAASUVORK5CYII=\n"
}
],
- "prompt_number": 17
+ "prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "With regards to the above plot, we are still pretty uncertain about what the true frequency of cheaters might be, but we have narrowed it down to a range between 0.05 to 0.35 (marked by the dashed lines). This is pretty good, as *a priori* we had no idea how many students might have cheated (hence the uniform distribution for our prior). On the other hand, it is also pretty bad since there is a .3 length window the true value most likely lives in. Have we even gained anything, or are we still too uncertain about the true frequency? \n",
+ "With regards to the above plot, we are still pretty uncertain about what the true frequency of cheaters might be, but we have narrowed the true frequency down to a range between 0.05 to 0.45 (marked by the dashed lines). This is pretty good, as *a priori* we had no idea how many students might have cheated (hence the uniform distribution for our prior). On the other hand, it is also pretty bad since there is a .4 length window the true value most likely lives in. Have we even gained anything, or are we still too uncertain about the true frequency? \n",
"\n",
"I would argue, yes, we have discovered something. It is implausible, according to our posterior, that there are *no cheaters*, i.e. the posterior assigns low probability to $p=0$. Since we started with an uniform prior, treating all values of $p$ as equally plausible, but the data ruled out $p=0$ as a possibility, we can be confident that there were cheaters. \n",
"\n",
@@ -1109,7 +1114,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 18
+ "prompt_number": 17
},
{
"cell_type": "markdown",
@@ -1132,7 +1137,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 19
+ "prompt_number": 18
},
{
"cell_type": "markdown",
@@ -1170,7 +1175,7 @@
]
}
],
- "prompt_number": 22
+ "prompt_number": 19
},
{
"cell_type": "code",
@@ -1178,10 +1183,13 @@
"input": [
"figsize(12.5, 3 )\n",
"p_trace = mcmc.trace(\"freq_cheating\")[:]\n",
+ "quantiles =mquantiles( p_trace, prob=[0.05, 0.95] )\n",
+ "\n",
+ "plt.title(\"Posterior distribution of frequency of cheaters\")\n",
"plt.hist( p_trace, histtype=\"stepfilled\" , normed = True, \n",
" alpha = 0.85, bins = 30, label = \"posterior distribution\",\n",
" color = \"#348ABD\")\n",
- "plt.vlines( [.05, .35], [0,0], [5,5], linestyles = \"--\" )\n",
+ "plt.vlines( quantiles, [0,0], [5,5], linestyles = \"--\" )\n",
"plt.xlim(0,1)\n",
"plt.legend();"
],
@@ -1190,10 +1198,10 @@
"outputs": [
{
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAtgAAADFCAYAAABuBIVpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt0VPW99/FPuEqAxAyihJDNTeQicUKkohRUwlIZXGAV\nPC1ovTRgFaTVp2cdptI+5zk9fdBwlqeWklXtOcqRCtJKa71BUo1QVkIBNQhUuQhCMkBCyTAQSCCX\nyTx/+DAVhczeYWbvmcn7tVbWYpPZe38TPsCXH9/57ZRQKBQSAAAAgKjo5HQBAAAAQDKhwQYAAACi\niAYbAAAAiCIabAAAACCKaLABAACAKKLBBgAAAKKoi5kXDRo0SGlpaercubO6du2qrVu3xrouAAAA\nICGZarBTUlK0YcMGuVyuWNcDAAAAJDTTIyI8jwYAAACILMXMkxyHDBmi9PR0de7cWd///vc1d+7c\n8OdKS0tjWiAAAADglMmTJ1s+x9SISHl5uTIzM3Xs2DHddtttGjFihCZOnBj+fF5enuUbo2MqLCzU\nwoULnS4DCYCswAryArPICqyoqKho13mmRkQyMzMlSX379tXdd9/NmxwBAACAi4jYYDc0NOjUqVOS\npPr6ev35z39WTk5OzAtDcqqqqnK6BCQIsgIryAvMIiuwQ8QRkaNHj+ruu++WJLW0tOi+++7T7bff\nHvPCkJxGjx7tdAlIEGQFVpAXmEVWYAdTb3JsS2lpaVzMYFdWVioQCMgwDLYTBNrB7/fL5/PJ5XLJ\nMAynywEAwHEVFRWxe5NjIigsLNTq1atVVFSkWbNmOV0OkHCKi4u1YMECzZ49W8uWLXO6HABJpqmp\nSbW1tZK+eL4GEA9CoZC6d++uPn36RPW6SdNgIzGUlZVpwoQJTpeBBEBWYAV5iW9NTU06evSosrKy\n1KmT6UdwALbw+/06ffq0evXqFbVrknIAABBTtbW1NNeIWy6XS3V1dVG9JkmHrVhhgllkBVaQl/hH\nc414FYuRJdIOAABiiplrxLtoZzRpGmzDMOR2u5WRkeF0KWhDWVmZ0yXgIlwul9xut7Kzs50uRRJZ\ngTXkBUA8SZoG2+v1av369ZoyZYrTpQAJyePxaP369TxCGADixC9+8Qv98Ic/jNn1p02bpt/+9reS\npNdee00zZ86M2rXHjx+vTZs2Sfpip7dHH300ateO9fclGthFBLZiThJmkRVYQV4ST3Vdo47VN8Xs\n+n17dlNmWveYXT+S+fPnKysrS0899VS7r/Hkk09GsaKvS0lJCY9G3Hvvvbr33nsjnmP26zrXXF+q\nsrIyPfroo/rb3/4W/rlYf1+igQYbAADY7lh9k54r88Xs+k9MyHa0wb5UwWBQnTt3bte5LS0t6tLF\nmRbPyXvHk6QZEUFiYE4SZpEVWEFecCncbreee+453XTTTRoyZIgWLFigxsbG8OdXrFihsWPHaujQ\nobrvvvtUU1MT/tyiRYs0fPhwDRw4UBMmTNDu3bv18ssva82aNVq6dKkMw9B9990nSaqurtaDDz6o\na665RmPGjNFvfvOb8HUKCwv10EMP6dFHH9XAgQO1atWqr41WrFu3TjfddJMGDx6s6dOna+/eved9\nDUuXLtWECRNkGIZaW1u/9nWuX79e48aN06BBg7Rw4UJ9+WHeq1at0tSpUyV98fAVK1/XV+8dDAbl\ndru1cePG8PUbGxtVUFCggQMHatKkSfrkk0/Cn+vTp48OHjwYPp4/f74WL16shoYG/dM//ZNqampk\nGIYGDhyompoay9+XoqIiTZw4UYMGDVJBQcF5v7axQoMNS2rqGuU7cdbSR01d7IMMAMClWLNmjf7w\nhz+ooqJC+/bt07PPPitJ2rhxo/793/9dy5cv165du5Sdna05c+ZIkkpLS/XXv/5VH3zwgSorK7V8\n+XJlZGTowQcf1L333qsf/vCHqqqq0sqVK9Xa2qrZs2crJydHn376qf70pz/p+eef1/vvvx+uYd26\ndbrrrrtUWVn5tXGNffv26ZFHHtEzzzyjffv26bbbbtPs2bPV0tISfs0f//hH/f73v9eBAwe+ti2i\n3+/XQw89pJ/85Cfav3+/Bg0apC1btlzwe/H++++b/roudO/OnTt/bVeOtWvX6lvf+pY+//xzzZw5\nU/fff7+CweAF739udCU1NVWvvfaa+vXrp6qqKlVWVqpfv36Wvi8pKSl64403tGbNGn388cf69NNP\n9eqrr17wvtGUNGv4lZWVCgQCMgxDLpfL6XKS1l8OBFSy97ilc+64xqVvu7/4DcGcZPzy+/3y+Xxy\nuVwyDMPpcsgKLCEvuBQpKSmaO3eu+vfvL0n60Y9+pIULF+qpp57SmjVrdP/99ysnJ0eS9NOf/lRD\nhgzRoUOH1K1bN50+fVp79+5VXl6ehg0bdt51v7xCXFFRIb/fr3/+53+WJA0cOFDf/e539frrrys/\nP1+SdMMNN8jj8UiSLrvssvOu9frrr+v222/XLbfcIkl6/PHH9cILL2jr1q0aP368UlJS9Mgjj4S/\nhq969913NWLECE2bNk2S9Nhjj6moqOiCr+3atavpr+vc96+te0tSbm5u+N7z5s1TUVGRPvzwQ40b\nN+6Crz93j6/e66sifV8k6ZFHHtFVV10lSbrjjju0c+fONq8ZDUmzgl1YWKj8/HyVlJQ4XQqQkIqL\ni5Wfn68lS5Y4XQoA2C4rKyv84wEDBoTHQGpqas7bvrRnz55yuVyqrq7WxIkTNWfOHP3Lv/yLhg8f\nrieffFKnTp264PUPHTqkmpoaDR48OPzx3HPP6dixY+HXtNWg1tTUaMCAAeHjlJQU9e/fX9XV1Rf8\nGi50/levf7HX33zzzaa/LjP3ls7/2i5Ue3uZ+b5ceeWV4R/36NFD9fX1l3zfSJKmwUZiYE4SZpEV\nWEFecKkOHTp03o8zMzMlKTyecE59fb2OHz8e/vwjjzwSHqnYv3+/li1bJunrDy7JysrSwIEDdeDA\ngfBHZWWlVq9eHX5NWw87yczMlM/3jzeFhkIhHTlyJFxHpPP79eunw4cPn3f+l4+/yuzXZebeks67\nV2tr63m1p6am6syZM+HP19TUhK8X6bpmvi9OoMFGzG31ndKLWw/rxa2HtXZ3bfjHkT4+q21wunQA\nQAcQCoX04osv6siRIwoEAnr22Wd19913S5JmzJihVatW6W9/+5saGxv185//XGPHjtWAAQO0bds2\nffjhh2publaPHj3UvXv38Oxz3759z3vj3vXXX69evXpp6dKlOnPmjILBoHbt2qVt27aZqvGuu+7S\nu+++q40bN6q5uVlFRUXq3r27brjhBlPn33777dqzZ4/efvtttbS06IUXXtDf//73C77Wytdl1vbt\n28P3fv7559W9e3eNHTtWkjR69Gi99tprCgaD4bn2c/r27atAIKC6uroLXvdSvy+xkjQz2IhfgTPN\nKq88+cVB+jWqOffjCK4fkBbDqhDvmKmFFeQl8fTt2U1PTIjdk2P79uxm+rUpKSmaOXOmZsyYoZqa\nGt1555360Y9+JEm65ZZb9NRTT+nBBx/UiRMnNG7cOP33f/+3JOnUqVNatGiRKisr1b17d02ePFkL\nFiyQJN1///16+OGHNXjwYE2cOFErVqzQq6++qp/+9KfKy8tTY2Ojhg0bpkWLFp1Xx4Vqk6Rhw4bp\n+eef18KFC1VdXa3rrrtOq1atMr0lnsvl0ksvvaQf//jHevzxx/Xtb39bN95443n3OXcvq1+XGVOn\nTtXrr7+u+fPna8iQIVqxYkV4G8Knn35a8+bN04svvqipU6fqzjvvDJ93zTXXaMaMGcrLy1Nra2t4\nf+1L+b5E+7HoF7xHKNL0eASlpaXKy8uLVj3tNm/ePK1evVpFRUWaNWuW0+Ukrd9tr7H8Jsf2+sE3\ns5Xbv7ct94K0cuVKLViwQLNnzw7/VyAAREN1dbXj/2XfltzcXC1dulQ333yz06XAIRfLaEVFhSZP\nnmz5ekkzImIYhtxutzIyMpwuBW2o3WPuv8JgP5fLJbfbfd6beZzETC2sIC8A4knSjIh4vV55vV6n\nywASlsfjCW8PBQAA2i9pGmwkhiuGj4n5PaoCZ9XQfOHN6y/msi6dNMjVI0YVoT2YqYUV5AWX4uOP\nP3a6BCQZGmwknYrDdXpzV62lc24dcjkNNgAAiIqkmcFGYmAGG2YxUwsryEt8u8T9FICYi3ZGabAB\nAEBMde/eXX6/n0YbcamhoSG8ZWC0JM2ISGVlpQKBgAzDkMvlcrocXIQdM9hoH7/fL5/PJ5fLJcMw\nnC6HmVpYQl7iW58+fXT69Onw46vt2IcYMCMUCqlz587nPU49GpKmwS4sLGQfbOASFBcXsw82gJjp\n1auXevXq5XQZgC1MjYgEg0GNGTNG06ZNi3U9SHJWZrBZ4OjYmKmFFeQFZpEV2MHUCvYvf/lLjRo1\nSqdOnYp1PUDY5sqTOnyy0fJ5246cjkE1AAAA5kRssA8dOqS1a9dq0aJF+s///E87akISszKDvcVX\npy2+uhhWg3jGTC2sIC8wi6zADhEb7CeffFL/8R//obq6izc68+fPD78pKi0tTTk5OeEAn/uvmFgf\nn7N3716VlZXZfv+Ocrz3462q9Z0KN8rnRj4S/VhDJjny/Yy3Y0k6evRo+MdO18MxxxxzzDHHdh5L\nUnl5uaqqqiRJBQUFao+UUBt75rz99ttat26dioqKtGHDBj377LN66623zntNaWmp8vLy2nXzaHrm\nmWdUUlKihQsXasqUKU6Xk7R+t71GJXuPt/v82j3b4nInkVuHXK4Hru/vdBmOWrdunZYsWaIpU6Zo\n4cKFTpejsrJ//EMZiIS8wCyyAisqKio0efJky+d1aeuTmzZt0ptvvqm1a9fq7Nmzqqur0wMPPKAV\nK1a0u9BY8Xq98nq9TpcBJCyPxyOPx+N0GQAAJLw2dxFZvHixfD6fDhw4oNWrVys/Pz8um2skjnhc\nvUZ8YoUJVpAXmEVWYIc2V7C/io3hk8euo/V6a9cxy+f52rGrBwAAQEdiusG+5ZZbdMstt8SyFtio\nMdiq3ccabL9vvM5gI/4wJwkryAvMIiuwg6kHzQAAAAAwx9KISDyrrKxUIBCQYRhyuVxOl4OLYPU6\nfvn9fvl8PrlcrvC2m05ihQlWkBeYRVZgh6RZwS4sLFR+fr5KSkqcLgVISMXFxcrPz9eSJUucLgUA\ngISWNA02EkP4wS5ABF/e9B+IhLzALLICO9BgAwAAAFFEgw1bMYMNs5iThBXkBWaRFdiBBhsAAACI\noqRpsA3DkNvtVkZGhtOloA3MYMcvl8slt9ut7Oxsp0uRxJwkrCEvMIuswA5Js02f1+uV1+t1ugwg\nYXk8Hnk8HqfLAAAg4SXNCjYSAzPYMIs5SVhBXmAWWYEdaLABAACAKEqaEREkhto92+JyFfuTo/X6\nw86jls/L7d9bQ/ukxqAilJWVsdIE08gLzCIrsAMNNiDpWH2z3tntt3zeYFePGFQDAAASWdI02JWV\nlQoEAjIMQy6Xy+lycBHxuHqNL/j9fvl8PrlcLhmG4XQ5rDDBEvICs8gK7JA0M9iFhYXKz89XSUmJ\n06UACam4uFj5+flasmSJ06UAAJDQkmYFu6M6caZF26tPqaU1ZOm8qhNnY1RR2+J1BhvxhzlJWEFe\nYBZZgR1osBNcS2urfrf9qM62tDpdCgAAAJREIyJIDKxewyxWmGAFeYFZZAV2oMEGAAAAoihpGmzD\nMOR2u5WRkeF0KWhD7Z5tTpeAi3C5XHK73crOzna6FElfzEkCZpEXmEVWYIekmcH2er3yer1OlwEk\nLI/HI4/H43QZAAAkvKRZwUZiYAYbZjEnCSvIC8wiK7ADDTYAAAAQRTTYsBUz2DCLOUlYQV5gFlmB\nHSI22GfPntW4ceOUm5urUaNG6cc//rEddQEAAAAJKeKbHC+77DKtX79eqampamlp0YQJE+LyKUiV\nlZUKBAIyDEMul8vpcnARzGDHL7/fL5/PJ5fLJcMwnC4n7v6MQXwjLzCLrMAOpkZEUlNTJUlNTU0K\nBoNx2cAWFhYqPz9fJSUlTpcCJKTi4mLl5+dryZIlTpcCAEBCM7VNX2trq/Ly8rR//3499thjGjVq\n1Hmfnz9/fnjFKy0tTTk5OeF/IZ6bdYr18Tl79+49b4Xdrvs7dbzlr5v0991HlHZ1rqR/zDifWymO\nt+P97/1e6dnD4qaeSz3e/sFmNRxIjZs8XOqxJB09ejT8Yyfr+fLv7Xj5/nAcv8fkhWMr/cKXM+N0\nPRzH17EklZeXq6qqSpJUUFCg9kgJhUIhsy8+efKk7rjjDj3zzDO69dZbJUmlpaXKy8tr182jad68\neVq9erWKioo0a9Ysp8uxTW19k/73nz/X2ZZWp0sxpXbPtqQaE3l8/ADlZaU5XUZUrFy5UgsWLNDs\n2bO1bNkyp8tRWVn8jaIhfpEXmEVWYEVFRYUmT55s+TxLu4ikp6frzjvv1Icffmj5RoDEDDbM4y9A\nWEFeYBZZgR0iNti1tbU6ceKEJOnMmTN69913NWYMTRIAAABwIREb7OrqauXn5ys3N1fjxo3TtGnT\n2rVUHmuGYcjtdisjI8PpUmyV4nQBFrEPdvxyuVxyu93Kzs52uhRJ58/DAZGQF5hFVmCHLpFekJOT\no4qKCjtquSRer1der9fpMi7JR4fqdDBwxtI5zcGQmoKJMX+N+ObxeOTxeJwuAwCAhBexwYZ9Pjl6\nWhs+P+F0GTHFDDbMYk4SVpAXmEVWYAcelQ4AAABEEQ02bJVsM9gpks40By1/BFtN747ZYTEnCSvI\nC8wiK7ADIyLAJXj5o2r17NbZ0jmdO6Xo8fHZurJXtxhVBQAAnJQ0DXZlZaUCgYAMw3D8Ue6VgbM6\nYPHNiimS9vutnZOIkm0Gu64xqLrGoKVzOsfp1i9+v18+n08ulyv8ZFYnMScJK8gLzCIrsEPSNNiF\nhYVx8yRHf0OTVnxU7WgNgFXFxcVx9SRHAAASFTPYsFWyzWAjdpiThBXkBWaRFdiBBhsAAACIIhps\n2CrZZrARO8xJwgryArPICuxAgw0AAABEUdI02IZhyO12KyMjw+lS0AZmsOOXy+WS2+1Wdna206VI\nYk4S1pAXmEVWYIek2UXE6/XK6/U6XQaQsDwejzwej9NlAACQ8JJmBRuJgRlsmMWcJKwgLzCLrMAO\nNNgAAABAFNFgw1bMYMMs5iRhBXmBWWQFdqDBBgAAAKIoad7kWFlZqUAgIMMw5HK5nC4HF8EMdvzy\n+/3y+XxyuVwyDMPpcpiThCXkBWaRFdghaVawCwsLlZ+fr5KSEqdLUaeUFKdLQJxraQ3pWH2TpQ9/\nfXNMayouLlZ+fr6WLFkS0/sAAJDskmYFOxZq65v0573HFQyFLJ135GRjjCpKfLV7tnX4VexgSPo/\n736uThb/HXZjdroe+kb/2BQVh8rKylhpgmnkBWaRFdiBBrsNrSFp/f7jClrrr4GIWlqth6rF4j/0\nAACAM5JmRASJoaOvXsM8VphgBXmBWWQFdqDBBgAAAKIoaRpswzDkdruVkZHhdCloA/tgxy+XyyW3\n263s7GynS5HEXrWwhrzALLICOyTNDLbX65XX63W6DCBheTweeTwep8sAACDhJc0KNhIDM9gwizlJ\nWEFeYBZZgR0iNtg+n0+TJk3Stddeq9GjR2vp0qV21AUAAAAkpIgNdteuXfWLX/xCn3zyiTZv3qyi\noiLt2rXLjtqQhJjBhlnMScIK8gKzyArsELHB7tevn3JzcyVJvXr10siRI3XkyJGYFwYAAAAkIktv\ncjx48KC2bdumcePGnffz8+fPl2EYkqS0tDTl5OSEZ5zO/Usx1sfZ2dkKBAKqrq5W7969o3b9Y3u2\nqTX0j9nhcyuwHLfv+NzPxUs9iXYcy99Pfr9fb731ltLS0nTPPffE/H6RjidMmODo/TlOrGPywjHH\nHEfjWJLKy8tVVVUlSSooKFB7pIRC5h4Pd/r0ad166636yU9+om9961vhny8tLVVeXl67bh5N8+bN\n0+rVq1VUVKRZs2ZF5Zp/P92kRcX7eJIj4sL4gemac0NWzK6/cuVKLViwQLNnz9ayZctidh8AABJF\nRUWFJk+ebPk8U7uINDc3a8aMGbr//vvPa64Bq5jBhllfXk0AIiEvMIuswA5dIr0gFAqpoKBAo0aN\n0hNPPGFHTQAuoiXYKnP/5/QPKZ1S1KVTSmwKAgAAXxOxwS4vL9crr7yi6667TmPGfDEH+vTTT2vK\nlCkxLw7Jh32w2+/DQ3XynThr+bx7Rl8pd//eMagots7NxQFmkBeYRVZgh4gN9oQJE9Ta2mpHLQDa\n0BQMyXeysV3nAQAA+yTNkxwNw5Db7VZGRobTpaANzGDHL5fLJbfbrezsbKdLkcScJKwhLzCLrMAO\nEVewE4XX65XX63W6DCBheTweeTwep8sAACDhJc0KNhIDM9gwizlJWEFeYBZZgR1osAEAAIAoosGG\nrZjBhlnMScIK8gKzyArsQIMNAAAARFHSvMmxsrJSgUBAhmHI5XI5XQ4ughns+OX3++Xz+eRyuWQY\nhtPlMCcJS8gLzCIrsEPSrGAXFhYqPz9fJSUlTpcCJKTi4mLl5+dryZIlTpcCAEBCS5oGO5LTjS2W\nP3i4dPQxgw2zmJOEFeQFZpEV2CFpRkQieWtXrSoOn7J0TrA1JB6CBwAAACs6TINd3xSUv6HZ6TI6\nPGawYRZzkrCCvMAssgI7dJgGG+ioTp5t0X5/Q8TXHatvkiTV/f/XX9mrm3p3548IAACsSpq/PQ3D\nkNvtVkZGhtOloA21e7axim2zVR/XmHpddVWz0o3h2tfUS//3/YN6espQRxvssrIyVppgGnmBWWQF\ndkiaBtvr9crr9TpdBpCwMt0TlOnmLx0AAC5Vh9lFBPGB1WuYxQoTrCAvMIuswA402AAAAEAU0WDD\nVuyDDbPYqxZWkBeYRVZgBxpsAAAAIIqS5k2OlZWVCgQCMgxDLpfL6XJwEcxgx6/G0yd0xl+jbj3T\nlXpFptPlMCcJS8gLzCIrsEPSrGAXFhYqPz9fJSUlTpcCJKSaHeXasHiOdr+93OlSAABIaEnTYCMx\nMIMNs5iThBXkBWaRFdiBBhsAAACIIhps2IoZbJjFnCSsIC8wi6zADknzJkcA0bXPf0aVgbOWzunZ\nrbOu7dcrRhUBAJAYIjbY3/ve9/TOO+/oyiuv1M6dO+2oqV0Mw5Db7VZGRobTpaANtXu2sYodp7r1\nTFe6MVypffpJkl784Ijla1yf1TtqDXZZWRkrTTCNvMAssgI7RGywH374YS1YsEAPPPCAHfW0m9fr\nldfrdboMIGFluico081fOgAAXKqIDfbEiRN18OBBG0ox5/DJszpW32zpnE4p0t9PN8WoIljB6jXM\nYoUJVpAXmEVWYIeozGDPnz9fhmFIktLS0pSTkxMO8LntcKJ1vK50o9789Fi4UTu37RvHHHPs/PGB\nnR+orLUyZr//OeaYY4455jiWx5JUXl6uqqoqSVJBQYHaIyUUCoUivejgwYOaNm3aBWewS0tLlZeX\n166bt8cHvjr9evMh2+6H6GIGO7ldn9Vb88dnR+VazEnCCvICs8gKrKioqNDkyZMtn8c2fQAAAEAU\nJc02ffW1R9RcX6fUPpnq1ivd6XJwEaxex6/G0yd0xl+jbj3TlXpFptPlsMIES8gLzCIrsEPEFexZ\ns2Zp/Pjx2rt3r7Kzs7V8+XI76rJs91svacPiOarZucnpUoCEVLOjXBsWz9Hut+Pz9zgAAIkiYoP9\n6quv6siRI2psbJTP59PDDz9sR11IUufeFAdE8uU3nACRkBeYRVZgB8dGRI43NGtnzWnL5+3zN8Sg\nGgAAACA6HGuwm4OtevmjaqduD4cwgw2zmJOEFeQFZpEV2IFdRAAAAIAoSpoGO7VPptKN4eqamuZ0\nKWgDM9jxq1vPdKUbw5Xap5/TpUhiThLWkBeYRVZgh6TZpm/k9AKNnN6+p+0AkDLdE5Tp5r9OAQC4\nVEmzgo3EwAw2zGJOElaQF5hFVmAHGmwAAAAgipJmRASJoXbPNlaxk9hntQ1aWWF9d6Cx2Wka3rfn\neT9XVlbGShNMIy8wi6zADjTYAKKmrjGo0v0By+cNvSI1BtUAAOCMpGmw62uPqLm+Tql9MtWtV7rT\n5eAiWL2OX42nT+iMv0bdeqYr9YpMp8thhQmWkBeYRVZgh6SZwd791kvasHiOanZucroUICHV7CjX\nhsVztPvt5U6XAgBAQkuaBhuJgX2wcSHNwVYdPdV43sdbf17/tZ/76kdDU4vTpSNOsLcxzCIrsEPS\njIgASFzLP/z6GyNr9xzR6yf3t3nez+8YqtRu/DEGAIgvrGDDVsxgwyyyAiuYq4VZZAV2oMEGAAAA\noihpGuzUPplKN4ara2qa06WgDcxgx69uPdOVbgxXap9+TpciiazAGuZqYRZZgR2iMrxYd7ZZIYvn\nWH19JCOnF2jk9IIoXxXoODLdE5TpTqz/Oj3b3KpDJ89aOqeTUtQ/vXuMKgIAQEoJhUKX1OuWlpZq\nR2s/7ag+bem8YCikU43BS7k1AFg2+qpe+l83G06XAQBIABUVFZo8ebLl86Kygl3fFNSJs2yXBQAA\nALC/FWxVu2cbu0PAlFhlZf/xBv1my2HL531zULquvapX1OtBdJSVlbE7BEwhK7ADDTaADuVMc6s2\nV520fN7oq3rGoBoAQDJKmga7vvaImuvrlNonU916pTtdDi6C1ev41Xj6hM74a9StZ7pSr8h0uhyy\nAktYkYRZZAV2SJpt+na/9ZI2LJ6jmp2bnC4FSEg1O8q1YfEc7X57udOlxKVOnVKcLgEAkCCSZgUb\niYEZbJgVb1lZs+OoNuwPWD7vu3n9lJV+WQwqwpcxVwuzyArsQIMNW530fRZXTRPiV7xl5fiZFh0/\nY323pI0HTqh3d2t/1F5+WRdNGHy55Xt1ZDt37qRpgilkBXaI+Kd+cXGxnnjiCQWDQc2ZM0cLFy60\noy4kqeYz1vZLR8eVLFl597Pjls8Z2qcHDbZFdXV1TpeABEFWYIc2G+xgMKjHH39c7733nrKysvSN\nb3xD06e6AEWXAAAFzklEQVRP18iRI+2qDwA6nDPNrTp4/IyaW609B6xXt87KTOMplQDgtDYb7K1b\nt+rqq6/WoEGDJEnf+c539MYbb3ytwb6yVzcNzLA2Y9ivdzf16x29vwhaRw5Vp8C1mjhygHKv7Ru1\n6yK6jv0poLv49YlL2wLZOj78WuWOHBIXv0YdPSvba6yv4N+aAKveraGQWiz+w0GSQiGpe5eLvy+/\nqqrqUspCB0JWYIc2H5W+Zs0alZSU6L/+678kSa+88oq2bNmiX/3qV+HXlJaWxr5KAAAAwAFRf1R6\nSkrkbanac1MAAAAgWbW5D3ZWVpZ8Pl/42OfzacCAATEvCgAAAEhUbTbYY8eO1WeffaaDBw+qqalJ\nv/vd7zR9+nS7agMAAAASTpsjIl26dNGyZct0xx13KBgMqqCggB1EAAAAgDZEfFS6x+PRnj17tGzZ\nMr388ssaNmyYCgsLL/jaH/zgBxo2bJjcbre2bdsW9WKROIqLizVixIiL5mXlypVyu9267rrr9M1v\nflM7duxwoErEg0hZOeeDDz5Qly5d9Mc//tHG6hBvzORlw4YNGjNmjEaPHq1bb73V3gIRNyJlpba2\nVlOmTFFubq5Gjx6t//mf/7G/SMSF733ve7rqqquUk5Nz0ddY7nFDJrS0tISGDh0aOnDgQKipqSnk\ndrtDn3766Xmveeedd0IejycUCoVCmzdvDo0bN87MpZGEzORl06ZNoRMnToRCoVBo3bp15KWDMpOV\nc6+bNGlS6M477wytWbPGgUoRD8zkJRAIhEaNGhXy+XyhUCgUOnbsmBOlwmFmsvKv//qvIa/XGwqF\nvsiJy+UKNTc3O1EuHLZx48ZQRUVFaPTo0Rf8fHt63Igr2NL5+2F37do1vB/2l7355pt68MEHJUnj\nxo3TiRMndPToUTOXR5Ixk5ebbrpJ6enpkr7Iy6FDh5woFQ4zkxVJ+tWvfqWZM2eqb9+Ouy82zOVl\n1apVmjFjRvgN+VdccYUTpcJhZrKSmZkZfqpjXV2d+vTpoy5dIj7gGklo4sSJysjIuOjn29Pjmmqw\nDx8+rOzs7PDxgAEDdPjw4YivoWnqmMzk5ctefPFFTZ061Y7SEGfM/tnyxhtv6LHHHpNkbvtQJCcz\nefnss890/PhxTZo0SWPHjtVvf/tbu8tEHDCTlblz5+qTTz5R//795Xa79ctf/tLuMpEg2tPjmvqn\nmtm/0EJfeWYNfxF2TFZ+3devX6+XXnpJ5eXlMawI8cpMVp544gk988wzSklJUSgU+tqfM+g4zOSl\nublZFRUVKi0tVUNDg2666SbdeOONGjZsmA0VIl6YycrixYuVm5urDRs2aP/+/brtttu0fft29e7d\n24YKkWis9rimGmwz+2F/9TWHDh1SVlaWmcsjyZjdP33Hjh2aO3euiouL2/yvGSQvM1n56KOP9J3v\nfEfSF29KWrdunbp27cqWoR2QmbxkZ2friiuuUI8ePdSjRw/dfPPN2r59Ow12B2MmK5s2bdKiRYsk\nSUOHDtXgwYO1Z88ejR071tZaEf/a0+OaGhExsx/29OnTtWLFCknS5s2bdfnll+uqq66y+jUgCZjJ\nS1VVle655x698soruvrqqx2qFE4zk5XPP/9cBw4c0IEDBzRz5kz9+te/prnuoMzk5a677lJZWZmC\nwaAaGhq0ZcsWjRo1yqGK4RQzWRkxYoTee+89SdLRo0e1Z88eDRkyxIlyEefa0+OaWsG+2H7YL7zw\ngiTp+9//vqZOnaq1a9fq6quvVs+ePbV8+fJL/HKQqMzk5Wc/+5kCgUB4rrZr167aunWrk2XDAWay\nApxjJi8jRozQlClTdN1116lTp06aO3cuDXYHZCYrTz31lB5++GG53W61trZqyZIlcrlcDlcOJ8ya\nNUt/+ctfVFtbq+zsbP3bv/2bmpubJbW/x00JMdAIAAAARI2pEREAAAAA5tBgAwAAAFFEgw0AAABE\nEQ02AAAAEEU02AAAAEAU/T9jf5e6h6hy0gAAAABJRU5ErkJggg==\n"
+ "png": "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\npATLli1D3759ERERgZycHIt91td3S03fZUT0N85gE92ml156CXPnzkVERAQGDRqEn3/+GatXr0Zc\nXByAG4VeQkICRowYgdatWyMjIwOpqanmf/BDQ0Oh0Wjw3Xff4R//+Ac8PT3h7++PN998E5MmTULT\npk1x3333wcPDA2lpadi+fTtWr14N4MaMW02zqZWP+/j44JlnnsHChQvRsmVLdO3aFZs2bcLWrVvx\n008/2fx+586dizFjxqB3794YOXIkEhMTsX79+lpf89577yEwMBAGgwE+Pj7YuHEj3N3dcccddwAA\nwsPDsWnTJhw/fhytWrWCn5+fzUuCfffdd1i1ahWio6Oxfft2fPnll9i0aZP5+WHDhmH16tUYOHAg\nfH198eabb6K8vNzi/IWFhSExMRHZ2dnw9va2aFOoNHbsWLz++ut4+OGH8d5778FkMmHevHkICgrC\nww8/bFPMt7KWS7aoKTdu9frrryM6Ohpz587FY489hsaNGyMjIwObNm3CypUr4eXlhblz52LhwoXo\n2LEj+vTpg61btyIhIcFiP1FRUSguLsZ///d/Y+LEiUhJSakS98svv4zevXtj/PjxmD17Nlq0aIHM\nzExs2bIFs2fPNheP1rzwwgvo06cPxo0bh7lz56JJkyZISUlBcHCwefnCkJAQ3HPPPXj22WcxbNgw\ntGvXrtZ9Pv/884iMjMRzzz2HqVOnIjMzE7NmzcL48eMRFBQkKy7gxg+048aNw/Tp01FSUoK77roL\nV65cwb59+/DMM8/U+LqbPy+dTocnn3wSU6ZMweLFi3HXXXehqKgIv/32G/Ly8vDCCy8gIiICkiTh\nn//8J8aOHYvDhw/jjTfesNinvb9b9u3bh59++qnG7zIiuoly7d5EzumJJ56osorIrSqXVvPw8BDt\n27e3WDHg2LFjIiYmRrRu3Vp4enqK0NBQ8cILL4jy8nLzmMWLF4vAwEDh5uZmsZTW5s2bRd++fYWP\nj4/w8/MT3bp1E2+88Yb5+eouZKvu8fLycvHiiy+al+nr3Lmz2Lhxo8VrqrsIsCbLly8XgYGBwtvb\nWwwfPlysXbu2yioiN29/8MEHokePHhZLqm3dutW8vytXroiYmBjh7+9fZZm+6mKq7iLH5cuXiwce\neED4+PiItm3biqVLl1q8JicnR8TGxgo/Pz8REhIiVq9eXeUix+TkZBEZGSm8vb2FRqMxL9On0Wgs\n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\n"
}
],
- "prompt_number": 23
+ "prompt_number": 20
},
{
"cell_type": "markdown",
@@ -1609,6 +1617,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
+ "Notice that neither distribution has postive probability at 0. What would it mean if a variable assigned positive probability at 0? If the coefficient *was* zero, then it would not influence the probability of defect. The larger the probability at 0, the larger the probability the variable has no effect on the outcome. In this example though, both variables are significant to the outcome.\n",
+ "\n",
"Regarding the spread of the data, we are very uncertain about what the true parameters might be (though considering the low sample size and the large overlap of defects-to-nondefects this behaviour is perhaps expected). \n",
"\n",
"Next, let's look at the *expected probability* for a specific value of the temperature. That is, we average over all samples from the posterior to get a likely value for $p(t_i)$."
diff --git a/Chapter4_TheGreatestTheoremNeverTold/top_pic_comments.py b/Chapter4_TheGreatestTheoremNeverTold/top_pic_comments.py
index 9f0eeffe..b362bb35 100644
--- a/Chapter4_TheGreatestTheoremNeverTold/top_pic_comments.py
+++ b/Chapter4_TheGreatestTheoremNeverTold/top_pic_comments.py
@@ -6,7 +6,7 @@
import praw
-reddit = praw.Reddit("BayesianMethodsForHackers")
+reddit = praw.Reddit("BayesianMethodsForHackers", disable_update_check=True)
subreddit = reddit.get_subreddit( "pics" )
top_submissions = subreddit.get_top()
diff --git a/images/bg_hr.png b/images/bg_hr.png
new file mode 100644
index 00000000..7973bd69
Binary files /dev/null and b/images/bg_hr.png differ
diff --git a/images/blacktocat.png b/images/blacktocat.png
new file mode 100644
index 00000000..6e264fe5
Binary files /dev/null and b/images/blacktocat.png differ
diff --git a/images/border.png b/images/border.png
new file mode 100644
index 00000000..83e2fcbf
Binary files /dev/null and b/images/border.png differ
diff --git a/images/icon_download.png b/images/icon_download.png
new file mode 100644
index 00000000..a2a287f6
Binary files /dev/null and b/images/icon_download.png differ
diff --git a/images/larger_border.png b/images/larger_border.png
new file mode 100644
index 00000000..aa6a0f8a
Binary files /dev/null and b/images/larger_border.png differ
diff --git a/images/sprite_download.png b/images/sprite_download.png
new file mode 100644
index 00000000..f2babd57
Binary files /dev/null and b/images/sprite_download.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..d074d17a
--- /dev/null
+++ b/index.html
@@ -0,0 +1,388 @@
+
+
+
+
+
+ The Bayesian method is the natural approach to inference, yet it is hidden from readers behind chapters of slow, mathematical analysis. The typical text on Bayesian inference involves two to three chapters on probability theory, then enters what Bayesian inference is. Unfortunately, due to mathematical intractability of most Bayesian models, the reader is only shown simple, artificial examples. This can leave the user with a so-what feeling about Bayesian inference. In fact, this was the author's own prior opinion.
+
+
After some recent success of Bayesian methods in machine-learning competitions, I decided to investigate the subject again. Even with my mathematical background, it took me three straight-days of reading examples and trying to put the pieces together to understand the methods. There was simply not enough literature bridging theory to practice. The problem with my misunderstanding was the disconnect between Bayesian mathematics and probabilistic programming. That being said, I suffered then so the reader would not have to now. This book attempts to bridge the gap.
+
+
If Bayesian inference is the destination, then mathematical analysis is a particular path towards it. On the other hand, computing power is cheap enough that we can afford to take an alternate route via probabilistic programming. The latter path is much more useful, as it denies the necessity of mathematical intervention at each step, that is, we remove often-intractable mathematical analysis as a prerequisite to Bayesian inference. Simply put, this latter computational path proceeds via small intermediate jumps from beginning to end, where as the first path proceeds by enormous leaps, often landing far away from our target. Furthermore, without a strong mathematical background, the analysis required by the first path cannot even take place.
+
+
Bayesian Methods for Hackers is designed as a introduction to Bayesian inference from a computational/understanding-first, and mathematics-second, point of view. Of course as an introductory book, we can only leave it at that: an introductory book. For the mathematically trained, they may cure the curiosity this text generates with other texts designed with mathematical analysis in mind. For the enthusiast with less mathematical-background, or one who is not interested in the mathematics but simply the practice of Bayesian methods, this text should be sufficient and entertaining.
+
+
TensorFlow Probability port available!
+
+
Bayesian Methods for Hackers has been ported to TensorFlow Probability. With collaboration from the TensorFlow Probability team at Google, there is now an updated version of Bayesian Methods for Hackers that uses TensorFlow Probability (TFP).
+
This is a great way to learn TFP, from the basics of
+ how to generate random variables in TFP, up to full Bayesian modelling using TFP. Furthermore, the chapters are in Google's Colab form, so you can easily run and modify the examples present to experiment easier. Get started with Chapter 1!
+
+
+
+
+
Printed version now available!
+
+
+
Bayesian Methods for Hackers is now available in print. You can pick up your copy at Amazon.
+
Differences between the print version and the online version include:
+
+
Additional Chapter on Bayesian A/B testing
+
Updated examples
+
Answers to the end of chapter questions
+
Additional explaination, and rewritten sections to aid the reader.
+
+
+
+
+
+Contents
+
+
(The below chapters are rendered via the nbviewer at
+nbviewer.ipython.org/, and is read-only and rendered in real-time.
+Interactive notebooks + examples can be downloaded by cloning!
Chapter 1: Introduction to Bayesian Methods
+Introduction to the philosophy and practice of Bayesian methods and answering the question, "What is probabilistic programming?"
+
+
+
Chapter 2: A little more on PyMC
+We explore modeling Bayesian problems using Python's PyMC library through examples. How do we create Bayesian models?
Chapter X1: Bayesian methods in Machine Learning and Model Validation
+We explore how to resolve the overfitting problem plus popular ML methods.
+
+
+
+
Chapter X2: More PyMC Hackery
+We explore the gritty details of PyMC.
+
+
More questions about PyMC?
+Please post your modeling, convergence, or any other PyMC question on cross-validated, the statistics stack-exchange.
+
+
+Examples from the book
+
Below are just some examples from Bayesian Methods for Hackers.
+
+
Inferring behaviour changes using SMS message rates
+
+
Chapter 1
+
+
+ By only visually inspecting a noisy stream of daily SMS message rates, it can be difficult to detect a sudden change in the
+ users's SMS behaviour. In our first probabilistic programming example, we solve the problem by setting up a simple model to detect probable
+ points where the user's behaviour changed, and examine pre and post behaviour.
+
+
+
+
+
+
+
+
+
+
Simpler AB Testing
+
+
Chapter 2
+
AB testing, also called randomized experiments in other literature, is a great framework for determining
+ the difference between competing alternatives, with applications to web designs, drug treatments, advertising, plus much more.
+
+
With our new interpretation of probability, a more intuitive method of AB testing is demonstrated. And since we are not dealing
+ with confusing ideas like p-values or Z-scores, we can compute more understandable quantities about our uncertainty.
+
+
+
+
+
+
+
Discovering cheating while maintaining privacy
+
+
Chapter 2
+
+
A very simple algorithm can be used to infer proportions of cheaters, while also maintaining the privacy of
+ the population. For each participant in the study:
+
+
+
Have the user privately flip a coin. If heads, answer "Did you cheat?"truthfully.
+
If tails, flip again. If heads, answer "Yes" regardless of the truth; if tails, answer "No".
+
+
+ This way, the suveyor's do not know whether a cheating confession is a result of cheating or a heads on the second coin flip. But how do we cut through this scheme and perform inference on the true proportion of cheaters?
+
+
+
+
+
+
+
Challenger Space Shuttle disaster
+
+
Chapter 2
+
+
+ On January 28, 1986, the twenty-fifth flight of the U.S. space shuttle program ended in disaster when one of the rocket boosters of the Shuttle Challenger exploded shortly after lift-off, killing all seven crew members. The presidential commission on the accident concluded that it was caused by the failure of an O-ring in a field joint on the rocket booster, and that this failure was due to a faulty design that made the O-ring unacceptably sensitive to a number of factors including outside temperature. Of the previous 24 flights, data were available on failures of O-rings on 23, (one was lost at sea), and these data were discussed on the evening preceding the Challenger launch, but unfortunately only the data corresponding to the 7 flights on which there was a damage incident were considered important and these were thought to show no obvious trend.
+
+
We examine this data in a Bayesian framework and show strong support that a faulty O-ring, caused by low abmient temperatures, was likely the cause of the disaster.
+
+
+
+
Understanding Bayesian posteriors and MCMC
+
+
Chapter 3
+
+
+ The prior-posterior paradigm is visualized to make understanding the MCMC algorithm more clear. For example, below we show how two different priors
+ can result in two different posteriors.
+
+
+
+
+
+
Clustering data
+
+
Chapter 3
+
+
+
+ Given a dataset, sometimes we wish to ask whether there may be more than one hidden source that created it. A priori, it is not
+ always clear this is the case. We introduce a simple model to try to pry data apart into two clusters.
+
+
+
+
+
Sorting Reddit comments from best to worst
+
+
Chapter 4
+
+
+ Consider ratings on online products: how often do you trust an average 5-star rating if there is only 1 reviewer? 2 reviewers? 3 reviewers? We implicitly understand that with such few reviewers that the average rating is not a good reflection of the true value of the product.
+This has created flaws in how we sort items, and more generally, how we compare items. Many people have realized that sorting online search results by their rating, whether the objects be books, videos, or online comments, return poor results. Often the seemingly top videos or comments have perfect ratings only from a few enthusiastic fans, and truly more quality videos or comments are hidden in later pages with falsely-substandard ratings of around 4.8. How can we correct this?
+
+
+
+
+
+
+
Solving the Price is Right's Showcase
+
+
Chapter 5
+
+
+ Bless you if you are ever chosen as a contestant on the Price is Right, for here we will show you how to optimize your final price on the Showcase. We create a Bayesian model of your best guess and your uncertainty in that guess, and push it through the odd Showdown loss function (closest wins, lose if you bid over).
+
+
+
+
+
Kaggle's Dark World winning solution
+
+
Chapter 5
+
+
+ We implement Tim Saliman's winning solution to the Observing Dark World's contest on the data science website Kaggle.
+
+
+
+
+
+
Bayesian Bandits - a solution to the Multi-Armed Bandit problem
+
+
Chapter 6
+
+ Suppose you are faced with N slot machines (colourfully called multi-armed bandits). Each bandit has an unknown probability of distributing a prize (assume for now the prizes are the same for each bandit, only the probabilities differ). Some bandits are very generous, others not so much. Of course, you don't know what these probabilities are. By only choosing one bandit per round, our task is devise a strategy to maximize our winnings.
+
+
+
+
+
Stock Market analysis
+
+
Chapter 6
+
+
+ For decades, finance students have been taught using naive statistical methods to pick stocks. This has caused terrible inference, mostly
+ caused by two things: temporal parameters and ignoring uncertainty. The first is harder to solve, the second fits right into a Bayesian framework.
+
+
+
+
+
+
+
+
+
+
+Using the book
+
+
The book can be read in three different ways, starting from most recommended to least recommended:
+
+
+
The most recommended option is to clone the repository to download the .ipynb files to your local machine. If you have IPython installed, you can view the
+chapters in your browser plus edit and run the code provided (and try some practice questions). This is the preferred option to read
+this book, though it comes with some dependencies.
+
+
+
IPython v0.13 (or greater) is a requirement to view the ipynb files. It can be downloaded here. IPython notebooks can be run by (your-virtualenv) ~/path/to/the/book/Chapter1_Introduction $ ipython notebook
+
+
For Linux users, you should not have a problem installing NumPy, SciPy, Matplotlib and PyMC. For Windows users, check out pre-compiled versions if you have difficulty.
+
In the styles/ directory are a number of files (.matplotlirc) that used to make things pretty. These are not only designed for the book, but they offer many improvements over the default settings of matplotlib.
+
while technically not required, it may help to run the IPython notebook with ipython notebook --pylab inline flag if you encounter io errors.
+
+
+
The second, preferred, option is to use the nbviewer.ipython.org site, which display IPython notebooks in the browser (example).
+The contents are updated synchronously as commits are made to the book. You can use the Contents section above to link to the chapters.
+
PDF versions are available! Look in the PDF/ directory. PDFs are the least-prefered method to read the book, as pdf's are static and non-interactive. If PDFs are desired, they can be created dynamically using Chrome's builtin print-to-pdf feature or using the nbconvert utility.
+
+
+Installation and configuration
+
+
If you would like to run the IPython notebooks locally, (option 1. above), you'll need to install the following:
+
+
+
IPython 0.13 is a requirement to view the ipynb files. It can be downloaded here
+
+
+
For Linux users, you should not have a problem installing NumPy, SciPy and PyMC. For Windows users, check out pre-compiled versions if you have difficulty. Also recommended, for data-mining exercises, are PRAW and requests.
+
In the styles/ directory are a number of files that are customized for the notebook.
+These are not only designed for the book, but they offer many improvements over the
+default settings of matplotlib and the IPython notebook. The in notebook style has not been finalized yet.
+
+
+
+Development
+
+
This book has an unusual development design. The content is open-sourced, meaning anyone can be an author.
+Authors submit content or revisions using the GitHub interface.
+
+
+
What to contribute?
+
+
+
The current chapter list is not finalized. If you see something that is missing (MCMC, MAP, Bayesian networks, good prior choices, Potential classes etc.), feel free to start there.
+
Cleaning up Python code and making code more PyMC-esque
+
Giving better explanations
+
Spelling/grammar mistakes
+
Suggestions
+
Contributing to the IPython notebook styles
+
+
+
We would like to thank the Python community for building an amazing architecture. We would like to thank the
+statistics community for building an amazing architecture.
+
+
Similarly, the book is only possible because of the PyMC library. A big thanks to the core devs of PyMC: Chris Fonnesbeck, Anand Patil, David Huard and John Salvatier.
+
+
One final thanks. This book was generated by IPython Notebook, a wonderful tool for developing in Python. We thank the IPython
+community for developing the Notebook interface. All IPython notebook files are available for download on the GitHub repository.
"I ... read this book ... I like it!" - Andrew Gelman
+
+
"This book is a godsend, and a direct refutation to that 'hmph! you don't know maths, piss off!' school of thought...
+The publishing model is so unusual. Not only is it open source but it relies on pull requests from anyone in order to progress the book. This is ingenious and heartening" - excited Reddit user
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/javascripts/main.js b/javascripts/main.js
new file mode 100644
index 00000000..d8135d37
--- /dev/null
+++ b/javascripts/main.js
@@ -0,0 +1 @@
+console.log('This would be the main JS file.');
diff --git a/params.json b/params.json
new file mode 100644
index 00000000..e0d95747
--- /dev/null
+++ b/params.json
@@ -0,0 +1 @@
+{"name":"Bayesian Methods for Hackers","tagline":"An intro to Bayesian methods + probabilistic programming with a computation/understanding-first, mathematics-second point of view. ","body":"The Bayesian method is the natural approach to inference, yet it is hidden from readers behind chapters of slow, mathematical analysis. The typical text on Bayesian inference involves two to three chapters on probability theory, then enters what Bayesian inference is. Unfortunately, due to mathematical intractability of most Bayesian models, the reader is only shown simple, artificial examples. This can leave the user with a *so-what* feeling about Bayesian inference. In fact, this was the author's own prior opinion.\r\n\r\n\r\n\r\nAfter some recent success of Bayesian methods in machine-learning competitions, I decided to investigate the subject again. Even with my mathematical background, it took me three straight-days of reading examples and trying to put the pieces together to understand the methods. There was simply not enough literature bridging theory to practice. The problem with my misunderstanding was the disconnect between Bayesian mathematics and probabilistic programming. That being said, I suffered then so the reader would not have to now. This book attempts to bridge the gap.\r\n\r\nIf Bayesian inference is the destination, then mathematical analysis is a particular path to towards it. On the other hand, computing power is cheap enough that we can afford to take an alternate route via probabilistic programming. The latter path is much more useful, as it denies the necessity of mathematical intervention at each step, that is, we remove often-intractable mathematical analysis as a prerequisite to Bayesian inference. Simply put, this latter computational path proceeds via small intermediate jumps from beginning to end, where as the first path proceeds by enormous leaps, often landing far away from our target. Furthermore, without a strong mathematical background, the analysis required by the first path cannot even take place.\r\n\r\n*Bayesian Methods for Hackers* is designed as a introduction to Bayesian inference from a computational/understanding-first, and mathematics-second, point of view. Of course as an introductory book, we can only leave it at that: an introductory book. For the mathematically trained, they may cure the curiosity this text generates with other texts designed with mathematical analysis in mind. For the enthusiast with less mathematical-background, or one who is not interested in the mathematics but simply the practice of Bayesian methods, this text should be sufficient and entertaining.\r\n\r\n\r\nThe choice of PyMC as the probabilistic programming language is two-fold. As of this writing, there is currently no central resource for examples and explanations in the PyMC universe. The official documentation assumes prior knowledge of Bayesian inference and probabilistic programming. We hope this book encourages users at every level to look at PyMC. Secondly, with recent core developments and popularity of the scientific stack in Python, PyMC is likely to become a core component soon enough.\r\n\r\nPyMC does have dependencies to run, namely NumPy and (optionally) SciPy. To not limit the user, the examples in this book will rely only on PyMC, NumPy, SciPy and Matplotlib only.\r\n\r\n\r\nContents\r\n------\r\n\r\n(The below chapters are rendered via the *nbviewer* at\r\n[nbviewer.ipython.org/](http://nbviewer.ipython.org/), and is read-only and rendered in real-time.\r\nInteractive notebooks + examples can be downloaded by cloning! \r\n\r\n\r\n* [**Prologue:**](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Prologue/Prologue.ipynb) Why we do it.\r\n\r\n* [**Chapter 1: Introduction to Bayesian Methods**](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter1_Introduction/Chapter1_Introduction.ipynb)\r\n Introduction to the philosophy and practice of Bayesian methods and answering the question, \"What is probabilistic programming?\" Examples include:\r\n - Inferring human behaviour changes from text message rates\r\n \r\n* [**Chapter 2: A little more on PyMC**](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter2_MorePyMC/MorePyMC.ipynb)\r\n We explore modeling Bayesian problems using Python's PyMC library through examples. How do we create Bayesian models? Examples include:\r\n - Detecting the frequency of cheating students, while avoiding liars\r\n - Calculating probabilities of the Challenger space-shuttle disaster\r\n \r\n* [**Chapter 3: Opening the Black Box of MCMC**](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter3_MCMC/IntroMCMC.ipynb)\r\n We discuss how MCMC operates and diagnostic tools. Examples include:\r\n - Bayesian clustering with mixture models\r\n \r\n* [**Chapter 4: The Greatest Theorem Never Told**](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter4_TheGreatestTheoremNeverTold/LawOfLargeNumbers.ipynb)\r\n We explore an incredibly useful, and dangerous, theorem: The Law of Large Numbers. Examples include:\r\n - Exploring a Kaggle dataset and the pitfalls of naive analysis\r\n - How to sort Reddit comments from best to worst (not as easy as you think)\r\n \r\n* [**Chapter 5: Would you rather lose an arm or a leg?**](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter5_LossFunctions/LossFunctions.ipynb)\r\n The introduction of loss functions and their (awesome) use in Bayesian methods. Examples include:\r\n - Solving the *Price is Right*'s Showdown\r\n - Optimizing financial predictions\r\n - Winning solution to the Kaggle Dark World's competition\r\n \r\n* [**Chapter 6: Getting our *prior*-ities straight**](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter6_Priorities/Priors.ipynb)\r\n Probably the most important chapter. We draw on expert opinions to answer questions. Examples include:\r\n - Multi-Armed Bandits and the Bayesian Bandit solution.\r\n - What is the relationship between data sample size and prior?\r\n - Estimating financial unknowns using expert priors\r\n \r\n We explore useful tips to be objective in analysis as well as common pitfalls of priors. \r\n \r\n* **Chapter X1: Bayesian methods in Machine Learning and Model Validation** \r\n We explore how to resolve the overfitting problem plus popular ML methods. Also included are probablistic explainations of ridge regression and LASSO regression.\r\n - Tim Saliman's winning solution to Kaggle's *Don't Overfit* problem \r\n \r\n* **Chapter X2: More PyMC Hackery**\r\n We explore the gritty details of PyMC. Examples include:\r\n - Analysis on real-time GitHub repo stars and forks.\r\n\r\n\r\n \r\n**More questions about PyMC?**\r\nPlease post your modeling, convergence, or any other PyMC question on [cross-validated](http://stats.stackexchange.com/), the statistics stack-exchange.\r\n \r\n \r\nUsing the book\r\n-------\r\n\r\nThe book can be read in three different ways, starting from most recommended to least recommended: \r\n\r\n1. The most recommended option is to clone the repository to download the .ipynb files to your local machine. If you have IPython installed, you can view the \r\nchapters in your browser *plus* edit and run the code provided (and try some practice questions). This is the preferred option to read\r\nthis book, though it comes with some dependencies. \r\n - IPython v0.13 (or greater) is a requirement to view the ipynb files. It can be downloaded [here](http://ipython.org/). IPython notebooks can be run by `(your-virtualenv) ~/path/to/the/book/Chapter1_Introduction $ ipython notebook`\r\n - For Linux users, you should not have a problem installing NumPy, SciPy, Matplotlib and PyMC. For Windows users, check out [pre-compiled versions](http://www.lfd.uci.edu/~gohlke/pythonlibs/) if you have difficulty. \r\n - In the styles/ directory are a number of files (.matplotlirc) that used to make things pretty. These are not only designed for the book, but they offer many improvements over the default settings of matplotlib.\r\n - while technically not required, it may help to run the IPython notebook with `ipython notebook --pylab inline` flag if you encounter io errors.\r\n2. The second, preferred, option is to use the nbviewer.ipython.org site, which display IPython notebooks in the browser ([example](http://nbviewer.ipython.org/urls/raw.github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter1_Introduction/Chapter1_Introduction.ipynb)).\r\nThe contents are updated synchronously as commits are made to the book. You can use the Contents section above to link to the chapters.\r\n \r\n3. **PDF versions are available! Look in the PDF/ directory.** PDFs are the least-prefered method to read the book, as pdf's are static and non-interactive. If PDFs are desired, they can be created dynamically using Chrome's builtin print-to-pdf feature or using the [nbconvert](https://github.com/ipython/nbconvert) utility.\r\n \r\n\r\nInstallation and configuration\r\n------\r\nIf you would like to run the IPython notebooks locally, (option 1. above), you'll need to install the following:\r\n- IPython 0.13 is a requirement to view the ipynb files. It can be downloaded [here](http://ipython.org/ipython-doc/dev/install/index.html)\r\n- For Linux users, you should not have a problem installing NumPy, SciPy and PyMC. For Windows users, check out [pre-compiled versions](http://www.lfd.uci.edu/~gohlke/pythonlibs/) if you have difficulty. \r\n - also recommended, for data-mining exercises, are [PRAW](https://github.com/praw-dev/praw) and [requests](https://github.com/kennethreitz/requests). \r\n\r\n- In the styles/ directory are a number of files that are customized for the notebook. \r\nThese are not only designed for the book, but they offer many improvements over the \r\ndefault settings of matplotlib and the IPython notebook. The in notebook style has not been finalized yet.\r\n\r\n\r\n\r\nDevelopment\r\n------\r\n\r\nThis book has an unusual development design. The content is open-sourced, meaning anyone can be an author. \r\nAuthors submit content or revisions using the GitHub interface. \r\n\r\nWe would like to thank the Python community for building an amazing architecture. We would like to thank the \r\nstatistics community for building an amazing architecture. \r\n\r\nSimilarly, the book is only possible because of the [PyMC](http://github.com/pymc-devs/pymc) library. A big thanks to the core devs of PyMC: Chris Fonnesbeck, Anand Patil, David Huard and John Salvatier.\r\n\r\nOne final thanks. This book was generated by IPython Notebook, a wonderful tool for developing in Python. We thank the IPython \r\ncommunity for developing the Notebook interface. All IPython notebook files are available for download on the GitHub repository. \r\n\r\n\r\n\r\n####Contact\r\nContact the main author, Cam Davidson-Pilon at cam.davidson.pilon@gmail.com or [@cmrndp](https://twitter.com/cmrn_dp)\r\n\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
\ No newline at end of file
diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css
new file mode 100644
index 00000000..e65cedff
--- /dev/null
+++ b/stylesheets/pygment_trac.css
@@ -0,0 +1,70 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #f0f3f3; }
+.highlight .c { color: #0099FF; font-style: italic } /* Comment */
+.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
+.highlight .k { color: #006699; font-weight: bold } /* Keyword */
+.highlight .o { color: #555555 } /* Operator */
+.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #009999 } /* Comment.Preproc */
+.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
+.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
+.highlight .go { color: #AAAAAA } /* Generic.Output */
+.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #99CC66 } /* Generic.Traceback */
+.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #006699 } /* Keyword.Pseudo */
+.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #FF6600 } /* Literal.Number */
+.highlight .s { color: #CC3300 } /* Literal.String */
+.highlight .na { color: #330099 } /* Name.Attribute */
+.highlight .nb { color: #336666 } /* Name.Builtin */
+.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
+.highlight .no { color: #336600 } /* Name.Constant */
+.highlight .nd { color: #9999FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #CC00FF } /* Name.Function */
+.highlight .nl { color: #9999FF } /* Name.Label */
+.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #003333 } /* Name.Variable */
+.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
+.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
+.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
+.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
+.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
+.highlight .sc { color: #CC3300 } /* Literal.String.Char */
+.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
+.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
+.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
+.highlight .sx { color: #CC3300 } /* Literal.String.Other */
+.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
+.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
+.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
+.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #003333 } /* Name.Variable.Class */
+.highlight .vg { color: #003333 } /* Name.Variable.Global */
+.highlight .vi { color: #003333 } /* Name.Variable.Instance */
+.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css
new file mode 100644
index 00000000..15dde55f
--- /dev/null
+++ b/stylesheets/stylesheet.css
@@ -0,0 +1,453 @@
+/*******************************************************************************
+Slate Theme for GitHub Pages
+by Jason Costello, @jsncostello
+*******************************************************************************/
+
+@import url(pygment_trac.css);
+
+/*******************************************************************************
+MeyerWeb Reset
+*******************************************************************************/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font: inherit;
+ vertical-align: baseline;
+}
+
+@font-face {
+ font-family: "Computer Modern";
+ src: url('http://mirrors.ctan.org/fonts/cm-unicode/fonts/otf/cmunss.otf');
+}
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+
+ol, ul {
+ list-style: none;
+}
+
+blockquote, q {
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+a:focus {
+ outline: none;
+}
+
+/*******************************************************************************
+Theme Styles
+*******************************************************************************/
+
+.i {
+ font-style:italic;
+ }
+
+
+body {
+ box-sizing: border-box;
+ color:#373737;
+ background: #212121;
+ font-size: 17px;
+ font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 10px 0;
+ font-weight: 700;
+ color:#222222;
+ font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif;
+ letter-spacing: -1px;
+}
+
+h1 {
+ font-size: 36px;
+ font-weight: 700;
+}
+
+h2 {
+ padding-bottom: 10px;
+ font-size: 32px;
+ background: url('../images/border.png') repeat-x bottom;
+}
+
+h3 {
+ font-size: 24px;
+}
+
+h4 {
+ font-size: 21px;
+}
+
+h5 {
+ font-size: 18px;
+}
+
+h6 {
+ font-size: 16px;
+}
+
+p {
+ margin: 10px 0 15px 0;
+}
+
+footer p {
+ color: #f2f2f2;
+}
+
+a {
+ text-decoration: none;
+ color: #007edf;
+ text-shadow: none;
+
+
+}
+
+#main_content a:hover {
+ color: #0069ba;
+ text-decoration: underline;
+}
+
+footer a:hover {
+ color: #43adff;
+}
+
+em {
+ font-style: italic;
+}
+
+strong {
+ font-weight: bold;
+}
+
+img {
+ position: relative;
+ margin: 0 auto;
+ max-width: 739px;
+ padding: 5px;
+ margin: 10px 0 10px 0;
+ border: 1px solid #ebebeb;
+
+ box-shadow: 0 0 5px #ebebeb;
+ -webkit-box-shadow: 0 0 5px #ebebeb;
+ -moz-box-shadow: 0 0 5px #ebebeb;
+ -o-box-shadow: 0 0 5px #ebebeb;
+ -ms-box-shadow: 0 0 5px #ebebeb;
+}
+
+pre, code {
+ width: 100%;
+ color: #222;
+ background-color: #fff;
+
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+ font-size: 14px;
+
+ border-radius: 2px;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+
+
+
+}
+
+pre {
+ width: 100%;
+ padding: 10px;
+ box-shadow: 0 0 10px rgba(0,0,0,.1);
+ overflow: auto;
+}
+
+code {
+ padding: 3px;
+ margin: 0 3px;
+ box-shadow: 0 0 10px rgba(0,0,0,.1);
+}
+
+pre code {
+ display: block;
+ box-shadow: none;
+}
+
+blockquote {
+ color: #666;
+ margin-bottom: 20px;
+ padding: 0 0 0 20px;
+ border-left: 3px solid #bbb;
+}
+
+ul, ol, dl {
+ margin-bottom: 15px
+}
+
+ul li {
+ list-style: none;
+ padding-left: 15px;
+}
+
+ol li {
+ list-style: decimal inside;
+ padding-left: 20px;
+}
+
+dl dt {
+ font-weight: bold;
+}
+
+#accordion h3:hover{
+ cursor:pointer;
+ color: #007edf;
+
+}
+
+
+dl dd {
+ padding-left: 20px;
+ font-style: italic;
+}
+
+dl p {
+ padding-left: 20px;
+ font-style: italic;
+}
+
+hr {
+ height: 1px;
+ margin-bottom: 5px;
+ border: none;
+ background: url('../images/bg_hr.png') repeat-x center;
+}
+
+table {
+ border: 1px solid #373737;
+ margin-bottom: 20px;
+ text-align: left;
+ }
+
+th {
+ font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ padding: 10px;
+ background: #373737;
+ color: #fff;
+ }
+
+td {
+ padding: 10px;
+ border: 1px solid #373737;
+ }
+
+form {
+ background: #f2f2f2;
+ padding: 20px;
+}
+
+img {
+ width: 100%;
+ max-width: 100%;
+}
+
+/*******************************************************************************
+Full-Width Styles
+*******************************************************************************/
+
+.outer {
+ width: 100%;
+}
+
+.inner {
+ position: relative;
+ max-width: 700px;
+ padding: 20px 10px;
+ margin: 0 auto;
+}
+
+#forkme_banner {
+ display: block;
+ position: absolute;
+ top:0;
+ right: 10px;
+ z-index: 10;
+ padding: 10px 50px 10px 10px;
+ color: #fff;
+ background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%;
+ font-weight: 700;
+ box-shadow: 0 0 10px rgba(0,0,0,.5);
+ border-bottom-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+}
+
+
+
+#header_wrap {
+ background: #212121;
+ background: -moz-linear-gradient(top, #373737, #212121);
+ background: -webkit-linear-gradient(top, #373737, #212121);
+ background: -ms-linear-gradient(top, #373737, #212121);
+ background: -o-linear-gradient(top, #373737, #212121);
+ background: linear-gradient(top, #373737, #212121);
+}
+
+#header_wrap .inner {
+ padding: 50px 10px 30px 10px;
+}
+
+#project_title {
+ margin: 20px 0px;
+ color: #fff;
+ font-size: 42px;
+ font-weight: 700;
+ text-shadow: #111 0px 0px 10px;
+}
+
+#desc {
+ font-size: 26px;
+ font-weight: 400;
+ background: none;
+}
+
+#TOC{
+ font-size: 23px;
+ margin-bottom: 30px;
+
+}
+
+#TOC ul{
+ list-style-type: square;
+}
+
+#downloads {
+ position: absolute;
+ width: 210px;
+ z-index: 10;
+ bottom: -40px;
+ right: 0;
+ height: 70px;
+ background: url('../images/icon_download.png') no-repeat 0% 90%;
+}
+
+.zip_download_link {
+ display: block;
+ float: right;
+ width: 90px;
+ height:70px;
+ text-indent: -5000px;
+ overflow: hidden;
+ background: url(../images/sprite_download.png) no-repeat bottom left;
+}
+
+.tar_download_link {
+ display: block;
+ float: right;
+ width: 90px;
+ height:70px;
+ text-indent: -5000px;
+ overflow: hidden;
+ background: url(../images/sprite_download.png) no-repeat bottom right;
+ margin-left: 10px;
+}
+
+.zip_download_link:hover {
+ background: url(../images/sprite_download.png) no-repeat top left;
+}
+
+.tar_download_link:hover {
+ background: url(../images/sprite_download.png) no-repeat top right;
+}
+
+#main_content_wrap {
+ background: #f2f2f2;
+ border-top:8px solid transparent;
+ border-bottom:8px solid transparent;
+
+ border-image: url('../images/larger_border.png') 100% 1 0 stretch;
+}
+
+#main_content {
+ padding-top: 40px;
+}
+
+#footer_wrap {
+ border-top:8px solid transparent;
+
+ border-image: url('../images/larger_border.png') 100% 1 0 stretch;
+ background: #212121;
+}
+
+
+
+/*******************************************************************************
+Small Device Styles
+*******************************************************************************/
+
+@media screen and (max-width: 480px) {
+ body {
+ font-size:14px;
+ }
+
+ #downloads {
+ display: none;
+ }
+
+ .inner {
+ min-width: 320px;
+ max-width: 480px;
+ }
+
+ #project_title {
+ font-size: 32px;
+ }
+
+ h1 {
+ font-size: 28px;
+ }
+
+ h2 {
+ font-size: 24px;
+ }
+
+ h3 {
+ font-size: 21px;
+ }
+
+ h4 {
+ font-size: 18px;
+ }
+
+ h5 {
+ font-size: 14px;
+ }
+
+ h6 {
+ font-size: 12px;
+ }
+
+ code, pre {
+ min-width: 320px;
+ max-width: 480px;
+ font-size: 11px;
+ }
+
+}