{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Probabilistic Programming\n", "=====\n", "and Bayesian Methods for Hackers \n", "========\n", "\n", "##### Version 0.1\n", "\n", "`Original content created by Cam Davidson-Pilon`\n", "\n", "`Ported to Python 3 and PyMC3 by Max Margenot (@clean_utensils) and Thomas Wiecki (@twiecki) at Quantopian (@quantopian)`\n", "\n", "`Ported to PyMC last (4) by Kurisu Chan (@miemiekurisu)`\n", "___\n", "\n", "\n", "Welcome to *Bayesian Methods for Hackers*. The full Github repository is available at [github/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers](https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers). The other chapters can be found on the project's [homepage](https://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/). We hope you enjoy the book, and we encourage any contributions!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Chapter 1\n", "======\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Philosophy of Bayesian Inference\n", "------\n", " \n", "> You are a skilled programmer, but bugs still slip into your code. After a particularly difficult implementation of an algorithm, you decide to test your code on a trivial example. It passes. You test the code on a harder problem. It passes once again. And it passes the next, *even more difficult*, test too! You are starting to believe that there may be no bugs in this code...\n", "\n", "If you think this way, then congratulations, you already are thinking Bayesian! Bayesian inference is simply updating your beliefs after considering new evidence. A Bayesian can rarely be certain about a result, but he or she can be very confident. Just like in the example above, we can never be 100% sure that our code is bug-free unless we test it on every possible problem; something rarely possible in practice. Instead, we can test it on a large number of problems, and if it succeeds we can feel more *confident* about our code, but still not certain. Bayesian inference works identically: we update our beliefs about an outcome; rarely can we be absolutely sure unless we rule out all other alternatives. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### The Bayesian state of mind\n", "\n", "\n", "Bayesian inference differs from more traditional statistical inference by preserving *uncertainty*. At first, this sounds like a bad statistical technique. Isn't statistics all about deriving *certainty* from randomness? To reconcile this, we need to start thinking like Bayesians. \n", "\n", "The Bayesian world-view interprets probability as measure of *believability in an event*, that is, how confident we are in an event occurring. In fact, we will see in a moment that this is the natural interpretation of probability. \n", "\n", "For this to be clearer, we consider an alternative interpretation of probability: *Frequentist*, known as the more *classical* version of statistics, assume that probability is the long-run frequency of events (hence the bestowed title). For example, the *probability of plane accidents* under a frequentist philosophy is interpreted as the *long-term frequency of plane accidents*. This makes logical sense for many probabilities of events, but becomes more difficult to understand when events have no long-term frequency of occurrences. Consider: we often assign probabilities to outcomes of presidential elections, but the election itself only happens once! Frequentists get around this by invoking alternative realities and saying across all these realities, the frequency of occurrences defines the probability. \n", "\n", "Bayesians, on the other hand, have a more intuitive approach. Bayesians interpret a probability as measure of *belief*, or confidence, of an event occurring. Simply, a probability is a summary of an opinion. An individual who assigns a belief of 0 to an event has no confidence that the event will occur; conversely, assigning a belief of 1 implies that the individual is absolutely certain of an event occurring. Beliefs between 0 and 1 allow for weightings of other outcomes. This definition agrees with the probability of a plane accident example, for having observed the frequency of plane accidents, an individual's belief should be equal to that frequency, excluding any outside information. Similarly, under this definition of probability being equal to beliefs, it is meaningful to speak about probabilities (beliefs) of presidential election outcomes: how confident are you candidate *A* will win?\n", "\n", "Notice in the paragraph above, I assigned the belief (probability) measure to an *individual*, not to Nature. This is very interesting, as this definition leaves room for conflicting beliefs between individuals. Again, this is appropriate for what naturally occurs: different individuals have different beliefs of events occurring, because they possess different *information* about the world. The existence of different beliefs does not imply that anyone is wrong. Consider the following examples demonstrating the relationship between individual beliefs and probabilities:\n", "\n", "- I flip a coin, and we both guess the result. We would both agree, assuming the coin is fair, that the probability of Heads is 1/2. Assume, then, that I peek at the coin. Now I know for certain what the result is: I assign probability 1.0 to either Heads or Tails (whichever it is). Now what is *your* belief that the coin is Heads? My knowledge of the outcome has not changed the coin's results. Thus we assign different probabilities to the result. \n", "\n", "- Your code either has a bug in it or not, but we do not know for certain which is true, though we have a belief about the presence or absence of a bug. \n", "\n", "- A medical patient is exhibiting symptoms $x$, $y$ and $z$. There are a number of diseases that could be causing all of them, but only a single disease is present. A doctor has beliefs about which disease, but a second doctor may have slightly different beliefs. \n", "\n", "\n", "This philosophy of treating beliefs as probability is natural to humans. We employ it constantly as we interact with the world and only see partial truths, but gather evidence to form beliefs. Alternatively, you have to be *trained* to think like a frequentist. \n", "\n", "To align ourselves with traditional probability notation, we denote our belief about event $A$ as $P(A)$. We call this quantity the *prior probability*.\n", "\n", "John Maynard Keynes, a great economist and thinker, said \"When the facts change, I change my mind. What do you do, sir?\" This quote reflects the way a Bayesian updates his or her beliefs after seeing evidence. Even — especially — if the evidence is counter to what was initially believed, the evidence cannot be ignored. We denote our updated belief as $P(A |X )$, interpreted as the probability of $A$ given the evidence $X$. We call the updated belief the *posterior probability* so as to contrast it with the prior probability. For example, consider the posterior probabilities (read: posterior beliefs) of the above examples, after observing some evidence $X$:\n", "\n", "1\\. $P(A): \\;\\;$ the coin has a 50 percent chance of being Heads. $P(A | X):\\;\\;$ You look at the coin, observe a Heads has landed, denote this information $X$, and trivially assign probability 1.0 to Heads and 0.0 to Tails.\n", "\n", "2\\. $P(A): \\;\\;$ This big, complex code likely has a bug in it. $P(A | X): \\;\\;$ The code passed all $X$ tests; there still might be a bug, but its presence is less likely now.\n", "\n", "3\\. $P(A):\\;\\;$ The patient could have any number of diseases. $P(A | X):\\;\\;$ Performing a blood test generated evidence $X$, ruling out some of the possible diseases from consideration.\n", "\n", "\n", "It's clear that in each example we did not completely discard the prior belief after seeing new evidence $X$, but we *re-weighted the prior* to incorporate the new evidence (i.e. we put more weight, or confidence, on some beliefs versus others). \n", "\n", "By introducing prior uncertainty about events, we are already admitting that any guess we make is potentially very wrong. After observing data, evidence, or other information, we update our beliefs, and our guess becomes *less wrong*. This is the alternative side of the prediction coin, where typically we try to be *more right*. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Bayesian Inference in Practice\n", "\n", " If frequentist and Bayesian inference were programming functions, with inputs being statistical problems, then the two would be different in what they return to the user. The frequentist inference function would return a number, representing an estimate (typically a summary statistic like the sample average etc.), whereas the Bayesian function would return *probabilities*.\n", "\n", "For example, in our debugging problem above, calling the frequentist function with the argument \"My code passed all $X$ tests; is my code bug-free?\" would return a *YES*. On the other hand, asking our Bayesian function \"Often my code has bugs. My code passed all $X$ tests; is my code bug-free?\" would return something very different: probabilities of *YES* and *NO*. The function might return:\n", "\n", "\n", "> *YES*, with probability 0.8; *NO*, with probability 0.2\n", "\n", "\n", "\n", "This is very different from the answer the frequentist function returned. Notice that the Bayesian function accepted an additional argument: *\"Often my code has bugs\"*. This parameter is the *prior*. By including the prior parameter, we are telling the Bayesian function to include our belief about the situation. Technically this parameter in the Bayesian function is optional, but we will see excluding it has its own consequences. \n", "\n", "\n", "#### Incorporating evidence\n", "\n", "As we acquire more and more instances of evidence, our prior belief is *washed out* by the new evidence. This is to be expected. For example, if your prior belief is something ridiculous, like \"I expect the sun to explode today\", and each day you are proved wrong, you would hope that any inference would correct you, or at least align your beliefs better. Bayesian inference will correct this belief.\n", "\n", "\n", "Denote $N$ as the number of instances of evidence we possess. As we gather an *infinite* amount of evidence, say as $N \\rightarrow \\infty$, our Bayesian results (often) align with frequentist results. Hence for large $N$, statistical inference is more or less objective. On the other hand, for small $N$, inference is much more *unstable*: frequentist estimates have more variance and larger confidence intervals. This is where Bayesian analysis excels. By introducing a prior, and returning probabilities (instead of a scalar estimate), we *preserve the uncertainty* that reflects the instability of statistical inference of a small $N$ dataset. \n", "\n", "One may think that for large $N$, one can be indifferent between the two techniques since they offer similar inference, and might lean towards the computationally-simpler, frequentist methods. An individual in this position should consider the following quote by Andrew Gelman (2005)[1], before making such a decision:\n", "\n", "> Sample sizes are never large. If $N$ is too small to get a sufficiently-precise estimate, you need to get more data (or make more assumptions). But once $N$ is \"large enough,\" you can start subdividing the data to learn more (for example, in a public opinion poll, once you have a good estimate for the entire country, you can estimate among men and women, northerners and southerners, different age groups, etc.). $N$ is never enough because if it were \"enough\" you'd already be on to the next problem for which you need more data.\n", "\n", "### Are frequentist methods incorrect then? \n", "\n", "**No.**\n", "\n", "Frequentist methods are still useful or state-of-the-art in many areas. Tools such as least squares linear regression, LASSO regression, and expectation-maximization algorithms are all powerful and fast. Bayesian methods complement these techniques by solving problems that these approaches cannot, or by illuminating the underlying system with more flexible modeling.\n", "\n", "\n", "#### A note on *Big Data*\n", "Paradoxically, big data's predictive analytic problems are actually solved by relatively simple algorithms [2][4]. Thus we can argue that big data's prediction difficulty does not lie in the algorithm used, but instead on the computational difficulties of storage and execution on big data. (One should also consider Gelman's quote from above and ask \"Do I really have big data?\")\n", "\n", "The much more difficult analytic problems involve *medium data* and, especially troublesome, *really small data*. Using a similar argument as Gelman's above, if big data problems are *big enough* to be readily solved, then we should be more interested in the *not-quite-big enough* datasets. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Our Bayesian framework\n", "\n", "We are interested in beliefs, which can be interpreted as probabilities by thinking Bayesian. We have a *prior* belief in event $A$, beliefs formed by previous information, e.g., our prior belief about bugs being in our code before performing tests.\n", "\n", "Secondly, we observe our evidence. To continue our buggy-code example: if our code passes $X$ tests, we want to update our belief to incorporate this. We call this new belief the *posterior* probability. Updating our belief is done via the following equation, known as Bayes' Theorem, after its discoverer Thomas Bayes:\n", "\n", "\\begin{align}\n", " P( A | X ) = & \\frac{ P(X | A) P(A) } {P(X) } \\\\\\\\[5pt]\n", "& \\propto P(X | A) P(A)\\;\\; (\\propto \\text{is proportional to })\n", "\\end{align}\n", "\n", "The above formula is not unique to Bayesian inference: it is a mathematical fact with uses outside Bayesian inference. Bayesian inference merely uses it to connect prior probabilities $P(A)$ with an updated posterior probabilities $P(A | X )$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Example: Mandatory coin-flip example\n", "\n", "Every statistics text must contain a coin-flipping example, I'll use it here to get it out of the way. Suppose, naively, that you are unsure about the probability of heads in a coin flip (spoiler alert: it's 50%). You believe there is some true underlying ratio, call it $p$, but have no prior opinion on what $p$ might be. \n", "\n", "We begin to flip a coin, and record the observations: either $H$ or $T$. This is our observed data. An interesting question to ask is how our inference changes as we observe more and more data? More specifically, what do our posterior probabilities look like when we have little data, versus when we have lots of data. \n", "\n", "Below we plot a sequence of updating posterior probabilities as we observe increasing amounts of data (coin flips)." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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qRMAQCaToaKiAikpKTAajQgODkZoaOjtNBkRERG5KV7CRFZJSUm47777rLcLCgqg0Wisl87YEhgYaP13UFAQcnNz630sLy8PgYGBkMlkDW7f2P727t2Lbdu2ISsrCwBQVlYGvV5vdyy3auTIkfjxxx8RExOD/fv319v7ANh/fI3x9fW1/lulUlmfm5WVhby8vBqXTZnNZnTr1g1A422Tl5cHf3//GpctVbVTaGgoHnnkEWzcuBEpKSno06cPZs6cCX9/f7tjJiIiotaBBQQBAIqLi5GTkwNvb2/rfb/99hv69u1r9z6ys7Nr/LuhPz79/PyQnZ0Ns9ls/SM7OzsbYWFhNveXlZVlvXQnOjoaMpkML774IoQQtxTLzRg4cCA+++wzJCUl4fjx43jooYdu6/huRWBgIIKDg/HBBx/UecxW2/j5+SE3NxdCCGsRkZOTY+1pGD58OIYPH46SkhKsWrUK69atw//8z//cdsxERETkXngJEwGw9D7IZDIcOHAAJpMJJ06cwI8//og//elPACzrBaxcubLRfezatQs5OTkoKirC999/j6FDh9a7XefOnaHRaLBlyxYYjUacP38ex48fx7Bhw2zuz2AwQJIka6GzZ88eJCcn33IsDfH19cX169dr3KdSqTB48GB88MEHiIqKqtHLcSvHdyuioqLg4eGBTZs2oby8HGazGUlJSYiPj7fZNlVFxc6dO2EymXD48GHr5U1paWk4d+4cKioqoFKpoFKpavSgEBEREVVhDwQBsBQQw4cPx+XLl/Hoo48iPDwcL774Itq0aQPA8k31nXfe2eg+hg8fjqVLlyIvLw8DBgzAH//4x3q3UygUmD9/Pj777DN8//338Pf3x+zZsxEREWFzf2q1GpMnT8arr74KmUyGESNGoEuXLrccS0PuuecerF69Gl9//TWmTp2K//f//h8AYNSoUfj555/x17/+tcHn2nt8t0Imk+Gll17Cl19+iWeeeQZGoxHh4eG47777EBUV1WjbKBQKvPDCC/jkk0/wn//8B3fccYd1hqaKigqsW7cOqampkMvl6NKlC/7yl7/cdrxERETkfiRR+9oPapU+/fRThIWFYfLkyXUeMxqNePHFF/GPf/wDCkX9NWdTLrzmSrKzszFnzhysWrUKnp6ezg6HiIiIqNnxGgUCYOmBqOptqE2hUODdd99tsHhoLcxm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AgH2/50dO3YMi8VCcXEx0dHRhIeHOyni6mdPjoKCgjh48CAAWVlZJCQkEBwc7IxwayRHjdVSF2yTumCb1AbbpDZUTOqCY1zOeG3XQnJ79uzh008/Rdd1hg0bxsSJE/ntt98AGDlyJEopPv74Y/bv34+rqyv33XcfLVu2dMyzqiVs5ej9999n+/btZeeYGY1G5syZ48yQq5Wt/PzVvHnz6NmzZ727VJ89OVq6dCnr1q3DYDAwfPhwxo4d68yQq52tHGVkZPDee++VTf665pprGDx4sDNDrlZvvvkmR44cITc3Fz8/PyZPnozZbAYcP1ZLXbBN6oJtUhtsk9pQMakLtlVFbZCVqIUQQgghhBB2q5+zkoQQQgghhBCXRRoIIYQQQgghhN2kgRBCCCGEEELYTRoIIYQQQgghhN2kgRBCCCGEEELYTRoIIYQQQgghhN2kgRBCCCGEEELYTRoIIYQQQtR4999/PwcOHHD4Y2fMmMHhw4fLve/fb6sqCQkJzJo1i1tvvZVly5ZddPuVPPfKmjdvHt9880217EvUXiZnByCEEEII4Syvv/66Xbfdf//93HPPPXTp0sXhMSxZsoQOHTrwyiuvOHzbQlQFOQIhhBBCCKexWCzODsHp0tLSaNKkibPDEMJucgRCCCGEEOXauHEjK1euJDAwkCNHjmAymbj77rvp3r27zcfef//9REZGsmHDBrKysujduzd33nknrq6u3H///URFRbFp0yYSEhL4/PPPSUxM5KOPPuLMmTMEBARw880306tXrwu2eerUKRYsWHDR9n766SfWrFlDdnY2gYGB3HTTTfTp08eux1Z0ZOH8bevXryctLY2XX34Zg8HApEmT0DSNEydOMHPmzLL7f/LJJxgMBqZOnXrRts6ePVvu85s9ezZHjhzh2LFjLFy4kJdffpmwsLCLHn/mzBk+++wzUlNT6datG/fffz+urq4AZGRk8Mknn3D06FHc3d0ZO3YsY8aMAbCZm5iYGN5//30SExPp3r07mqaV3fbTTz+xfPlyCgsL8ff3584776Rz5842f/ei7pMjEEIIIYQoV1xcHDExMfTt25f//e9/jB49mg8//NDux2/atInHH3+cd955h8TERH744Yey2zZv3swjjzzCwoULUUrx8ssv06VLFz766CPuuOMO3n77bRISEuzaXkhICLNnz2bhwoVcf/31vPPOO2RmZtodiy3//ve/CQoK4r///S+ff/4511xzDVdddRX79+8nPz8fsB5J2bJlC4MHD77o8Waz+ZLP7+mnn6Z9+/bccccdfP755+U2DwBbt27lscceY968ecTFxfH7778DoOs6L7/8Ms2aNeODDz7gqaeeYtmyZezbt89mbsxmM6+++ipXXXUVn3zyCf3792f79u2AdV7GypUreemll/jss894/PHHadiwod05E3WbNBBCCCGEKFdcXBxjx45lwIABmEwmhgwZQlpaGiUlJXY9/uqrryYoKAhvb2+uvfZaNm/eXHbb6NGjCQoKwtXVlZMnT1JUVMSECRMwmUx06tSJHj16sGnTJru2179/fwICAjAYDAwYMIDQ0FCio6PtjuVy+Pv70759e7Zu3QrAvn378PHxoUWLFhfd197nV5HRo0cTEBCAt7c3PXv25MyZM4D1yEpOTg6TJk3CZDIREhLCiBEj2LJlC1Bxbk6cOIHFYmHs2LGYTCb69etHy5YtATAYDJSWlnL27FnMZjPBwcGEhoZeScpEHSKnMAkhhBCiXHFxcdxwww1l/8/Ozsbd3b3s1BlbgoKCyr5v2LAhGRkZ5d6WmZlJUFAQBoPhkvevaHvr16/nl19+ITU1FYCioiJyc3PtjuVyDRkyhN9++43IyEg2btxY7tEHsP/5VaRBgwZl37u6upY9NjU1lczMzAtOm9J1nfbt2wMV5yYzM5OAgIALTls6n6fQ0FCmTp3KokWLOHv2LF27duXWW28lICDA7phF3SUNhBBCCCEukp+fT3p6Or6+vmU/27ZtG926dbN7G2lpaRd8f6k3n/7+/qSlpaHretmb7LS0NBo1amRze6mpqWWn7rRp0waDwcDDDz+MUuqyYqmM3r1789FHHxEXF8fu3bv5v//7vyt6fpcjKCiI4OBg3n777Ytus5Ubf39/MjIyUEqVNRHp6ellRxoGDRrEoEGDKCgoYP78+Xz55Zf8+9//vuKYRe0npzAJIYQQ4iJxcXEYDAY2bdqExWJhz549/Pbbb0yePBmwrhcwb968CrexcuVK0tPTycvL48cff6R///7l3q9169a4u7uzdOlSzGYzhw8fZvfu3QwcONDm9oqLi9E0razRWbduHfHx8Zcdy6U0aNCAlJSUC37m6upK3759efvtt2nVqtUFRzku5/ldjlatWuHh4cFPP/1ESUkJuq4TFxdHdHS0zdycbyqWL1+OxWJh+/btZac3JSQkcOjQIUpLS3F1dcXV1fWCIyiifpMjEEIIIYS4SFxcHIMGDeLEiRPcfvvthIWF8fDDD9O4cWPA+kn1gAEDKtzGoEGDeP7558nMzKRXr15cd9115d7PZDIxa9YsPvroI3788UcCAgKYNm0a4eHhNrfn5ubGuHHjePzxxzEYDAwePJi2bdtediyXMmHCBD755BO++OILJk6cyD/+8Q8Ahg4dytq1a/nXv/51ycfa+/wuh8Fg4L///S+fffYZ999/P2azmbCwMG644QZatWpVYW5MJhMzZ87kgw8+4JtvvqF79+5lV2gqLS3lyy+/5Ny5cxiNRtq2bcvdd999xfGKukFTfz/GJ4QQQoh678MPP6RRo0aMGzfuotvMZjMPP/wwr776KiZT+Z9FVuXCazVJWloaDzzwAPPnz8fT09PZ4QhRLeRYlBBCCCEuEhcXV3a04e9MJhNvvPHGJZuH+kLXdX755RcGDBggzYOoV6SBEEIIIcRF4uPjL7kmgbBezei2227jwIEDZfNChKgv5BQmIYQQQgghhN3kCIQQQgghhBDCbtJACCGEEEIIIewmDYQQQgghhBDCbtJACCGEEEIIIewmDYQQQgghhBDCbtJACCGEEEIIIewmDYQQQgghhBDCbtJACCGEEEIIIez2/8fRE4JMd3GkAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"\n", "The book uses a custom matplotlibrc file, which provides the unique styles for\n", "matplotlib plots. If executing this book, and you wish to use the book's\n", "styling, provided are two options:\n", " 1. Overwrite your own matplotlibrc file with the rc-file provided in the\n", " book's styles/ dir. See http://matplotlib.org/users/customizing.html\n", " 2. Also in the styles is bmh_matplotlibrc.json file. This can be used to\n", " update the styles in only this notebook. Try running the following code:\n", "\n", " import json\n", " s = json.load(open(\"../styles/bmh_matplotlibrc.json\"))\n", " matplotlib.rcParams.update(s)\n", "\n", "\"\"\"\n", "\n", "# The code below can be passed over, as it is currently not important, plus it\n", "# uses advanced topics we have not covered yet. LOOK AT PICTURE, MICHAEL!\n", "%matplotlib inline\n", "from IPython.core.pylabtools import figsize\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "import matplotlib as mpl\n", "mpl.style.use(\"ggplot\")\n", "figsize(11, 9)\n", "\n", "import scipy.stats as stats\n", "\n", "dist = stats.beta\n", "n_trials = [0, 1, 2, 3, 4, 5, 8, 15, 50, 500]\n", "data = stats.bernoulli.rvs(0.5, size=n_trials[-1])\n", "x = np.linspace(0, 1, 100)\n", "\n", "# For the already prepared, I'm using Binomial's conj. prior.\n", "for k, N in enumerate(n_trials):\n", " sx = plt.subplot(len(n_trials)//2, 2, k+1)\n", " plt.xlabel(\"$p$, probability of heads\") \\\n", " if k in [0, len(n_trials)-1] else None\n", " plt.setp(sx.get_yticklabels(), visible=False)\n", " heads = data[:N].sum()\n", " y = dist.pdf(x, 1 + heads, 1 + N - heads)\n", " plt.plot(x, y, label=\"observe %d tosses,\\n %d heads\" % (N, heads))\n", " plt.fill_between(x, 0, y, color=\"#348ABD\", alpha=0.4)\n", " plt.vlines(0.5, 0, 4, color=\"k\", linestyles=\"--\", lw=1)\n", "\n", " leg = plt.legend()\n", " leg.get_frame().set_alpha(0.4)\n", " plt.autoscale(tight=True)\n", "\n", "\n", "plt.suptitle(\"Bayesian updating of posterior probabilities\",\n", " y=1.02,\n", " fontsize=14)\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The posterior probabilities are represented by the curves, and our uncertainty is proportional to the width of the curve. As the plot above shows, as we start to observe data our posterior probabilities start to shift and move around. Eventually, as we observe more and more data (coin-flips), our probabilities will tighten closer and closer around the true value of $p=0.5$ (marked by a dashed line). \n", "\n", "Notice that the plots are not always *peaked* at 0.5. There is no reason it should be: recall we assumed we did not have a prior opinion of what $p$ is. In fact, if we observe quite extreme data, say 8 flips and only 1 observed heads, our distribution would look very biased *away* from lumping around 0.5 (with no prior opinion, how confident would you feel betting on a fair coin after observing 8 tails and 1 head?). As more data accumulates, we would see more and more probability being assigned at $p=0.5$, though never all of it.\n", "\n", "The next example is a simple demonstration of the mathematics of Bayesian inference. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Example: Bug, or just sweet, unintended feature?\n", "\n", "\n", "Let $A$ denote the event that our code has **no bugs** in it. Let $X$ denote the event that the code passes all debugging tests. For now, we will leave the prior probability of no bugs as a variable, i.e. $P(A) = p$. \n", "\n", "We are interested in $P(A|X)$, i.e. the probability of no bugs, given our debugging tests $X$. To use the formula above, we need to compute some quantities.\n", "\n", "What is $P(X | A)$, i.e., the probability that the code passes $X$ tests *given* there are no bugs? Well, it is equal to 1, for a code with no bugs will pass all tests. \n", "\n", "$P(X)$ is a little bit trickier: The event $X$ can be divided into two possibilities, event $X$ occurring even though our code *indeed has* bugs (denoted $\\sim A\\;$, spoken *not $A$*), or event $X$ without bugs ($A$). $P(X)$ can be represented as:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\\begin{align}\n", "P(X ) & = P(X \\text{ and } A) + P(X \\text{ and } \\sim A) \\\\\\\\[5pt]\n", " & = P(X|A)P(A) + P(X | \\sim A)P(\\sim A)\\\\\\\\[5pt]\n", "& = P(X|A)p + P(X | \\sim A)(1-p)\n", "\\end{align}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have already computed $P(X|A)$ above. On the other hand, $P(X | \\sim A)$ is subjective: our code can pass tests but still have a bug in it, though the probability there is a bug present is reduced. Note this is dependent on the number of tests performed, the degree of complication in the tests, etc. Let's be conservative and assign $P(X|\\sim A) = 0.5$. Then\n", "\n", "\\begin{align}\n", "P(A | X) & = \\frac{1\\cdot p}{ 1\\cdot p +0.5 (1-p) } \\\\\\\\\n", "& = \\frac{ 2 p}{1+p}\n", "\\end{align}\n", "This is the posterior probability. What does it look like as a function of our prior, $p \\in [0,1]$? " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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3fxm2xHuf6mC+raOXvtmF2TwN1fP4PUz8gjdtyAiIiIiY1g4AX+Buy8GMLMfAi9HtyQ5o6vb+cPOan6wtpyjzad77SvNGc9fXTWDG+cWkqBgLyIiIiIh4QT8s0PGoZlwoliOALg7Lxyo47vP7ae8rrXXvomZqXziddN586IikhIShqlCERERERmpwgn4S82sOfS1AeNDjw1wd9fdnBfRjqomvvPcfjZXNvbanpOWzEevmMY7lk4iNSlxeIoTERERkRFvyIDv7kqTMXCooY171uzn6b01vbanJSfywctL+cDyKaSlRDKrqYiIiIiMRUqMw6yutZ371pbzm21VdPVYpSoxwXjn0hI+duU0ctNThrFCERERERlNFPCHSVt7Jz/fcJifbThEW0dXr303zi3kb66ewZSctGGqTkRERERGKwX8GOvs6ua326r4wdoK6tvae+27bEo2n7p2lhapEhEREZHzpoAfI+7OM3truPv5AxxqaOu1b2Z+Op+6diavm6657EVERETkwijgx8DWI018+5l9bK9u7rW9MDOVO6+awZsWFJGYoGAvIiIiIhdOAT+KqppO8t3n9vPUnuO9tmekJnH7yqm8Z9lkxiVrkiIRERERuXgU8KOg5XQnP1pXwUObKmnv6j67PTnRePelk7n9imlkj08exgpFREREJF4p4F9End3dPLqtmntfPEBDW0evfTfOLeSua2ZSkj1+mKoTERERkbFAAf8iWVdex7eeLWN/bWuv7QuLJ/B/rp/N0pKsYapMRERERMYSBfwLVF7XyrefLePFA3W9tk/MTOWua2byxvkTSdDMOCIiIiISIwr456mxrZ3Va8t5ZEsVXf7aCrTjkxP5yMqpfGD5FN1AKyIiIiIxp4AfofbObn61uZIfvlRBy+nOs9sNeNviYu68agb5GanDV6CIiIiIjGkK+GFyd9aU1fKtZ8uobDzZa9/y0mw+fd1s5k7MHKbqREREREQCCvhhqKhr5Rt/3se6ivpe20tzxvO3183impn5WoFWREREREYEBfxzaDndyX1ry3nolUq6ul/rs58wLomPv24677qkhOTEhGGsUERERESkNwX8AXS784edR/nec/upb2s/uz3B4C+WlvBXV83QQlUiIiIiMiIp4Pexs7qZrz+9lx3Vzb22Xzo5i3+4YY767EVERERkRFPAD6lrbeee5/fz6Pbq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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "figsize(12.5, 4)\n", "p = np.linspace(0, 1, 50)\n", "plt.plot(p, 2*p/(1+p), color=\"#348ABD\", lw=3)\n", "#plt.fill_between(p, 2*p/(1+p), alpha=.5, facecolor=[\"#A60628\"])\n", "plt.scatter(0.2, 2*(0.2)/1.2, s=140, c=\"#348ABD\")\n", "plt.xlim(0, 1)\n", "plt.ylim(0, 1)\n", "plt.xlabel(\"Prior, $P(A) = p$\")\n", "plt.ylabel(\"Posterior, $P(A|X)$, with $P(A) = p$\")\n", "plt.title(\"Are there bugs in my code?\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see the biggest gains if we observe the $X$ tests passed when the prior probability, $p$, is low. Let's settle on a specific value for the prior. I'm a strong programmer (I think), so I'm going to give myself a realistic prior of 0.20, that is, there is a 20% chance that I write code bug-free. To be more realistic, this prior should be a function of how complicated and large the code is, but let's pin it at 0.20. Then my updated belief that my code is bug-free is 0.33. \n", "\n", "Recall that the prior is a probability: $p$ is the prior probability that there *are no bugs*, so $1-p$ is the prior probability that there *are bugs*.\n", "\n", "Similarly, our posterior is also a probability, with $P(A | X)$ the probability there is no bug *given we saw all tests pass*, hence $1-P(A|X)$ is the probability there is a bug *given all tests passed*. What does our posterior probability look like? Below is a chart of both the prior and the posterior probabilities. \n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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MXHiRB588EEuv/xybr/9dr7xjW9UtZ+nn346P//5z1m2bBk/+9nPGDx48Do/Z5LUkrYe1FHH1laDclIt1TJhnwtsW7bcn9JIerkzgSsyM4FZEfECMBh4vIZx1cTMmTP50Y9+xH777cdZZ53FmDFjuPDCC4HSdb8ffvhhAO655x6gdGWbM844g/vuu49BgwZx2mmnMXbsWD7/+c+v1qbc5z73Oc455xxOO+00rrnmmoqxjBs3js997nOcfPLJvPfeeyxfvpwrrriCZ599lqlTpwLwwAMP8Pjjj/Pss89WvLzh448/zowZM9h+++0ZPnw4d9xxB8cee2zF7e27774cccQRKxP0cq3tZ9++fXnyyScZM2YMV111Fdddd13LB1qS2khbDOqoY6tmUE6qB7W8SswTwE4RMTAiNgFGUpr+Uu4l4B8BIuIDwIeA2TWMqWa23XZb9ttvPwBOOeWUVZLtE044YbX6M2fOZODAgQwaNAiA008/nYceeqjFNgCPPPIIJ554IgCnnnpqxTr77LMP3/rWt/j2t7/Niy++yKabblqx3rBhw5q9FvmwYcP44Ac/SOfOnTnxxBMrfnioRmv7ecwxxwDwkY98hDlz5qzVNiRJkjZkNUvYM7MBOB+4F3gO+GlmTo+I0RExuqj2DWDfiHgGuA/4Sma+UauYaqnppQLLlzfbbLPV6pe+VGhepTbNbaupk046iYkTJ7LpppvyiU98gt/+9rfrvI3G5fL11VzLvLX97NatGwCdO3emocE5pZIkSU3V9E6nmTkJmNRk3biyx/OAj9dq++vzq66XXnqJxx57jH322Ydbb72V/fffv8X6gwcPZs6cOcyaNYsdd9yRm266iQMPPLDV7ey3336MHz+eU045hZtvvrlindmzZ/PBD36QCy64gNmzZzNt2jR23313Fi5cWPX+PP7447zwwgtsv/323HbbbYwaNQqAD3zgAzz33HN86EMf4s4776RXr14A9OrVq2L/a7ufkiRJKtkg7nTa1GabdOH9Pbu12c9mm7T+uWbnnXfmhhtuYLfdduPNN9/knHPOabF+9+7duf766znuuOPYdddd6dSpE6NHj26xDcB///d/c80117DXXnvxt7/9rWKd2267jV122YU99tiDP/7xj5x22mn06dOH/fbbj1122YUvf/nLrW5nn3324aKLLmKXXXZh4MCBHH300QBcccUVjBgxgkMOOYStttpqZf2RI0dy5ZVX8uEPf5g///nP67yfkiRJKonWpizUm6FDh+bkyZNXWffcc8+x8847A+1z46TyK7SoYyh/zUjaeHzhjqeZv/BdXl/0riediumvvM37e3ajX69uXodddSEipmTm0Kbrazolpj34BydJkqQNyQY5JWZ9GzBggKPrkiRJqgkTdkmSJKmOmbBLkiRJdcyEXZIkSapjG9xJpw8e3fLlFNfFgXeOrVnfkiRJUiUb5Aj7soWLWTLvtTb7WbZw8XqJ+6677mLGjBlr3G7ixIlcccUVbRbHQQcdROOlMw8//HDeeuutZut+73vf45133mm2/Oyzz165Tz179lyjOKZOncqkSf9336223k9JkqSOYIMbYQdoWLiId+a93mb99dgauvbarM36a85dd93FiBEjGDJkSNVtGhoaOOKIIzjiiCPWqE2XLtU99eUJcyXf+973OOWUU+jRo8dqZcuXL+e6666rOq6mpk6dyuTJkzn88MMB1ng/JUmSNgQbZMLeqM/QXde5jwWTn2m1zpw5cxg+fDh77703Tz31FIMGDeLGG2+kR48e3HfffVx44YU0NDSw1157MXbsWLp168ZFF13ExIkT6dKlCx//+Mc55phjmDhxIg8++CCXX345t99+OwDnnXce8+fPp0ePHvzwhz9k8ODBnHHGGWy55ZY89dRT7Lnnnuy6665MnjyZH/zgB7z44oucddZZzJ8/n379+nH99dez3XbbrdbmO9/5zsr4lyxZwplnnsmMGTPYeeedWbJkycqyAQMGMHnyZDbddFOOP/545s6dy/Lly/nqV7/Ka6+9xrx58zj44IPp27cv999/Pz179uSLX/wi9957L9/5zne45JJLuOqqqxg6tHQPgC996Uvcf//9vO9972P8+PH069ePgw46aGWdN954g6FDh/L888/zta99jSVLlvDwww9z8cUXs2TJkqr2s3fv3kyePJlXX32V//zP/+TYY49d59eBJElSe9kgp8S0h5kzZzJq1CimTZtG7969GTNmDEuXLuWMM87gtttu45lnnqGhoYGxY8fy5ptvcueddzJ9+nSmTZvGJZdcwr777ssRRxzBlVdeydSpU9lhhx0YNWoU3//+95kyZQpXXXUV55577srtPf/88/zmN79ZJfEGOP/88znttNOYNm0aJ598MhdccEGrbcaOHUuPHj2YNm0a//Zv/8aUKVNW27977rmHrbfemqeffppnn32W4cOHc8EFF7D11ltz//33c//99wOwePFidtllF/7whz+w//77r9LH4sWL2XPPPXnyySc58MADufTSS5s9nptssgmXXXYZJ5xwAlOnTuWEE06oej9feeUVHn74Ye6++24uuuiiZrchSZLUEZiwt5Ftt92W/fbbD4BTTjmFhx9+mJkzZzJw4EAGDRoEwOmnn85DDz1E79696d69O2effTZ33HFHxekkixYt4tFHH+W4445jjz324LOf/SyvvPLKyvLjjjuOzp07r9buscce46STTgLg1FNP5eGHH261zUMPPcQpp5wCwG677cZuu+22Wp1dd92V3/zmN3zlK1/hd7/7HZtvvnnF49C5c2c+/elPVyzr1KnTysS78RitrZb286ijjqJTp04MGTKE1157ba23IUmSVA9M2NtIRKy2nJkV63bp0oXHH3+cT3/609x1110MHz58tTorVqxgiy22YOrUqSt/nnvuuZXlm21W3Zz68rhaatM0/qYGDRrElClT2HXXXbn44ou57LLLKtbr3r17xQ8FLW2zS5curFixAoClS5dW1ba5vgC6deu28nFzz4EkSVJHsUHPYa9m/nlbeemll3jsscfYZ599uPXWW9l///0ZPHgwc+bMYdasWey4447cdNNNHHjggSxatIh33nmHww8/nI9+9KPsuOOOAPTq1YuFCxcC0Lt3bwYOHMjPfvYzjjvuODKTadOmsfvuu7cYx7777sv48eM59dRTufnmm1ebllLJAQccwM0338zBBx/Ms88+y7Rp01arM2/ePLbccktOOeUUevbsyU9+8pNVYu7bt2+r21mxYgUTJkxg5MiR3HLLLStjGzBgAFOmTGHYsGFMmDBhZf3y49EW+ylJktQRbZAJe5dePemxddv215qdd96ZG264gc9+9rPstNNOnHPOOXTv3p3rr7+e4447buVJp6NHj+bNN9/kyCOPZOnSpWQm3/3udwEYOXIkn/nMZ7j66quZMGECN998M+eccw6XX345y5YtY+TIka0m7FdffTVnnXUWV1555cqTMVtzzjnncOaZZ7Lbbruxxx57MGzYsNXqPPPMM3z5y1+mU6dOdO3albFjS9ekHzVqFIcddhhbbbXVynnszdlss82YPn06H/nIR9h88825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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "figsize(12.5, 4)\n", "colours = [\"#348ABD\", \"#A60628\"]\n", "\n", "prior = [0.20, 0.80]\n", "posterior = [1./3, 2./3]\n", "plt.bar([0, .7], prior, alpha=0.70, width=0.25,\n", " color=colours[0], label=\"prior distribution\",\n", " lw=\"3\", edgecolor=colours[0])\n", "\n", "plt.bar([0+0.25, .7+0.25], posterior, alpha=0.7,\n", " width=0.25, color=colours[1],\n", " label=\"posterior distribution\",\n", " lw=\"3\", edgecolor=colours[1])\n", "\n", "plt.xticks([0.20, .95], [\"Bugs Absent\", \"Bugs Present\"])\n", "plt.title(\"Prior and Posterior probability of bugs present\")\n", "plt.ylabel(\"Probability\")\n", "plt.legend(loc=\"upper left\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that after we observed $X$ occur, the probability of bugs being absent increased. By increasing the number of tests, we can approach confidence (probability 1) that there are no bugs present.\n", "\n", "This was a very simple example of Bayesian inference and Bayes rule. Unfortunately, the mathematics necessary to perform more complicated Bayesian inference only becomes more difficult, except for artificially constructed cases. We will later see that this type of mathematical analysis is actually unnecessary. First we must broaden our modeling tools. The next section deals with *probability distributions*. If you are already familiar, feel free to skip (or at least skim), but for the less familiar the next section is essential." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_______\n", "\n", "## Probability Distributions\n", "\n", "\n", "**Let's quickly recall what a probability distribution is:** Let $Z$ be some random variable. Then associated with $Z$ is a *probability distribution function* that assigns probabilities to the different outcomes $Z$ can take. Graphically, a probability distribution is a curve where the probability of an outcome is proportional to the height of the curve. You can see examples in the first figure of this chapter. \n", "\n", "We can divide random variables into three classifications:\n", "\n", "- **$Z$ is discrete**: Discrete random variables may only assume values on a specified list. Things like populations, movie ratings, and number of votes are all discrete random variables. Discrete random variables become more clear when we contrast them with...\n", "\n", "- **$Z$ is continuous**: Continuous random variable can take on arbitrarily exact values. For example, temperature, speed, time, color are all modeled as continuous variables because you can progressively make the values more and more precise.\n", "\n", "- **$Z$ is mixed**: Mixed random variables assign probabilities to both discrete and continuous random variables, i.e. it is a combination of the above two categories. \n", "\n", "### Discrete Case\n", "If $Z$ is discrete, then its distribution is called a *probability mass function*, which measures the probability $Z$ takes on the value $k$, denoted $P(Z=k)$. Note that the probability mass function completely describes the random variable $Z$, that is, if we know the mass function, we know how $Z$ should behave. There are popular probability mass functions that consistently appear: we will introduce them as needed, but let's introduce the first very useful probability mass function. We say $Z$ is *Poisson*-distributed if:\n", "\n", "$$P(Z = k) =\\frac{ \\lambda^k e^{-\\lambda} }{k!}, \\; \\; k=0,1,2, \\dots $$\n", "\n", "$\\lambda$ is called a parameter of the distribution, and it controls the distribution's shape. For the Poisson distribution, $\\lambda$ can be any positive number. By increasing $\\lambda$, we add more probability to larger values, and conversely by decreasing $\\lambda$ we add more probability to smaller values. One can describe $\\lambda$ as the *intensity* of the Poisson distribution. \n", "\n", "Unlike $\\lambda$, which can be any positive number, the value $k$ in the above formula must be a non-negative integer, i.e., $k$ must take on values 0,1,2, and so on. This is very important, because if you wanted to model a population you could not make sense of populations with 4.25 or 5.612 members. \n", "\n", "If a random variable $Z$ has a Poisson mass distribution, we denote this by writing\n", "\n", "$$Z \\sim \\text{Poi}(\\lambda) $$\n", "\n", "One useful property of the Poisson distribution is that its expected value is equal to its parameter, i.e.:\n", "\n", "$$E\\large[ \\;Z\\; | \\; \\lambda \\;\\large] = \\lambda $$\n", "\n", "We will use this property often, so it's useful to remember. Below, we plot the probability mass distribution for different $\\lambda$ values. The first thing to notice is that by increasing $\\lambda$, we add more probability of larger values occurring. Second, notice that although the graph ends at 15, the distributions do not. They assign positive probability to every non-negative integer." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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QXR3dxfLysos5jEajaK/v7/497//3abl3LkejT2Pj48Xx44dW6f96dOniwMHDjQ9/+qrr0S1Wi1evnzZYt7afL169TIb1r17d7FHjx5mw+69917x5Zdfrnc5d657SUmJCEDcv39/nWkbGlefjIwMUaVS1ck+YcIEs2FLliwRO3ToYDZNz549zaaZPHmyOGDAAFEURbGsrEzUaDTi8uXL6227vu19++tiy37VUJ47WbtcS9vHGpb22Ts19j6zNuPty7Fn/2iubV07z53HDEvqe683tq95eHiI7777rtk0ffr0ETt37mzzujnifSuKovinP/1JHDFihOn5sWPHRADiqVOnLE5f37pb2m537jvWLsuWY2Z5ebno6ekpfvnll2bL3rJli+jn52d6/sknn4h33323+Ntvv1nMYs3rY2mdLL337hxmbUZrt6M1+5q7u7u4adMms2n69+9vti71OX/+vOjt7S0+/vjjokKhEG/cuNHg9LbuQ6JY97W3tI6NHd8b265N+ayh5sEz+tRk3377LXx8fODp6YkePXqgU6dOZl9z9+nTx3RGAQDy8vJQXV2NIUOGmC1n6NChOH36tNmwfv36QaVSmZ4PHDgQ1dXVOHfuHADg/PnzGDNmDLp06QJfX1/4+vqitLQUFy5csGk5jjJ58mQcOnQIZ86cAXDrK9WHH34Ybdu2bXC+Xr16mT0PCwvDvffeW2dYYWGh6Xlj6x4QEICJEyfioYcewsiRI5GWloaff/650XHNofbsfK127drh6tWrAIDTp09Dr9cjMTHRrjZs2a8aymPPcq1h7T57p4beZ03JaM/+0VzbutadxwzA+u3WUHvnzp1DVVVVnW+EBg0a1KR1a8r71pJnn30WX3/9Na5cuQLg1pnYPn364J577rFp3S1ttzs1xzHz9OnTqKysxB//+Ef4+PiY/iZPnozS0lIUFRUBAB577DH89NNPpsth7mTN69NU1mYErNuOQMP7Wu1+NGDAALNp7r//fqvyTpo0CQ899BAWL14MURQbvXynsX0IaPqxpyGNbVeDweDUzxqqHwt9arL+/fsjJycHP/74IyorK/H111+jU6dOpvHe3t4W57vzUhZRFBu8vKV2mts98sgjyM/PR3p6Og4fPoycnByEhISgurrapuU4yj333INBgwZh06ZNKCwsxGeffYZJkyY1Op+bm5vZc4VC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gFqthoeHB15++WUsWbIEly5dwueff45Jkyahb9++zshKRERERERWarTQX7ZsGa5fv46wsDBERkaiffv2uPfee7F792689tpriIyMdEZOIiIiIiKyQaOF/jvvvIPy8nLk5+fjwoULyM/PR35+PqqqqjBv3jx06NAB7du3x8SJE52Rl4iIiIiIrGDVNfre3t7o1q0bunXrZja8sLDQVPwTEREREZF82HXDrJCQEISEhPAafSIiIiIimbGpH30iIiIiImoZWOgTEREREbmgRgv9r776yvT4ypUrzRqGiIiIiIgco9FC/8MPPzQ9njVrVrOGISIiIiIix2j0x7hhYWF4//33ERERAYPBgH379lmc7sEHH3R4OCIiIiIiappGC/0XXngBn332GQ4dOgSj0YiDBw9anI6FvmXr/iP95U4azXXo9Xok9w+TOgoREREROUmjhX54eDimTJkCAFi8eDFee+21Zg/lasqrjSivMUrWfqBCbV8/qkRERETU4thU/7322msoKCjAoUOHUFJSgsDAQAwcOBBt27ZtrnwuobzGiKJyg2Ttu7kZEOAuWfNEREREJAGbCv2jR49i7dq1iImJQXBwMC5fvozZs2dj+vTpiI2Nba6MLuOeEC+nt3m6sMLpbRIRERGR9Gwq9D/88EO88sor6NGjh2nY6dOn8be//Y2FPhERERGRjNh0w6ySkhJ069bNbFh0dDR0Op1DQxERERERkX1sKvQ7duyIzz//3GzY7t270bFjR0dmIiIiIiIiO9l06c7EiROxbNkyfPnll9BqtdDpdPDw8MBf//rX5spHRERERERNYFOh365dO6xatQq5ubmmXne6dOkCtZqdNxIRERERyYnNFbpKpUJ0dHRzZCEiIiIiIgex6Rp9IiIiIiJqGVjoExERERG5IMkurs/JyUFGRgYEQUB8fDySkpLMxh88eBCffvopAECj0WDixImm3n0am5eIiIiIqLWz6Yz+li1b8Ouvv9rdqCAI2Lx5M+bOnYtVq1bh0KFD+O2338ymCQkJwcKFC7FixQr88Y9/xLvvvmv1vERERERErZ1NZ/SNRiNSUlLg6+uLwYMHY/DgwdBqtTY3mpeXh7CwMISGhgIA4uLikJ2djYiICNM0d999t+lxVFSU6aZc1sxLRERERNTa2VTojx8/HuPGjcOJEydw8OBBfPLJJ4iKisKQIUPQ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ty/y8vIsFvpERERERK2VTYX+7T3jDB06FPfccw/0er3Zj2it0blzZxQUFKCwsBCBgYHIysrCjBkzrJpXr9dDFEV4enpCr9fjhx9+wKhRo2xqn4iIiIjI1dncvebtmno9kkqlwvjx45GSkgJBEDBs2DBERkZi7969AIDExERcv34ds2fPRmVlJRQKBb744gu8+eabuHnzJlasWAHg1lfugwYNQu/eve1ZDSIiIiIil2NToW8wGLBjxw4cOnQI165dQ0BAAOLi4vD444/D3d3dpoZjYmIQExNjNiwxMdH02N/fH+vXr68zn5eXF5YvX25TW0RERERErY1Nhf7GjRtx+fJlPPfccwgODkZRURF27dqFTZs2ITk5ubkyEhERERGRjWwq9LOzs7F27Vp4e3sDACIiIhAVFYXp06c3SzgiIiIiImoam26Y5e/vj6qqKrNh1dXVNvWYQ0REREREza/RM/qnTp0yPR4yZAhSU1MxYsQIUxeZe/bswZAhQ5o1JBERERER2abRQv+dd96pM2znzp1mzzMzM8263iQiIiIiImk1Wuinp6c7IwcRERERETmQzf3oFxQU4NChQygpKUFgYCAGDhyItm3bNkc2IgBA242b4W8won2NiABPu2790CSaSgO8PNTwUALo/6rT2yciIiJqCpuqpqNHj2Lt2rWIiYlBcHAwLl++jNmzZ2P69OmIjY1troxEUFdUwutmOdzcVU5v26vaCLVvG6CNl9PbJiIiImoqmwr9Dz/8EK+88gp69OhhGnb69Gn87W9/Y6FPzUpdUQH1NR3cVDZ1FOUQXkYBgpsKYj2F/unCSrhdr4ZbpQG/FVY6OR3gVWlAka4CVdCgq9NbJyIiIrmyqdAvKSlBt27dzIZFR0dDp9M5NBRRfSq6RTu9TdWpM41OYxRFKEURlQajExKZ8xBFGEXR6e0SERGRvNlU6Hfs2BGff/65WQ87u3fvRseOHR0ci6hlMQoiFIIIfY3zC26DIEIQWOgTERGROZsK/QkTJuCNN97Al19+aepH38PDA3/961+bKx9RiyLFj4WJiIiILLGpKgkPD8eqVauQm5tr6nWnS5cuUKtZ3BARERERyYnVFbogCBgzZgzee+89REc7/zppIiIiIiKyntWFvlKpRHh4OG7evInAwMDmzEREJBtn574pdQTkazTQ6/XomjpT6ihERNSC2HTN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S/lOnz6NX3/9FQqFAsHBwZg0aZJsrqBgoU9ERERE5IJ46Q4RERERkQtioU9ERERE5IJY6BMRERERuSAW+kRERERELoiFPhERERGRC2KhT0RERETkgljoExGRw0ydOlWWd+8lImqNWOgTEZFDlJWV4dq1a7K7+ywRUWvFQp+IiBwiPz8fYWFhcHd3lzoKEREBUEsdgIiIXEN+fj4iIyMBAFVVVVi/fj1qamrw/PPPQ6PRSJyOiKj1YaFPREQOceHCBbRv3x6FhYVYuXIlYmNjMWrUKCgUCqmjERG1Siz0iYjIIfLz86FQKLBo0SKMGzcOffv2lToSEVGrxkKfiIjsJooiLl68iMLCQjz88MMs8omIZIA/xiUiIrsVFhYCAObPn4/du3fj3LlzEiciIiIW+kREZLcLFy6gQ4cOaN++PSZNmoQVK1bg2rVrUsciImrVWOgTEZHd8vPz0b59ewBAv379EB8fj+XLl6O6ulriZERErZdCFEVR6hBERERERORYPKNPREREROSCWOgTEREREbkgFvpERERERC6IhT4RERERkQtioU9ERERE5IJY6BMRERERuSAW+kRERERELoiFPhERERGRC/r/XUSutuTdIbYAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(12.5, 4)\n", "\n", "import scipy.stats as stats\n", "a = np.arange(16)\n", "poi = stats.poisson\n", "lambda_ = [1.5, 4.25]\n", "colours = [\"#348ABD\", \"#A60628\"]\n", "\n", "plt.bar(a, poi.pmf(a, lambda_[0]), color=colours[0],\n", " label=\"$\\lambda = %.1f$\" % lambda_[0], alpha=0.60,\n", " edgecolor=colours[0], lw=\"3\")\n", "\n", "plt.bar(a, poi.pmf(a, lambda_[1]), color=colours[1],\n", " label=\"$\\lambda = %.1f$\" % lambda_[1], alpha=0.60,\n", " edgecolor=colours[1], lw=\"3\")\n", "\n", "plt.xticks(a + 0.4, a)\n", "plt.legend()\n", "plt.ylabel(\"probability of $k$\")\n", "plt.xlabel(\"$k$\")\n", "plt.title(\"Probability mass function of a Poisson random variable; differing \\\n", "$\\lambda$ values\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Continuous Case\n", "Instead of a probability mass function, a continuous random variable has a *probability density function*. This might seem like unnecessary nomenclature, but the density function and the mass function are very different creatures. An example of continuous random variable is a random variable with *exponential density*. The density function for an exponential random variable looks like this:\n", "\n", "$$f_Z(z | \\lambda) = \\lambda e^{-\\lambda z }, \\;\\; z\\ge 0$$\n", "\n", "Like a Poisson random variable, an exponential random variable can take on only non-negative values. But unlike a Poisson variable, the exponential can take on *any* non-negative values, including non-integral values such as 4.25 or 5.612401. This property makes it a poor choice for count data, which must be an integer, but a great choice for time data, temperature data (measured in Kelvins, of course), or any other precise *and positive* variable. The graph below shows two probability density functions with different $\\lambda$ values. \n", "\n", "When a random variable $Z$ has an exponential distribution with parameter $\\lambda$, we say *$Z$ is exponential* and write\n", "\n", "$$Z \\sim \\text{Exp}(\\lambda)$$\n", "\n", "Given a specific $\\lambda$, the expected value of an exponential random variable is equal to the inverse of $\\lambda$, that is:\n", "\n", "$$E[\\; Z \\;|\\; \\lambda \\;] = \\frac{1}{\\lambda}$$" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAu8AAAEcCAYAAAB3bVp7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAABiLklEQVR4nO3deXhTVeI+8PfmZu3epjstUFqgLCooIwiySUVwxVEZN0YGURQdxHVEwR0HHXVcQMcZ+SIzOvNzX2Z0FKoMoLiwKmuhyN6NbnTPds/vj5umSZu2adomDX0/z9MnybknNyent+l7b849VxJCCBARERERUY+nCXYDiIiIiIjINwzvREREREQhguGdiIiIiChEMLwTEREREYUIhnciIiIiohDB8E5EREREFCIY3omIiIiIQgTDOxERERFRiGB4p4CYNGkS5s6dG5D1zJ49Gzk5OT4/7m6PPfYYsrKyAvZ6QPe/x4ceeghJSUmQJAlvvvlmt72OrwL9O21PT+uf3q6j20dP254aBeOzJFA62ue+/k8J5O+y+e/H22t7+2zoys+LQG+7L7/8MrRaLcaPH4+ampqAvW5vpw12A6jnmD17NlavXg0AkGUZffr0wfTp07F06VKYzeYgt853L730EhRF8Xl5Tk4O0tLSTquQ1Z3v8YcffsAf//hHfPzxxxg9ejSio6M7vU5ftfY+2vudB1Iw+wfw/Dt2Fx4eftr/cw2F7YO8Ox1/R83fk7fPhq7+vAh0P86ZMwcZGRm4/PLL8cUXX+Dqq68O2Gv3Zgzv5GH8+PF49913YbfbsXXrVsydOxfHjh3DZ5991qKu1WqFXq8PQivb1t6HX6DDVDB053s8cOAANBoNrrjiim57jY7qSb/TntA/jX/H7jSa3vtFayC2j576edjTNfZbT/ob7irN35O3z4au+rwIVj9GRETgsssuQ9++ffHTTz8xvAdI7/00J6/0ej2Sk5ORlpaGK664AgsXLsQXX3yB+vp6TJo0CTfffDOWLFmClJQU9OnTBwBgs9nw4IMPok+fPtDr9Rg6dCj++c9/tli3oih48MEHER8fj6ioKMydOxf19fWu5WvXrsWkSZMQFxeH6OhoTJw4ET/++GOH19Pe14buy2fPno2vvvoKq1evhiRJkCQJ//vf/7Bq1SrExMSgrq7O47mPP/44MjIyIITwum6LxYLbb78d0dHRiI2Nxe233w6LxdKi3iuvvILs7GwYjUYMHDgQS5cuhd1udy1v/Er4ySefRHJyMuLi4jB79mzU1ta66nzzzTcYN24cIiMjERkZibPOOgtffvllt77H2bNnY9asWVAUxbUu9/a6e+qpp9C/f/8OvScAWLFiBYYOHQqDwYDExETXP4PW3kfz9wv4tk362h537a23tf7xxpft3Z82Ak1/x+4/iYmJAICysjKkp6fjrrvuctUvKSlBSkoK/vCHP3i89pw5c9r8W+vKfu7s30RHtg9fP2va0trnYVf9Xn35LPG1/2+++WYsXrwYiYmJiImJwcMPPwxFUfDEE08gKSkJCQkJePjhh1t9r3/7298QHR3t8bsHgGeeeQZ9+vRxHen19b176zd/fkft/S9oTXvbmi98+f00/xxu/tnQ1ueFL38PvvSjL9tafX09br31Vtd7mT9/PhYtWuTzEC1FURAWFoadO3d2qA+pEwSR00033SSmTJniUfb8888LAKKqqkpMnDhRREREiHnz5ondu3eLn3/+WQghxH333Sfi4uLEu+++K/Ly8sTSpUuFJEkiNzfXtZ6JEyeKyMhIMXfuXLFnzx7x6aefioSEBPH73//eVefDDz90rWPXrl3i5ptvFrGxsaK0tLRD62n+Ptp6XFlZKcaPHy9mzpwpCgsLRWFhobBYLKKurk7ExMSIN9980/U8h8Mh+vXrJ5566qlW+3DhwoUiISFBfPzxx2Lv3r3i3nvvFZGRkSIzM9NV59FHHxV9+/YVH374ofjll1/EZ599JtLT08XixYs93md0dLRYuHCh2Lt3r/jvf/8roqOjxSOPPCKEEMJut4vY2Fhx9913i/3794v9+/eLDz/8UGzYsKFb32NlZaV48cUXhSzLrnU1tvfmm2/2qPvkk0+Kfv36+fyehBDikUceEeHh4eKVV14ReXl5YuvWreLJJ59s8314+x37uk22157m2ltva/3jja/be0fb6O3vuLn169cLrVYrPv30U6Eoipg6daoYPXq0sFqtHq/d3t9aV/VzV/xNdGT7aK/vfenD1j4Pu+r36stnia/9HxUVJR544AGRl5cnVq5cKQCI6dOni/vvv1/k5eWJN998UwAQn3/+udf3WllZKYxGo/jnP//pUT5s2DDxwAMP+NyvbfVbR39Hvmyf3tbb3ra2atUqAUAcOnTIa1905PfT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t2Hx4sVISkrC4MGDsXLlSuzbt88100dERAQeeugh1xGrCy+8EHa7HTt37sT27dvxzDPP+NTm/Px8/O1vf8Nll12G9PR0FBQUYOPGjTj77LO79T22JicnB7fffjveffddnH322Xj//fexceNGxMTE+LyOiIgI3HvvvXjsscdgMplw4YUXor6+Hp9//jkWLVrU7vto1JFtsiO6cr2xsbE+b+/+sFqtruEN7hovBLN06VLs3LkTO3bsQFpaGm677TbccMMN2LFjB2JjY1312/tb64r+6Kq/CcC37aM7+76r1u3LZ0l3bedtuemmm/DCCy/g4YcfxvTp05GQkOBa1pX96uu6Ovq/oKu2NV9+P/7qyr8HX4SHh2PevHmu9zJo0CCsXr0ae/fu9fj9NnfHHXdgzJgx+O1vf+sqO+ussxjeA4ThnTpt6dKl0Gg0WLhwIU6ePImsrCy89dZbmDJlike9q6++GpGRka6vPq+55ho8++yzANRhF++99x4WLFiAM888E/369cPTTz/tMXWdL+vxx7333oudO3firLPOQm1tLdatW4dJkyYBAIxGI2bNmoWXX34ZN998c7vrWrZsGRoaGjBr1iwAwG9+8xvccccdeO+991x1lixZgtTUVLzyyiu47777YDKZMGjQIMyePdvnNoeHh+PAgQO49tprcfLkSZjNZlxyySV47rnnuv09enPTTTdh165duPPOO2G1WnHDDTdgwYIF+Pvf/96h9Tz55JNISEjAyy+/jLvvvhuxsbEeY3rbeh/ufN0mO6qr1tuR7d0fGzdu9HrewsmTJ7F//3488cQT+OCDD5CWlgYAeO6557BhwwbMnTsXH3zwgat+e39rXdUfXfE3Afi2fXRn33flun35LOmu7bw1Z555JkaMGIEdO3Zg8eLFHsu68r37ui5//he0t629+eab+N3vfodDhw55THXbnC+/H3911d+Dr5555hk0NDTg+uuvh0ajwfXXX++aetWbjz76CGvWrPF6bsWHH37YLW0kT5LorgHDRKeJmTNnor6+Hv/+97+D3ZRu0xveI3XMpEmTkJWVhTfeeCPYTSEKmEceeQQffPABfvrpJ2i1vff45gUXXIDY2FiPnXnqOXrvlknUjoqKCmzcuBEfffRRt30NHWy94T0SEfnqP//5D5YvX96rgvvOnTuxbds2nHfeebBarfjHP/6BdevW4fPPPw9206gVAdk6X331VWzbtg3R0dF4/vnnWyzfuHEjPvnkEwDqV/hz585t8+sqokAYOXKka6ylt6EZp4Pe8B6JiHzV0RPtTweSJOG1117DggULoCgKsrOz8dFHH2H69OnBbhq1IiDDZvbs2QOj0YgVK1Z4De95eXno06cPIiIisH37drz33nt4+umnu7tZREREREQhJSBH3ocOHdrmdFGDBw923R84cCDKysoC0SwiIiIiopDS4wZ1ff311xg5cmSry3Nzc5GbmwtAPdubiIiIiKi36FHhfdeuXVi3bh2eeOKJVuvk5OQgJyfH9bj5hWECKT4+HqWlpUF7/VDGvvMf+65z2H/+Y9/5j33nP/Zd57D//BfsvktNTfVa3vGrsXSTI0eO4PXXX8f999+PyMjIYDeHiIiIiKjH6RHhvbS0FM899xzuvPPOVvcyiIiIiIh6u4AMm3nxxRexZ88eVFdX47bbbsPMmTNht9sBAFOnTsX777+Pmpoa18VAZFnmeHYiIiIiomYCEt4XLlzY5vLbbrsNt912WyCaQkREREQBJoRAQ0MDFEWBJEnBbo5PiouLYbFYuvU1hBDQaDQwGo0+90uPOmGViIiIiE4/DQ0N0Ol0IXX1Wq1WC1mWu/117HY7GhoaYDKZfKrfI8a8ExEREdHpS1GUkArugaTVaqEois/1Gd6JiIiIqFuFylCZYOlI/zC8ExERERGFCIZ3IiIiIqIQwfBORERERBQiGN6JiIiIqFfYu3cvzj33XKxevbpT61m3bh3Gjx+PcePGYfny5a3WGz16NKZMmYILL7wQ06dP79RrNmJ4JyIiIqJeYciQIXj11Vfx/vvv+70Oh8OBhx9+GG+99RbWrVuHjz/+GPv372+1/nvvvYe1a9fiv//9r9+v6Y7hnYiIiIh6jfj4+DbDdnu2b9+O/v37o1+/ftDr9bjiiivw5ZdfdmEL28YJN4mIiIgoYK54e1+3rfuTG7LbrfP000/DarXi+PHjSEtL81h25ZVXoqamBoA6faMQAgCwZMkSTJgwAQBQVFSE1NRU13NSUlKwfft2r68lSRKuu+46SJKEG2+8ETfeeKNf78sdwzsRERER9Qrr1q1DfX09pkyZgry8vBbh/aOPPnLd12q1sNvtLdbRGOjdtTZP+8cff4zk5GSUlpbi2muvRVZWFsaMGdOp98DwTkRERESnvYaGBixduhSrVq3CO++8g7y8PEyZMsWjji9H3lNSUlBQUOB6TmFhIZKSkry+ZnJyMgB1qM706dOxY8cOhnciIiIiCh2+DG3pDi+99BKuvvpqpKenIzs7G2vWrGlRx5cj7yNGjMChQ4dw9OhRJCcn45NPPsGKFSta1Kurq4OiKIiIiEBdXR3Wr1+Pu+++u9PvgyesEhEREdFpLT8/Hxs3bsTcuXMBANnZ2cjLy/NrXVqtFk899RSuv/56TJo0CZdddhkGDx4MAJg1axaKiooAACdPnsSMGTOQk5ODSy65BFOmTMHkyZM7/V4k4W3gTghx/9oi0OLj41FaWhq01w9l7Dv/se86h/3nP/ad/9h3/mPfdU5P6b+6ujqEhYUFuxkd0tqR9+7grX/cT4p1xyPvREREREQhguGdiIiIiChEMLwTEREREYUIhnciIiIiohDB8E5EREREFCIY3omIiIiIQgTDOxERERFRiGB4JyIiIiIKEQzvRERERNQr7N27F+eeey5Wr17dqfXcc889OPPMM3HBBRe0WW/dunUYP348xo0bh+XLl3fqNRsxvBMRERFRrzBkyBC8+uqreP/99zu1npkzZ+Ltt99us47D4cDDDz+Mt956C+vWrcPHH3+M/fv3d+p1AYZ3IiIiIupF4uPjOx2ix4wZg5iYmDbrbN++Hf3790e/fv2g1+txxRVX4Msvv+zU6wKAttNrICIiIiLy0fqMKd227omHvmq3ztNPPw2r1Yrjx48jLS3NY9mVV16JmpoaAIAkSRBCAACWLFmCCRMmdKgtRUVFSE1NdT1OSUnB9u3bO7QObwIS3l999VVs27YN0dHReP7551ssF0Jg1apV2L59OwwGA+bPn48BAwYEomlERERE1EusW7cO9fX1mDJlCvLy8lqE948++sh1X6vVwm63+/1ajcHfnSRJfq+vUUDC+6RJkzBt2jSsWLHC6/Lt27ejqKgIL7/8Mg4cOIA33ngDTz/9dCCa5rf6wydQU90ARBqD3RQiIiIiakdDQwOWLl2KVatW4Z133kFeXh6mTPH8FqArj7ynpKSgoKDA9biwsBBJSUmdfBcBCu9Dhw5FSUlJq8u3bNmCCRMmQJIkDBo0CLW1taioqEBsbGwgmtdhVTv2Ydfch6GPicKZ7/wZenNMsJtEREREFBJ8GdrSHV566SVcffXVSE9PR3Z2NtasWdOiTlceeR8xYgQOHTqEo0ePIjk5GZ988kmrB7I7okecsFpeXo74+HjXY7PZjPLy8iC2qHWO2nrsnLMItrJK1B48il03PwxHXX2wm0VERERErcjPz8fGjRsxd+5cAEB2djby8vL8Xt/8+fNx+eWX4+DBgzjnnHPwr3/9CwAwa9YsFBUVAVDD/1NPPYXrr78ekyZNwmWXXYbBgwd3+r1IwtuAnG5QUlKCZ555xuuY9z/+8Y+48sorkZ2dDQB44okncOONN3od956bm4vc3FwAwLJly2C1Wru34V6c+CQX38+6D3B2XfJF43He/3sRGi3P//VVZ/dmezP2Xeew//zHvvMf+85/7LvO6Sn9V1xcDIPBEOxm9FgWi6XFkBq9Xu+1bo9Im2azGaWlpa7HZWVlrQ6ZycnJQU5Ojuux+/MCxTBuBLIeuxP5j74CACj6ciO+m7cYg5bd2yUnIvQG8fHxQfndnQ7Yd53D/vMf+85/7Dv/se86p6f0n8VigSzLwW5GhwRyx8disbT4PbnPVOOuRwybGTVqFDZs2AAhBPbv34+wsLAeO969UZ/fzkDqZU1X1Sp697848mLnrtZFRERERNSWgBx5f/HFF7Fnzx5UV1fjtttuw8yZM117MlOnTsXIkSOxbds2LFiwAHq9HvPnzw9Eszot7erpqC0pxakffgYAHHn5H9AnxSP1+kuD3DIiIiKiniNAo7RDVkf6JyDhfeHChW0ulyTJdQJBKJEkCak3XAZ7VS1q9x4EABxY8hL0CXGIv3BskFtHRERE1DNoNBrY7XZoeX5gC3a7HRqN74Nh2IOdJMky0udeg8MvrUbD0UJAUbB3wVM48+0/IfrsYcFuHhEREVHQGY1GNDQ0wGKxhMz5gQaDARaLpVtfQwgBjUYDo9H36wYxvHcBjVGPvrdfh0PPr4KttAJKgwW75jyMEe/8GeGDM4LdPCIiIqKgkiQJJpMp2M3okJ5ysm9zPeKE1dOBNioCfe+4HnJEGADAfqoaP//2D6g/WtDOM4mIiIiIfMPw3oUMiWb0veMGaIzqvJzWkjL8POsBWErKgtwyIiIiIjodMLx3MVPfFKTfdi0knToiqeFoIXb+9g+wVVYFuWVEREREFOoY3rtB+MD+SLv5KkCjnpBRm3cIO+c8BEdtfZBbRkREREShjOG9m0SeMRips65wPa7evhe7b3sUisUaxFYRERERUShjeO9GMeeeieRrprkeV3yzFXsXPg1hdwSxVUREREQUqhjeu1ncpHORcMlE1+PSLzZi3/3PQjgY4ImIiIioYxjeAyB++gTETR7telzycS72P/wihKIEsVVEREREFGoY3gNAkiQkXTUVMePOdpUVvfM58h9bDiFEEFtGRERERKGE4T1AJElCyrWXIHr0ma6ygn98gl+efp0BnoiIiIh8wvAeQJJGQuoNlyPqnGGusuNvvIfDL7wZvEYRERERUchgeA8wSdagz00zEHnWYFfZ0eVv4cjyt4PYKiIiIiIKBQzvQSDJMvr87ipEDMtylR1+/v9w9C//L4itIiIiIqKejuE9SDQ6LdJumYnwwRmuskPP/A1HX/tXEFtFRERERD0Zw3sQaXRapM/7DcIG9nOVHXr2DRxZwSE0RERERNQSw3uQaQx69L39OoQN6u8qO/zc/+HIK28Fr1FERERE1CMxvPcAXgP8C6tw+OW/B69RRERERNTjMLz3EBq9Dn1vvw7h2U1j4I/8eTUOv7g6iK0iIiIiop6E4b0H0eh1SJ93LcKHDHCVHXnp7zj0wipeyImIiIiIGN57GleAH5rpKjv6ylv4ZelfGOCJiIiIejmG9x5Io9Mi/dbfeMwDf3zl+ziw+EUIRQliy4iIiIgomBjee6jGeeAjR2S7ygr/+R/k3fcshN0RxJYRERERUbAwvPdgGp0WaXOuRvSvznCVFX+0Fnt+/yQUizWILSMiIiKiYGB47+EkWYPU385A7PnnuMpKv9iIXfMegaPBEsSWEREREVGgMbyHAEkjIfnaixF3wRhXWcX6zdg5exHs1bVBbBkRERERBRLDe4iQJAlJv74Q8RdPcJWd+uEn/HT9vbCWVgSxZUREREQUKNpAvdCOHTuwatUqKIqCKVOmYMaMGR7L6+rq8PLLL6OsrAwOhwOXXXYZJk+eHKjmhQRJkpB4ySRo9HqUfJwLAKjZdQA7rrkLZ/7jWRjTkoPcQiIiIiLqTgE58q4oClauXImHHnoIf/7zn/Htt9/i+PHjHnW++OILpKWl4U9/+hMee+wx/P3vf4fdbg9E80JO/IVjkXL9pYAkAQDqD5/A9qsWoGbfL0FuGRERERF1p4CE9/z8fCQnJyMpKQlarRZjx47F5s2bPepIkoSGhgYIIdDQ0ICIiAhoNBzV05rYcWcjbe41kLQyAMBaUoaffnM3Tm3ZFeSWEREREVF3CciwmfLycpjNZtdjs9mMAwcOeNSZNm0ann32WcybNw/19fW4++67vYb33Nxc5OaqQ0aWLVuG+Pj47m18GwpkDSKjooL2+pETzkVkQhzyXlgFpcECe1UNdv72Dxj99z8hZdqE9lcQRFqtNqi/u1DGvusc9p//2Hf+Y9/5j33XOew///XUvgtIeBdCtCiTnEM+Gv3000/o168fHnnkERQXF+PJJ59EdnY2wsLCPOrl5OQgJyfH9bi0tLR7Gu0DxaGguroqaK8PAFKfRPRb+FscXfFPOKpr4ahvwKZr78LgZ+5D8lUXBbVtbYmPjw/q7y6Use86h/3nP/ad/9h3/mPfdQ77z3/B7rvU1FSv5QEZl2I2m1FWVuZ6XFZWhtjYWI8669atw+jRoyFJEpKTk5GYmIiCgoJANC/kmdJT0P+e2dCZY9QCh4K8+57FkVfe8rrjREREREShKSDhPTMzE4WFhSgpKYHdbsemTZswatQojzrx8fHYuXMnAKCyshIFBQVITEwMRPNOC4ZEM/rf8zsYUpv67PALq7B/0QtQbDzxl4iIiOh0EJBhM7IsY86cOVi6dCkURcHkyZORnp6ONWvWAACmTp2Kq666Cq+++iruvfdeAMANN9yAqCCOJw9FuphI9L9nNo7/7T3U5h0CABS98zksRScxbMWjkMNNQW4hEREREXWGJEJ8XEUwh9Y0bNwe9DHv3gi7AwX//DdO/fCzqyxi+EAMX7kUhkRzG88MnGCPIwtl7LvOYf/5j33nP/ad/9h3ncP+81+w+y6oY94psCStjNRZVyB+2nhXWc2uA9j+69+jNv9IEFtGRERERJ3B8H6akiQJiZdNVi/mpFFn9rGcKMaOqxag4tttQW4dEREREfmD4f00FzvubKTfdi0kvQ4A1LngZz+Iwn99FuSWEREREVFHMbz3ApHDBqL/3bOhjY4EoI6J3//QCzj41GsQDkeQW0dEREREvmJ47yVMfVOQ8cDNMKYnu8qOr3wfu+c9CkdtfRBbRkRERES+YnjvRXQxUeh/92xEnjXYVVb21XfYfs1daCgoCWLLiIiIiMgXDO+9jMagR9rcmTBfONZVVrv3ILbPuANV2/cGsWVERERE1B6fwvuXX36J2tra7m4LBYikkZA0IwepN14OyOomYD1Zjh3X3o2i974IcuuIiIiIqDU+hff/+7//wxNPPNEiwG/cuLFbGkWBEXPeCPT7/Y2uK68Kqw15D/wJ+Y8vh2KzB7l1RERERNScT+HdYDBg/PjxeOKJJ1BTU+Mqf+ONN7qtYRQY4QP7I+OBuTCkJrrKTrz5EXbe9AfYyk8FsWVERERE1JxP4V2SJFx66aWYOHEiHn/8cVeAF0J0a+MoMPTxsci4dw4iRwxxlVV+twPbrpiPmr0Hg9gyIiIiInLnU3hvDOkXX3wxpkyZgscffxxVVVWQJKlbG0eBozHqkXbz1Ui4dJKrrOF4EbZftQAnP1sfvIYRERERkYvWl0ojR4503Z82bRo0Gg0ef/xxOHiBn9OKpJGQMH0CjKlJOLH6IygWK5T6Buy58wmk7bgGA/5wCyStHOxmEhEREfVaPh15v/vuuz0eT506FdOnT4dOp+uWRlFwRZ41GP3vmwN9Qpyr7Pgb7+GnG++H9WR5EFtGRERE1Lv5Pc97Tk4OVq1a1ZVtoR7EmJqIjAduRsTwga6yUz/8hK2X3oZTW3YFsWVEREREvRcv0kStksNMSJ93rToO3nl6g7WkDD9ddw9OvPkRT1gmIiIiCjCGd2pT4zj4vnfc0DQfvN2B/MeXY9/Cp+GorQ9yC4mIiIh6D4Z38knEkExk/OEWGPumuspKPv0aWy+/HTX7fgliy4iIiIh6D5/C+6effuq1/D//+U+XNoZ6Nr05Bv3vmY2YcWe7yup/OYbtM+5A4f/7jMNoiIiIiLqZT+H9gw8+6FA5nb40Oi1Sr78Uqb+dAUmvzjakWKzYv+gF7Lv7j7DX1AW5hURERESnrzbned+1S51VRFEU1/1GxcXFMJlM3dcy6tFiRp8JU78UHF/5ASwFJQCAkk++QvXPeRi6/BFEDM0McguJiIiITj9thvfXXnsNAGC1Wl33AUCSJERHR2POnDnd2zrq0QzJCci4/2YUvfcFKjdtBwDUHzqObVfegawl85Fyw2W8Ci8RERFRF2ozvK9YsQIAsHz5ctx5550BaRCFFo1eh9QbLkP4wP4o+Nd/IKw2CKsNB5a8hPL1mzH4mfugi4sOdjOJiIiITgtthvdGd955JyorK5Gfn4/q6mqPExMvuOCCbmschY7oc8+AsXEYzYliAEBZ7iZsmX4Lsl94ELFuJ7kSERERkX98Cu8//vgjXnnlFaSkpODYsWNIT0/HsWPHkJ2dzfBOLoakeGTcfzNKPs5F+f9+BKBe1OnnWQ8g7ZZrkHHvHGicJ7kSERERUcf5NNvMO++8g/nz5+PZZ5+F0WjEs88+i1tvvRUZGRnd3T4KMRqdFsnXTEP67ddBjghTC4XA8b++i+1XL0DdL8eC20AiIiKiEOZTeC8tLcV5553nUTZx4kRs2LChWxpFoS9y+EBkPnQbwoc0zTpTs3M/tl56Gwre/jfnhCciIiLyg0/DZqKiolBZWYmYmBgkJCRg//79iIyMhKIoPr/Qjh07sGrVKiiKgilTpmDGjBkt6uzevRtvvvkmHA4HIiMj8fjjj/u8fup5tNER6Dv/epT/7weUfPIVhN0Bpb4BBxa/iKr1m5Hx5AIYkuKD3UwiIiKikOFTeJ8yZQr27duHMWPG4JJLLsHjjz8OSZJw6aWX+vQiiqJg5cqVWLx4McxmMxYtWoRRo0YhLS3NVae2thZvvPEGHn74YcTHx+PUqVP+vSPqUSSNBPMFYxA+sD9OvPkRLEUnAQDFa79F2eafMfDJhUi8dFJwG0lEREQUInwK7+5HySdOnIhhw4ahoaHBI3y3JT8/H8nJyUhKSgIAjB07Fps3b/Z4/jfffIPRo0cjPl49EhsdzekFTyfG9GRkPHgLSj79GuXrvgcEYK+sxt7fP4mytd8i64kF0EVHBruZRERERD2aT+G9ucaA7avy8nKYzWbXY7PZjAMHDnjUKSwshN1ux2OPPYb6+npcfPHFmDhxYot15ebmIjc3FwCwbNmyDrelKxXIGkRGRQXt9UNR9O+uRtWYEfjlr+/AUloBACj59GtUb9mFs195FMlTzw9yC3s+rVYb1O0+1LH//Me+8x/7zn/su85h//mvp/adX+G9o7ydnNj8ypsOhwOHDh3CkiVLYLVasXjxYgwcOBCpqake9XJycpCTk+N6XFpa2j2N9oHiUFBdXRW01w9VUp9EDH/6XuT/33s49f1PAID6ghJ8e9UdSL5mGjIX3w5tVESQW9lzxcfHB3W7D3XsP/+x7/zHvvMf+65z2H/+C3bfNc/AjXyabaazzGYzysrKXI/LysoQGxvbos5ZZ50Fo9GIqKgoDBkyBEeOHAlE8ygItCYj+sy6Amm3zmyaUhJA0XtfYPPUOSj76rsgto6IiIioZwpIeM/MzERhYSFKSkpgt9uxadMmjBo1yqPOqFGjsG/fPjgcDlgsFuTn56NPnz6BaB4FUdRZ2chcfDuizhnmKrMWl2HX3MXYd88y2Cr5zQYRERFRozaHzTROD9lZsixjzpw5WLp0KRRFweTJk5Geno41a9YAAKZOnYq0tDSMGDEC9913HzQaDS644AL07du3069NPZ82Mhxpc65C1dlDUfj/PoejuhYAUPzRWlR8sxUDn7oL8RwLT0RERARJtHG1nJtuugmrV692PX7uuedw3333BaRhviooKAjaazds3M4x736KjIpCdVXLvrPX1KHovS9QtWWXR3n8tPHIeuxOzguP4I/BC3XsP/+x7/zHvvMf+65z2H/+C3bf+TXmvXmu3717d9e1iMgLbUQY0n73a6Tf+huPk1ZLv9iIzRfOQcE//w3RgYuDEREREZ1O2gzvzWeEIQqUyLMGI3Px7Yg5b4SrzFFdiwMPv4ifrr0HdQePBq9xREREREHS5ph3h8OBXbuahi8oiuLxGACGDx/ePS2jXk8ONyH1xssRfe4ZKPznZ7CeLAcAnNq8E1suvhV977gefeddC41BH+SWEhEREQVGm+E9Ojoar732mutxRESEx2NJkrB8+fLuax0RgPBBGRjw0Dyc/O8GlOV+BygKhNWGI39ejZKPv8LAJxYg9vxzgt1MIiIiom7XZnhfsWJFoNpB1CaNXoekK6YgetRwFLz9bzQcUU9Urj90HD/PegAJl01G5uLbYUg0t7MmIiIiotDl0xVWjx8/jr1796KmpgaRkZHIzs5GWlpad7eNqAVjnyRk3DcHFRu2oOTf66A0WAAAJ/+9DuXrfkD/e36HPrOugKSVg9xSIiIioq7XZngXQuC1117D+vXrYTabERsbi/LyclRUVGDChAm4/fbbeVIrBZyk0SBu0rmIHDkExR+udU0r6aipw8EnVqD4/S+R9eQCRJ89rJ01EREREYWWNsN7bm4u9uzZg6VLlyIrK8tVnp+fj5deeglr167F1KlTu72RRN7ooiOR9rtfo3bsSBS+8zmsxWUAgJo9+dhx1QIkXXkhMh68hUNpiIiI6LTR5lSRGzZswO9+9zuP4A4AWVlZmD17NjZu3NitjSPyRfjgDAxYNA8Jl02GpGvaHy3+aC02X3ATjr3+DhSrLYgtJCIiIuoabYb348ePY+jQoV6XDR06FMePH++WRhF1lEanRcK08chcMh+RI7Jd5Y7aevyy7K/YMm0uytf/GMQWEhEREXVem+FdURSYTCavy0wmE5ReeqXLgior3ttVil+sEhTRfn0KHL05Bum3zETfO2+APjneVV5/6Dh2zl6EXXMXo+7gsSC2kIiIiMh/HbpIU3O9Nbx/f7wab/1UCsCIKEmHYTorztBZMFRrRYSGab4niBiSicyH5qF8/Wac/Gy9a1aasq++Q/n6H5F64+Xot2AWdLHRQW4pERERke86dJGm5qKiorq8QaFgW0Gt636VkPGd1YTvrCZIEMiQbRius2KYzooM2QYNJ+MJGkmWYb5gDKJHDUfJp1+j8rsdAABhd+DEmx+h+KNc9FswC6k3Xg6NXhfcxhIRERH5QBJChPSh4oKCgoC/5sbDVfjxRA02H65EfRsjj8IkBUO1VgzTWTBMZ0Wcpnd+U+FNZFQUqquqAvqa9UcLUPzBGtTlH/UoN/XvgwGLboX5wnEhMfVpfHw8SktLg92MkMX+8x/7zn/sO/+x7zqH/ee/YPddamqq1/I2j7xbLBZ88MEHOHbsGDIyMnDllVdCp+MRyvH9ozC+fxR+OH4ARywOHJJMOCSZUAQDhFv4qxMabLEZscVmBACkauwY6gzyg7RWGHp+TjytmPqmot/Cm1D9Ux6KP1oLW2kFAKD+8AnsnvcookYNx4BFt3J+eCIiIuqx2gzvK1euxMGDBzFy5Ej88MMPqKmpwZw5cwLVth5PIwEpsCJFWDFWnEI9NDgimXAIRhyWTKiVPLu3QNGiwKJFriUcWghkaW0Y6hwr31e2c4hNAEiShKgR2YgcPhDlGzbj5OcboNQ3AACqtuzCjqsWIH7aeGTcdzPCMtOD3FoiIiIiT22G9x07duCZZ55BbGwspk2bhkcffZThvQ0mKMgWtchGLYQASqHDYcmEw5IJx2GEw+2ovB0S9tn12GfX40MAEZKCbK0VQ3VWDNFakCBziE13krTO8fDnnonS/25A+cYtgEPt89IvNqJ07bdI+c3F6HfXb3mRJyIiIuox2h02ExsbC0Ad91NXVxeQRp0OJAAJsCFB2PArUQUbJByDEUck9ah8maT3qF/TbIhNgsaOoVorhuisyOYsNt1GGxGG5GumIW7SuSj59zpUbd2tLnAoKPznf1D8US7S5lyF9FtnQhsVEdzGEhERUa/XoakiFUVpMXXk8OHDu6dlpxkdBAagHgNEPSAqUA0ZRyQjjsCEI5IJdZLsUf+kosV6qxbrrWGQIJAu2zFEa0W2zoqBWhuMEsN8V9InxCFtzlWon3Ieij/ORd3+wwAApb4BR1e8jYJ/fIK0W2cibfavIYd7v/YBERERUXdrc7aZO+64o+0nSxKWL1/e5Y3qiGDMNtNo87vr0dBQ3+n1CKhDbI5IJhyWjDgOI+xS67PYyBAYoLUhW2vFEK0VGVobdCE2Xj4Ys834SgiB2r0HUfzxV7CcKPZYpjPHoO/865F6w2XQGPStrKF7Bfvs91DH/vMf+85/7Dv/se86h/3nv2D3nV+zzaxYsaJbGkOe3IfYjBJVsAMohAFHJBOOSMYWs9g4IOGAXY8Ddj3+DUAPgUytOrwmW2dDP9kGbYiF+Z5EkiREDM1CeHYmqrbtxsnP/gdrSTkAwFZWiYNPvorjb7yHvnfeiOSrL+Ic8URERBQwbYZ3Cg4tgHRYkC4sOF8AFkg4DiOOSkYckUwobTZe3goJe+0G7LUbgAbAAAUDtTYM1lkxWGtFP9kOmWG+wySNhOhRwxE1cigqf/gJJz9fD3uF+m2BpfAkDjz8Zxx99Z/od8cNSLpqKkM8ERERdTuG9xBggEAm6pHpHC9fCw2OSSYchRHHJCMqJM/QaIEGu+wG7LIbnM/3DPN9ZTuPzHeAJGsQO3Ykon91Biq/3YaTX2yEo1q9yq7lRDH2P/QCjqx4myGeiIiIuh3DewgKd5uSEgKohoyjkhFHYcRRyYTqZvPLewvzWVobBmmtGKSzob8cemPmg0Gj0yJu0rmIOW8EyjdsRlnud3DUqDMwuUL88rfQ944bOJyGiIiIugXD+2kgEg4ME7UY5pxf/hS0OCYZccx5ZN5bmN9tN2C3c5iNDgKZWhsGatUrvw7Q2nj11zZoDHrEXzgOceN/hfKNzUJ8QYk6nGb5W0i7ZSZSrr0YsskY5BYTERHR6YLh/TQjAYiBHTGiBmegxqcwb3O7YBSgzmbTT7ZhkNaGQTorsmQbwjjPfAsao3uI34Ky3E1NIb7wJA4+sQJHV7yNtJuvRuqNl0MbGR7kFhMREVGoY3g/zTUP83CFeQOOO8P8qWZj5h2Q8ItDj18cenxhCYcEgVTZjoFam/PHijgNrwDbSA3xYxE3fpQa4r/6zjUm3lZWiUPPvoGjr/0LfW66Emm/+zV0cdFBbjERERGFqoCF9x07dmDVqlVQFAVTpkzBjBkzvNbLz8/Hww8/jLvvvhtjxowJVPN6lWjYES3sGO42Zv64ZMRxGHBcMra4+quAhBMOHU44dPifRS2L0zgwUKselc/S2tBHtkPTy4fauEL8xF+hctN2lOZucs1O46iuxdHlb+H4yveRMnM60uZeDWNacpBbTERERKEmIOFdURSsXLkSixcvhtlsxqJFizBq1CikpaW1qPf2229jxIgRgWgWOUXCgSGiFkOcYb4OGpyAEcclNcyXQO8xzzwAlCsyfrCa8APUq42aoGCAVg3yWVobMnrxVWA1eh3iJp2L2PPPQeWPP6Ns7beueeKV+gacWP0RTrz1CRIvmYS0W2cictjAILeYiIiIQkVAwnt+fj6Sk5ORlJQEABg7diw2b97cIrz/97//xejRo3Hw4MFANItaEQYFA1GHgaIOEOo88oXOo/InJAMKYGhxBdh695NgAWggkCbbkaW1IVNrQ5asDrWRetHReUkrI3bsSMSMOQtV2/ei9Mtvmq7Y6lBQ8unXKPn0a8Sefw7S5/0GMePOhtSbOoiIiIg6LCDhvby8HGaz2fXYbDbjwIEDLer8+OOPePTRR/Haa6+1uq7c3Fzk5uYCAJYtW4b4+PjuabQPZI2EMJMpaK8fKGEAYgAMgQWABQ4BFAktjgk9jik6HBM61ED2eI4CCUcdOhx16PC1c6hNrCwwyKBgoEFBtlWgX2QU9L0kq0ZNPg99Jo3BqV37UfjZ/1C1u2n7r/hmKyq+2Yro4YOQdceNSL9mOmSDvtV1abXaoG73oY795z/2nf/Yd/5j33UO+89/PbXvAhLehWg5fKL5EcY333wTN9xwAzQaTYu67nJycpCTk+N6XFpa2jWN9INDEWhoqA/a6wdTrPPnTAAC6kmw6lF59eh8KXRofpi9wiHhhzoZP9SpQV+GQF/Zjkzn9JSZsu20Pzov90tB2vzrUH+0AGW536Fq2x7A+fdxatd+bL39Efy85M9InXU5Um+4HHpzTIt1xMfHB3W7D3XsP/+x7/zHvvMf+65z2H/+C3bfpaamei0PSHg3m80oKytzPS4rK0NsbKxHnYMHD+Kll14CAFRVVWH79u3QaDQ499xzA9FE6oSmGW3sGOYcN29xDrU5IRlRIBlQCAOszYbaOCDhkEOHQw4d4Dw6HyU5MEBrU39kG/pr7afl2HlT31SkzbkK1ssvQNlX36Py+x0QVhsAwFZagSN/Xo2jK/6JpCsvRNrvfo3wwRlBbjERERH1BAEJ75mZmSgsLERJSQni4uKwadMmLFiwwKPOihUrPO6fc845DO4hzACB/mhAf9EACEABUAodCp1H5ws1RpR72fyqhIwdNhk7bOqFjRqnqRwg25ChtSNDPr1mttHHxyLlN9OReOkkVHy7DeXrf4S9shoAIKw2FL3zOYre+Rwx541A6m9nID5nbJBbTERERMEUkPAuyzLmzJmDpUuXQlEUTJ48Genp6VizZg0AYOrUqYFoBgWRBkAibEgUNpyFGoTpTSirt6AQBvXIfCtH592nqdxoVcsMUNDPGeQztDZknAbDbeRwE+KnjoN5yhhUbd+Lsq++R8PRAtfyyu92oPK7HTCkJiLrlmsRffkkzhdPRETUC0nC24D0EFJQUNB+pW6y+d31vXbMe2eFmUyoq/fsOwVAufPofCEMKJT0KPUyTaU3kZKC/s4w398Z6CND+KqwQgjU/3IMZet+QPVP+wDF871Ieh0SL78AqTdcjsizBnOWmg4I9hjGUMa+8x/7zn/su85h//kv2H0X1DHvRL7QAIiHDfHC5roarBUSimBAkaR3hfoaqeVmWy002Gk3YKdzqkpAvZBUhmxDP60NGbId/WQbwkIk0EuShLDMvgjL7AtbRRUqvtmCim+2wVFTB0AdUlP8/pcofv9LRAzLQuoNlyPx8gsgh5/+sx8RERH1Zgzv1KPpIdAXDejrHDsPADWQUegW6Iuhh0WSWzy3XJFRrsjY6hw/DwCJGjv6y3b009rQT7ahr9aOsB5+QqwuNgqJl12A+GkTULVtN05t3IraQ8ddy2t252P/Qy/g4B9fR9KMHKTecBlPcCUiIjpNMbxTyImAw+MiUgJABbQoch6ZL5L0KIEeDqnltKMlihYlihY/ugX6JI0d/WQ7+jYGetmO8B54hF6j0yJm9FlIv3A8in/ag4pvtqJq624Imx0A4KiuRcE/PkHBPz5B1NlDkXLtJUi4ZCLkMB6NJyIiOl0wvFPIkwDEwY44YcdQ51SVDgBl0KNI0qPYGehPQg/Fy9jwYkWL4maBPt4Z6BuPzveVbYjqQYE+LCMNYRlpSP71VFT+8BMqvtkKa3HTdKxV2/agatse5D+xAomXTUbKtZcg4oxBHBtPREQU4hje6bQkA0iEFYnCCjjHz9sh4SR0KHYOtSl2nhDrLdCXKlqUKlqPITcxksMV5Ps6g32wZ7mRw00wXzAGcZNHo+7AYVRs2Iqqn/cBDgUA4KipQ+G/PkPhvz5D+JBMpMycjsQrLoAuljPVEBERhSKGd+o1tBBIgRUpwjnnpJdAX9LGEfpKIaPSJuNnW9NJsWGSgr6yHenOQJ+utSNZY4c2wIFekiSED8pA+KAM2KtrUfnDT6jctN3jaHzt3oPIf3w5Dj79F5innIfka6YhbsKvIGlbni9AREREPRPDO/Vq3gK9A0Cp88i8GugNOAkd7F7G0NcJDfbZ9dhn13usM1W2I90Z6tOd9wM10402MhzxOWNhnnIe6g8eQ8Wm7aja1jQ2XtjsKP1iI0q/2Ah9QhwSr8xB8tUXIXxg/4C0j4iIiPzH8E7UjAwgCVYkuQX6xjnoS1yBXj0p1tssN3ZIOOrQ4ahDB6DpZNE4jcMV6NNkO9JkOxI1jm67WqwkSQjL6ouwrL5IvuYinNqyC6e+/wn1h0+46lhPluP4X9/F8b++i4gzBiFpRg4SL5sMfUJc9zSKiIiIOoXhncgH7nPQN54UKwBUQUYJDOpwG0mPEuhQJem8rqNx6sqf3Ibd6CHQR7YjTbY5b9WfiC4+Si+bjIgbPwpx40fBUnhSHVbzw89wVNW46tTs3I+anftx8Om/IPb8c5A0IwfxU8dxthoiIqIehOGdyE8SgGg4EO02bSUANECDEuhxUtI5b/Uogx4OL+PorZBwyKHDIYdn4I+RHB5hvo9sR4psh64LjtIbUhKcR9gvQM3eg6j8fgdqdu6HsDvUCg4FFes3o2L9ZmjCjIi/cBwSL78AseNHQaPjRwYREVEw8T8xURczQmm6sBTgGkdfDh1OOk+IVW91qPVytVjAeXKsXcZutyvGaiCQqHGgn0VCshKOPrIdqZ0YeiPJGkQOH4jI4QPhqGtA1fY9OPXjz6jLP+qqo9Q1oOSTr1DyyVfQxkQiYfoEJF5+AaLPPROSpuU5AERERNS9GN6JAkAGkAAbEoQNcA67AYBaaFDqFuZLJT1KofN6gSkFEooULYrqACDCVa6DQIozyPeR7UjVqPfNGsXnUC+HGRE77mzEjjsb1rJKVG3Zhcoff4a1qNRVx15Z7Zp2Up9kRsKlk5B4ySREjhjC+eOJiIgChOGdKIjCoSAcDejndpReAVABHUqdR+pLJR1KoUcltPA2qbzN4wTZJgYoSJEdSHUOuWkM9nHthHq9OQbxF50P89RxaDhehKotu3Bq627YK6pcdazFZTix8gOcWPkBDKmJiJ8+nkGeiIgoABjeiXoYDQAzbDDDhsFuY+mtkFAGHar14ThhA8qcR+lrWhl6Y4EGhx0aHG4W6vVuR+pTZDtSNQ6kyHYkNBt+I0kSTOkpMKWnIPGKHNT/cgyntu5C1bY9cNTUNb1OQUmLIJ8wfSKiRg7h0BoiIqIuxvBOFCL0zjnpM2UZg6z1rlBfDw3K3IbclEp6lEGHei/TWALqTsARhw5HmoV6LQSSZDtSnGE+xXk/WbZDp3GbdvLqaajN+wVV2/eiesc+OOrqXetwD/L6hDjEX3Q+4i86H9Gjz+LJrkRERF2A/02JQpwJCtJgQZqwqAVu4+nLoEeZpA7BaTxS39BKqLdDwgmHDiccOsDWVC5BIF7jQIrsQLLGjmTZgZRBQ5CSPRAp116M2rxDXoO89WQ5Ct76FAVvfQptdCTMOechfur5iB1/DmSTsbu6g4iI6LTG8E50mmocT+8+6w0A1DmP1Jc5j9CXSTqUtTHzjYCEk4oWJxUtfobBY1mEpCA5LR7J/c5G8gwLUg4eQMTOnbD/vNdjaI39VDWKP1iD4g/WQGM0IPb8c2DOOQ/mKedBHx/bLe+fiIjodMTwTtTLhEFBGCxIb3akvgEalLuF+XLn7alWTpQFgBqhQb5Dj3wHAJiA9F8B6b+CdpoDQ44dwOA9O5C8eyf0lZWu5ygNFpTlbkJZ7iZAkhB19lBXkA/L6scTXomIiNrA8E5EANT56VNhQWqzUG+DhEpoUSbpUA7nj/O+3cuUlgBg18jY2S8bO/tlA9N+g6SCo8javQOZ+3YivqSwqaIQqNq6G1Vbd+PQM2/AmJ6CuMmjYb5gDGLGnAWNQd/N75qIiCi0MLwTUZt0EG5z1DsJNdtXQ/YI8423HjPgSBKK+/RDcZ9++HbqFYgpK8GAfTuRtfdnpB45CI0QrqoNxwpR8PePUfD3jyEMBmh+dRZiJ56L9KnnIaZvcuDeNBERUQ/F8E5EfpEARMGBKDjQv9m4eiskVECHCkmHcmhR7rxfAR0qzYnYNm4Kto2bAmNtDQbk7cKAvF3ol78XBktD0/otFohvfkT5Nz+ifOlyVCSloPLMM6H8aiSiRp2BlLgwpETqkRypQ5jO+0m4REREpxuGdyLqcnoIJMGKJGFtKnQera+DjHJo1TBv0qFi5JnYNPJsfGmXkHz0FwzI24WM/bsQV1risc7Y4kLEri0E1n4Jq16PvIxBWJM1BEeyhkDpk4LkKANSInVIiVADfbLzNtogcxw9ERGdNhjeiShgJADhcCAcjhYnzCoaoLp/OCr6j8OxaZOQX1YJ0/58xB7Yj+TD+dDa7a716K1WZObtQmbeLgBAVXQsjmQNwZGsbHyfORgNYRGuuiatxhnm1UCflWJDBKxIitAhIVwHbVuXmyUiIuphGN6JqEfQAIiGHdGwq8Nw4mRgzGBgzGAoVhvqjhTAceAQ9AcOwlBe7vHcqFMVOGPrJpyxdROEJKEkJQ1HBwzG0czBONEvE4fsCg5VOHcW9jY9VyMBCeE6JEXokBSuhvvEiMagr0Mkj9oTEVEPw/BORD2eRq9DxMB+wMB+ACZBlFUABw9DHDwMcegoJEvT8BxJCCQVHENSwTH86ptcOGQZhekZapgfMAhFaf2haNWPPkUAxTU2FNfYvL6uUatRg70z3CdF6JDouq+HSed9th0iIqLuwvBORCFHMscC5lhI546EcCjAiUKIg4eBg4eB44WA2ww2ssOBtMP5SDucj7FffwaHXo+TGZk4mjEQB/sORHFqX1eYb67BruBIpQVHKi1el0caZCSFq4E+sTHcuz02ahnuiYioazG8E1FIk2QN0LcPpL59gMnjIBoswOFjEL8cAQ4dBUpKPerLViuS8/YiOW8vzgUgDAY0ZA9C5eDBKM4ciOMp/VBul3CqwQGbIry/qFO1xYFqiwP55Q1el0cZZCSENwX7hHCt63FCuA4Res6SQ0REHROw8L5jxw6sWrUKiqJgypQpmDFjhsfyjRs34pNPPgEAGI1GzJ07F/379w9U84joNCEZDUB2FqTsLACAqK4BDh2F+OUocPgoUHHKs77FAtNPO2H6aSdSAIzQ64DsgZDOHArrsGycysxChUaPUw12nGpwOH/sqLI44Gg726PK4kCVxYGDrYT7MJ3GGebVUJ8QpkO8K9xrEWPUQuYJtURE5CYg4V1RFKxcuRKLFy+G2WzGokWLMGrUKKSlpbnqJCYm4rHHHkNERAS2b9+Ov/71r3j66acD0TwiOo1JkRHAmUMhnTkUAGBssKJ+336Iw8eAQ8eASs8wD6sN+HkPxM97oAMQr9EgPrM/pOHZkM7IhnTGEEiJSRBCoMaqqKHe4mgR7KssDrRz4B51traH5Wg1QJzJecTeGezd78eHaRHOo/dERL1KQMJ7fn4+kpOTkZSUBAAYO3YsNm/e7BHeBw8e7Lo/cOBAlJWVBaJpRNTLaGKjIY0YDmnEcACAqDgFHDkGceQEcOQYUFbh+QRFAQ78AnHgF4iPPlfLkhIgDc9G+LDBiBg2GH2y+kNqNm5eEQK1buG+qsHhuq2yqAHfrrTdVrsClNTaUFJrA1DvtY5Jq0FCuBbxYTrEN96GaREfroM5TA36Bo69JyI6bQQkvJeXl8NsNrsem81mHDhwoNX6X3/9NUaOHBmIphFRLyfFRgPOQA84h9kcPQFx5Lga5otOtnxS8UmI4pMQX21UHxv0wOAsSEMHQRo2GNKwQdCY4xBpkBFpkJHWcg0QQqDepqiBvvGnwfN+fXvpHkC9XcHRU1YcPWVttU6kXgOzM9Q33saFqUHfHKaFOUzLq9QSEYWIgIR3IVp+d9za3Mm7du3CunXr8MQTT3hdnpubi9zcXADAsmXLEB8f33UN7SBZIyHMZAra64cySaNh3/mJfdc57fafyQQkJgCjRgAARH0DHEePw3H4GJQjx+A4cgKwNZta0mJ1DbVp/LTTJCdCHp4N7bBsaIcPgXboQEjNXjcaQHIbbbU6FJyqt+FUvR2VDTb1foMdlfVN9+3tjc0BUG1VUG214HArw3MAIFwvIyFCj4QIAxLC9UiIdN66lWlkOaifuaFMq9Wy7/zEvusc9p//emrfBSS8m81mj2EwZWVliI2NbVHvyJEjeP3117Fo0SJERkZ6XVdOTg5ycnJcj0tLS73WCwSHItDQ4P2rbGpbmMmEunr2nT/Yd53jV//17aP+YAwkh0M9Gn/sBMSxAuBYAXCqqsVTlKISKEUlsOVuUAtkDdC/L6TsLEiDMyFlDwQG9IWk07X50gYAiUYg0agBYgzOEpUQAvV2BdUWBVUWu/PW4ZoFp9riQLW1/bH3AFBrdaC2vB6Hy1vvG61GQqxRRlyYFnEm9ah9nEnruo0zqUf0eRS/pfj4+KD+vwpl7LvOYf/5L9h9l5qa6rU8IOE9MzMThYWFKCkpQVxcHDZt2oQFCxZ41CktLcVzzz2HO++8s9XGEhEFmyTLQJ9koE8ypDHnAHAOtTlWoIb54wVAQTFgt3s+0aE0XVjqM/XbQ+i0QGZ/SIOdgX5QJtA/rd1A72qLJCFMJyNMJyMpwvtzhBCos6mhvsbiUI/CuwX7xvvtzZwDAHZF4GSdHSfr7AC8z6ADqBe3UsO8jDiTzhn2tYg1ed7yIldERB0XkPAuyzLmzJmDpUuXQlEUTJ48Genp6VizZg0AYOrUqXj//fdRU1ODN954w/WcZcuWBaJ5RESdIkVGAEMHQRo6CAAgHA51fvnjhRAnCtULR530chK+zQ7sy4fYl+8abgOdFhjQH9KgAZAGZUIamKEeoTcYWj7fl7ZJEsL1sjorjfcvNF1H8Gssikegr7E6UNMY9q0OWOw+JHyoF7cqqLaioBpo7URboDHky65AH2PSIs6o3ncP+hF6TatDLYmIehtJeBuQHkIKCgqC9tqb313PYTN+4tAP/7HvOidY/ScaLEBhMVBQBHGiCCgoajHnfKsaL0SVNUAN8wMzIGX2hxQd1b2NbsYYFoHCskqPYF9jVY/o11jV4F/j41H8jtBqgBhnqI8xqqE+xiQj1qgG/lijFjFGGbEmbY+dWSfYX7+HMvZd57D//BfsvgvqsBkiot5OMhqAjL5ARl80HkMWdfVqiC8ohnAGe1S2HD8PhwIcOgZx6BjE2vVN5QlmSJn9gcx+apjP7A+kpULSds+Yc72scR0Vb40QAha7cIZ794CveJTVWn0P+XYFKK2zo7TO3m5dk1aDWJOMGKMW0Uat636sSYtoo3o/xnnbU4M+EVFbGN6JiIJECjMBWRlAVoZnoC8sBgqLIQqKgaKSlnPPNzpZBnGyDPh+a9OwG70O6JcOKaMvpAF9gQH9IA3oB8THBWToiSRJMOokGHUaxIe3PnbfM+SrYb7G5rxtfGx1oNaqwNqBQ/n1dgX11QoKqm3t1jVqNa4gH93s1r082sihO0TUczC8ExH1IFKYCcjsr57I6iwTFitQfFIN9EUngaJioLgUcDharsBqa7qolHt5ZATQPx1SRjqk/n2BxtvY6KCEUs+Q33Zdm0NBrVVBbbNw3/i41u2xLzPrNGqwKyiqUVBU037QlyUgyhnqow1qoI82yog2qLdRzrAfZZARbZRh0jLsE1H3YHgnIurhJIPeNV2lK9A7FKC8AigqgSg+qU5fWVwCVNV4X0l1DbBzL8TOvZ6hPjpSDfX90iH1S3PeTwvYkXpf6GQNYkwaxLRzeQMhBBrsAnU2NeDXWRXU2hyocw/5zvt1HQz6DgFU1NtRUd/+0B0A0GkkV5CPMmqRGFUGg2RXywxaRBll5331NsIgQ9ND+puIejaGdyKiECTJGiDBrI57P2OIq1zU1asz3RSfhCgpdd2HpZUrsJ6qBn7aA/HTHs9QHx6m7iz0S4OUru44OIYMgoiJ9Hkqy0CTJAkmnQSTTgNzWNt1G4ft1NrUUF9nU1whv/F+nduyjgzdAQCbIlBWb0dZvR2ABSisbbO+RgIi9GqQjzLIrnAfZVCP5kca3JY5H4fpeHSfqDdieCciOo1IYSagf7p6BN1ZJoRQQ/pJNcyLkjLn/bKWV4ttVFsH7D0AsfeAK9SfAtSZb1KS1ECfngopPVU9STY9tUcdrW+P+7Cd9oI+oM5xX2dTUOcR7tWAr5YrHuW+XPnWnSKAKosDVRYvQ6FaIUtwhXr320h9s8eNy51Thsqa0PgdEZF3DO9ERKc5SZKAmCj1Z+CAplCvCPXqsCdLnSe/lgOlZeqc9A0W7ytzKOr89ccLge/gebTeZAT6pEBKS3HdNt5HXEzIBHtvtM5hMFEG32bysToU1LuFeSEbUF5d61bm8Fje0SP7gDqUp7LBgcoG3wM/AITrNa6A77p1ux+h17jKIvRqeZhew2E9RD0EwzsRUS8laSQgNlr9GZTpeaS+plYN8aXlEGUVQGkZpNIKiMo25qavbwDyD0HkH1LX476sMdj3SQZSkyGlOq9Sm5oMJJrVK9eeRvSyBnpZg2ij+jgqMgpV1a2HX4eiXiirMdDXN/60KHOg3i78OrrfSD3B17cTdRtJACL0GkS4BfoIvYwIg0a91csey12P9TKn5CTqYgzvRETkQZIkdXaayAh1qklneZjJhNpTVeqJsmUVTcG+rBwoLW/9aD3QdrDXaoGkBEipSUBKIqSUZCA1yfk4CYgID+mj9r6QNZIr9PrKrogWId/jvl1BQ7Myi59X0BIAqq0Kqq0KAN9DP6CevBthaArzEXoNwnUywj3KZITr1Pvheo3zqsAamBj8iVpgeCciIp9Jeh2QnKj+AJ5H6+vq1VBfXgFRVtkU8ssrWj9hFgDsduBEIcSJQnVdzZeHhwHJiZBS1NeVnK8vJSUAKYm9Itx7o9VIruEtvlKEQINdQb2t8VZRbxuDvtutukyt58+wnkY2RThn6un4czUSEGk4CJNW8gz2uqaAH65TbyPcysOc5Uat1Cu3DTq9MbwTEVGnSZKkhuzGWWrclrmCfXklUFEJlFdCNN4vq1BPjm1LbR1w8DDEwcPq+povDzOpR+6TE9TbpEQgMR5SUjyQlADExXbbVWdDjUaSEKaTEdbBCYMcioDFrqDe3hT6Lfam4G+xC1fwb7A3/qh1/RzdA0A9kfdUg109WbqDR/wBNfy7Ar1OgzBXwNcgTNcU/tVl3u/rZe4AUM/C8E5ERN3KI9inp6plbsuF1QpUnAIqTwHlpyAqKp33nbe2duZWr6sHDh2FOHRUXV/z5bIGiDerY+sT4r3cxqsXq9JwiEZrZI2EML2MMH3HnieEgE1Rp+VsCvVqsLc0C/kWt/uNOwGdOOAPQA3/TcN9/KPVACadGvpNOg3CnTsBYVo15IfpZFe5SadBmE4N/o33w3QamHQydDJ3AKhrMLwTEVFQSXq9eoQ8KUF97LbMddS+8pQr4IuKU0BllVp2qqr9cO9Q1Lnui0+6gn3LgC8D8XHqdJeN8+cnmNXHznLEx0EyGLroXfcOkiRBL0vQy+jQ8J5GdkVAbwzHycoqWOwKLA4FDTaBBocCq/tOgKNpZ6BxJ8DqUGD3P7O7tQGotjhQ3YFpPL3RaSRnkNe0CPYmrca1zL2OSdt027iTYNJpoOV0n70awzsREfVYHkft+6SoZW7LXeH+VJUz0FdBVFWp89pXVqnl7Q3LAQCHo/2ADwAR4UBCHCRzHGCOVQN9nPPW+RhxMQz5XUSrkRBh0EIJ8y+uNA73abALWBzq8B7XrXNnoGWZ89a5A9DZo/+NbIrAKYsDpzq5EwCoOwIeQd8Z8o3aZsFfq0FCrA32hjrP5c3qc2cgtDC8ExFRyPII96nJalmzOsJmB6qq1Z9TVUBVDYTzVn1crc6G44uaWqCmFuLQsab1e6sXEaaOtY+LBeJiUJucBCUyDIiLAWJjnOXRQHQ0x+N3I3+H+7izK02h3uoW7q0Ot3K38G91CK/LumgfAIC6I2Dz+aJeJ9utoXXuDJi0kivQG7XOcK/VwKhrum/wVsd1X3KV8VyB7sPwTkREpzVJp1WPkptjm8qa1RE2G1BdowZ6Z9AXVTXOsmr1troWUHwch1FTB9TUQRw9AQBodRJNSQKiI9VAHxsNxMao4++dt4iJVstjooCYaMBkZCAKMK1GglYvI7wT6xBCwK44Q73bToDVocBqF87A31jWbLlDOOuoZTZH1+4IAOoOijo0qOvWKQEwaNUdAoO2KegbnY/VHQE1+Bu0EoyyxllP3QFofE7jzoJBbnpub98xYHgnIqJeT9LpgLhY9aexrFkdoQigrs4Z5J1hvroGoqbWraxGDe6+hnwhmob7HHIrbq2+Xu8M9VGQop2B3nU/qul+dJS6UxAZwRNxewBJkqCTJehkdGonAPDcEVB3Bjx3AGyOpmVWhwJodKhpsDRb1vQNQXfsDADqNqyekAwAnR8q5E7dMWjaKTDILe837ggYZI2rruu+3LRjYHB7jl5uqteTLzHA8E5EROQDSSOpY94jwtWLRzWWN6snFAHU17uG2KCmFroGC6wVlWqwr61Vg39tnTpevyOs1hZj84E2wr5Go15sKzoSiI6EFBUJRDnvR0ep96MiITmDvhr4I9X5/KlH6uiOgHp136pWlwsh4BCA1a7AqgiPgG9zC/iNgd+meJbZHMJjh8GmqGVdda6A1zYDzpmJHDjVxTsGjTQSYNTl44rsWFx7Rny3vIa/GN6JiIi6kKRxG4fvnEFHbzLBXt8yqAuHA6itVwN9bZ36U1MLUasOu0Gd221tHWDvYFBRFHVc/yk1vPkU+AHAZFTDfFQEpMar7UZGqEE/MhyIjFR3YiLDncvD1eXhYZBkjuEPJZIkQSsBWr2MsC5cryKEZ/hXmoK+zbmToJYL2Bp3AtzKm+437VTYnbfduWPQ1H6gzupo5w8lOBjeiYiIgkSSZSBKDcke5V7qCiEAq815xL5ODf3OW+H+uK6+6afBz0HM9Q3qT0lpi+zSbpYJD1PDvPNbCikiHIhwBvzwMOdj9b66PMx1H+HhPIH3NKGRJOewlK5fd+OOga1ZqHeVeZQrTTsCioDdfcfAvV6zdTVu53ptzxtbz/BOREQUAiRJAgx69ScuxnNZK88RDocawmvr1Fu3YC/q64G6BnWIT+OyxtDu65h9bxq/QXDOctLh8G80NH1zERGOqqhIOAz6prLwMEhhJvV+WBgQboIUHqZeabfx1mTiTsBpzLVj0I2v4VAEIiMiMTSmG1/ETwzvREREpylJlpvG6Tdf1spzhBCAxeoM9Rb1tsHiCveioaEp5DdYnLfOxxZr5xvdYFF/yioAAN4uweXTSAaDXg3yzjCPMJMa+sNM6rAg561k8lbWdB9Go3qr1/XqGU56G1kjwaSTYdD2vHEzDO9ERETkIkmSevTbaABivSxv47lCUdQA39CgBv+GBrf7FogGC2BpLHfWawzrFov6XNFFYcliVX8qTjW1z1ubfV2frGkK8m6hXjIa3MoMgNEZ/p330bjcaFDrGgxN/dtYR6/jrEDkM4Z3IiIi6hKSRtMUZDsY/AG3cf2uMG+BQQCWqmpnmRXC4gz7VmtTQG8M/o3lVlvX7QQ0cihuQ4Lc2uztffizfoNeDfPu4d6gV6/Wa9Cr5a46ekCvd+4M6AG9oWlIlfNH0qvPccTFQditrudAr+eQohDH8E5EREQ9gse4fkQCALQmE6xuM/X4MnBFCAHYbE3h3trs1qIGfOFebrU5f9zr29T1WK1qeO9Oje1Cted7aeMpvuwknPJWKMuAXtcU6F3BXqd+C9B432AAdFq3ZXrP5Tqd6znQ69W6usblWudyvfPW+dj5wx0I/zG8ExER0WlFkiTXUWbnPoD3eh1Yp7A7moJ8Y9B3f2yzucqFzeZZ5n7rum9vuu/onrnKW+VwAPXOk5m9vdd2nt4l32loNIBW2yLUN+4AqLda9QJqjWVaredyrVbdcdBq1Sspa5vV83bbWFeWPcqgdT6WG+vK6gnf6HnDmRjeiYiIiNohaWU14JmM7dft4LqFIgC7W6C32dVQb3d77LpV7wt703003ve4VetLDgdE47oal/cEitL0LUcbfN1R6I7TSksAGO+4ARn3zemGtfuP4Z2IiIgoiCSN2zcFvj7Hx3phJhPq3IYdCSHUIUD2ZmHfblcvAua6tTlvHS2Wi8b7Dkez53krdwAO93LnbVefk9BNJF3Pi8oBa9GOHTuwatUqKIqCKVOmYMaMGR7LhRBYtWoVtm/fDoPBgPnz52PAgAGBah4RERHRaU+SJPUbBK0M+DlTeldMmCkcimeodw/2ze97PHbueDgU1zLhXkdRPJ/nUHy7rzSWud1XHD1ybH5AwruiKFi5ciUWL14Ms9mMRYsWYdSoUUhLS3PV2b59O4qKivDyyy/jwIEDeOONN/D0008HonlEREREFECSrAFkPeD7lw2tr6vzq/AqMjoKfS8/r5vW7r+AjMLPz89HcnIykpKSoNVqMXbsWGzevNmjzpYtWzBhwgRIkoRBgwahtrYWFRUVgWgeEREREVELPfHCXAE58l5eXg6z2ex6bDabceDAgRZ14uPjPeqUl5cjNtZzotjc3Fzk5uYCAJYtW4bU1NRubHnbrlh4XdBem4iIiIh6n4AceRdeTkpovifjSx0AyMnJwbJly7Bs2bKua6CfHnzwwWA3IWSx7/zHvusc9p//2Hf+Y9/5j33XOew///XUvgtIeDebzSgrK3M9Lisra3FE3Ww2o7S0tM06RERERES9WUDCe2ZmJgoLC1FSUgK73Y5NmzZh1KhRHnVGjRqFDRs2QAiB/fv3IywsjOGdiIiIiMhNQMa8y7KMOXPmYOnSpVAUBZMnT0Z6ejrWrFkDAJg6dSpGjhyJbdu2YcGCBdDr9Zg/f34gmtYpOTk5wW5CyGLf+Y991znsP/+x7/zHvvMf+65z2H/+66l9Jwlvg82JiIiIiKjHCciwGSIiIiIi6jyGdyIiIiKiEBGQMe+hbseOHVi1ahUURcGUKVMwY8YMj+VCCKxatQrbt2+HwWDA/PnzMWDAgOA0todpr+92796NZ599FomJiQCA0aNH4+qrrw5CS3ueV199Fdu2bUN0dDSef/75Fsu53bWuvb7jdte60tJSrFixApWVlZAkCTk5Obj44os96nDb886XvuO2553VasWjjz4Ku90Oh8OBMWPGYObMmR51uN1550vfcbtrm6IoePDBBxEXF9diesgeud0JapPD4RB33nmnKCoqEjabTdx3333i2LFjHnW2bt0qli5dKhRFEXl5eWLRokVBam3P4kvf7dq1S/zxj38MUgt7tt27d4uDBw+Ke+65x+tybneta6/vuN21rry8XBw8eFAIIURdXZ1YsGABP/N85EvfcdvzTlEUUV9fL4QQwmaziUWLFom8vDyPOtzuvPOl77jdte3f//63ePHFF732UU/c7jhsph35+flITk5GUlIStFotxo4di82bN3vU2bJlCyZMmABJkjBo0CDU1taioqIiSC3uOXzpO2rd0KFDERER0epybneta6/vqHWxsbGuo0omkwl9+vRBeXm5Rx1ue9750nfknSRJMBqNAACHwwGHw9HiQo3c7rzzpe+odWVlZdi2bRumTJnidXlP3O44bKYd5eXlMJvNrsdmsxkHDhxoUSc+Pt6jTnl5ea+fp96XvgOA/fv34/7770dsbCxmzZqF9PT0QDYzZHG76xxud+0rKSnBoUOHkJWV5VHOba99rfUdwG2vNYqi4A9/+AOKiopw0UUXYeDAgR7Lud21rr2+A7jdtebNN9/EjTfeiPr6eq/Le+J2x/DeDuFlJs3me7S+1OmNfOmXjIwMvPrqqzAajdi2bRv+9Kc/4eWXXw5UE0Matzv/cbtrX0NDA55//nnMnj0bYWFhHsu47bWtrb7jttc6jUaDP/3pT6itrcVzzz2Ho0ePom/fvq7l3O5a117fcbvzbuvWrYiOjsaAAQOwe/dur3V64nbHYTPtMJvNKCsrcz0uKytrsbdlNptRWlraZp3eyJe+CwsLc33dd/bZZ8PhcKCqqiqg7QxV3O78x+2ubXa7Hc8//zzGjx+P0aNHt1jOba917fUdt732hYeHY+jQodixY4dHObe79rXWd9zuvMvLy8OWLVtwxx134MUXX8SuXbta7NT0xO2O4b0dmZmZKCwsRElJCex2OzZt2oRRo0Z51Bk1ahQ2bNgAIQT279+PsLCwoP9iewJf+q6ystK1V5ufnw9FURAZGRmM5oYcbnf+43bXOiEE/vKXv6BPnz649NJLvdbhtuedL33Hbc+7qqoq1NbWAlBnT9m5cyf69OnjUYfbnXe+9B23O++uv/56/OUvf8GKFSuwcOFCDB8+HAsWLPCo0xO3Ow6baYcsy5gzZw6WLl0KRVEwefJkpKenY82aNQCAqVOnYuTIkdi2bRsWLFgAvV6P+fPnB7nVPYMvfff9999jzZo1kGUZer0eCxcuDPrXUT3Fiy++iD179qC6uhq33XYbZs6cCbvdDoDbXXva6ztud63Ly8vDhg0b0LdvX9x///0AgOuuu8515InbXut86Ttue95VVFRgxYoVUBQFQgicd955OOecc/i/1ge+9B23u47p6dudJLwN5iEiIiIioh6Hw2aIiIiIiEIEwzsRERERUYhgeCciIiIiChEM70REREREIYLhnYiIiIgoRDC8ExERERGFCIZ3IiIiIqIQwfBORERERBQieIVVIiJq0wsvvIDt27e7HlssFsyZMwfTpk0LYquIiHonXmGViIh89p///AcbNmzAI488goiIiGA3h4io1+GwGSIi8snnn3+O9evXY8mSJQzuRERBwvBORETt+uKLL/D1119jyZIliIyMDHZziIh6LYZ3IiJq05o1a7B27Vo88sgjiIqKCnZziIh6NYZ3IiJqVW5uLr744gssWbKEwZ2IqAfgCatERNSq2bNnw2azQaNpOtZzyy23YMKECUFsFRFR78XwTkREREQUIjhshoiIiIgoRDC8ExERERGFCIZ3IiIiIqIQwfBORERERBQiGN6JiIiIiEIEwzsRERERUYhgeCciIiIiChEM70REREREIeL/A6Oo0AzM/tsKAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a = np.linspace(0, 4, 100)\n", "expo = stats.expon\n", "lambda_ = [0.5, 1]\n", "\n", "for l, c in zip(lambda_, colours):\n", " plt.plot(a, expo.pdf(a, scale=1./l), lw=3,\n", " color=c, label=\"$\\lambda = %.1f$\" % l)\n", " plt.fill_between(a, expo.pdf(a, scale=1./l), color=c, alpha=.33)\n", "\n", "plt.legend()\n", "plt.ylabel(\"PDF at $z$\")\n", "plt.xlabel(\"$z$\")\n", "plt.ylim(0,1.2)\n", "plt.title(\"Probability density function of an Exponential random variable;\\\n", " differing $\\lambda$\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### But what is $\\lambda \\;$?\n", "\n", "\n", "**This question is what motivates statistics**. In the real world, $\\lambda$ is hidden from us. We see only $Z$, and must go backwards to try and determine $\\lambda$. The problem is difficult because there is no one-to-one mapping from $Z$ to $\\lambda$. Many different methods have been created to solve the problem of estimating $\\lambda$, but since $\\lambda$ is never actually observed, no one can say for certain which method is best! \n", "\n", "Bayesian inference is concerned with *beliefs* about what $\\lambda$ might be. Rather than try to guess $\\lambda$ exactly, we can only talk about what $\\lambda$ is likely to be by assigning a probability distribution to $\\lambda$.\n", "\n", "This might seem odd at first. After all, $\\lambda$ is fixed; it is not (necessarily) random! How can we assign probabilities to values of a non-random variable? Ah, we have fallen for our old, frequentist way of thinking. Recall that under Bayesian philosophy, we *can* assign probabilities if we interpret them as beliefs. And it is entirely acceptable to have *beliefs* about the parameter $\\lambda$. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "##### Example: Inferring behaviour from text-message data\n", "\n", "Let's try to model a more interesting example, one that concerns the rate at which a user sends and receives text messages:\n", "\n", "> You are given a series of daily text-message counts from a user of your system. The data, plotted over time, appears in the chart below. You are curious to know if the user's text-messaging habits have changed over time, either gradually or suddenly. How can you model this? (This is in fact my own text-message data. Judge my popularity as you wish.)\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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YnxKDBERERGRFWPBTkRERERkxViwExERERFZMZucdNqQL7agxtFoNI36ghdqGObdcph7y2DeLYN5twzm3XKsMfdVvzH7brzDTkRERERkxViwExERERFZMRbsRERERERWjAU7EREREZEVY8FORERERGTFWLATEREREVkxFuxERERERFbMJp/DTkRNZ9y/fqlz+66nejRTJERERFSTZinYc3JyEBsba1y+evUqJkyYAK1Wi9jYWOTm5sLT0xPz58+Hq6trc4RERERERGQTmqVg9/b2xqpVqwAABoMBzz33HPr37w+dToeAgACEhoZCp9NBp9NhypQpzRESEREREZFNaPYx7KdOnYKXlxc8PT2RkpICrVYLANBqtUhJSWnucIiIiIiIrFqtd9g//vhjSQ1MnDixXh0mJycjODgYAFBUVASVSgUAUKlUKC4urldbREREREQtXa0Fe35+vvF1eXk5Dh8+DH9/f2g0GuTl5eHcuXMYMGBAvTrT6/VITU3F5MmT63VcYmIiEhMTAQDR0dHQaDT1Op4aT6FQMO8WYA15t3T/lmINuW+NbCnvwWsP1rk9OXxwM0XSeLaU95aEebccW8t9rQX7nDlzjK/XrFmD8PBwDBw40Lju8OHDOHToUL06O378ODp37gx3d3cAgFKpRGFhIVQqFQoLC+Hm5lbjcSEhIQgJCTEu5+Xl1atfarzK/6hR87KGvFu6f0uxhty3Ri0p77Z0Hi0p77aEebcca8y9t7d3rdskjWE/fvw4+vfvb7IuKCgIx48fr1cgVYfDAEBgYCCSkpIAAElJSQgKCqpXe0RERERELZ2kgt3LywvffPONybpvv/0WXl5ekjsqKytDWlqayTCa0NBQpKWl4cUXX0RaWhpCQ0Mlt0dERERE1BpIeqzj7NmzsXr1auzevRseHh4oKCiAXC7HggULJHfk4OCAzZs3m6xr27YtlixZUr+IiYiIiIhaEUkFe+fOnbF27VqcPXsWhYWFcHd3R7du3aBQ8ItSiYiIiIjMqUHPYe/Vqxf0ej1KS0ubOh4iIiIiIqpC0i3yrKwsrFy5Em3atEF+fj4efvhhpKenIykpCfPnzzd3jERERERErZakO+wbN27ExIkTsWbNGuMwmF69euGXX34xa3BERERERK2dpII9OzsbQ4YMMVnn6OiI8vJyswRFRERERER3SCrYPT098euv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tGmDkpISZGdnQ61Ww83NDRUVFbh9+7a54yMiIiIiatUkFezBwcF44403UFJSgkceeQQAcOHCBbRr165enRkMBkRGRsLDwwORkZG4ceMGYmNjkZubC09PT8yfPx+urq71PwsiIiIiohZKUsEeFhaGkydPQi6Xo0+fPgAAmUyGqVOn1quz//znP+jQoQNKSkoAADqdDgEBAQgNDYVOp4NOp8OUKVPqeQpERERERC2XpEmnANC3b19jsQ4AXbp0MVm+l/z8fBw7dgwjR440rktJSYFWqwUAaLVapKSkSG6PiIiIiKg1kHSHPS8vDzt37sTFixdRWlpqsm3t2rWSOtq6dSumTJlivLsOAEVFRcZvSFWpVCguLq7x2MTERCQmJgIAoqOjodFoJPVJTUehUFg07631mls67wBzT82rJeVdynk05bk2pq2WlHdbwrxbjq3lXlLB/vbbb8Pb2xsTJkyAvb19vTtJTU2FUqmEn58fTp8+Xe/jQ0JCEBISYlzOy8urdxvUOBqNxqJ5b63X3NJ5B5h7al4tKe9SzqMpz7UxbbWkvNsS5t1yrDH3dX0RqaSC/ffff8eyZctMvt20PjIzM3H06FEcP34c5eXlKCkpwTvvvAOlUonCwkKoVCoUFhbCzc2tQe0TEREREbVUkgr2fv36IT09vV5j1quaPHkyJk+eDAA4ffo0vvzyS7z44ovYsWMHkpKSEBoaiqSkJAQFBTWofSIiIiJqWcb965c6t+96qkczRWJ5kgr26dOn4/XXX0f79u2hVCpNts2ZM6fBnYeGhiI2NhZ79+6FRqNBREREg9siIiIiImqJJBXs69atg52dHTp06NCgMexV9e7dG7179wYAtG3bFkuWLGlUe0RERERELZmkgv3nn3/Ge++9BycnJ3PHQ0REREREVUiaRdqpUydcv37d3LEQEREREdFdJN1h7927N5YvX45hw4ZVG8M+YsQIswRGRERERHQvdU1ObSkTUyUV7JmZmfDw8EBaWlq1bSzYiYiIiIjMR1LBHhUVZe44iIiIiIioBvX+JiSdTmeGMIiIiIiIqCb1Lti/+OILc8RBREREREQ1kDQkpiohhDniaJH4DV1ERETWi7+nyVbU+w77kCFDzBEHERERERHVQFLBvnv3buPrZ5991vj6q6++avqIiIiIiIjISFLB/tlnn9VrPRERERERNY06x7D/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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(12.5, 3.5)\n", "count_data = np.loadtxt(\"data/txtdata.csv\")\n", "n_count_data = len(count_data)\n", "plt.bar(np.arange(n_count_data), count_data, color=\"#348ABD\")\n", "plt.xlabel(\"Time (days)\")\n", "plt.ylabel(\"count of text-msgs received\")\n", "plt.title(\"Did the user's texting habits change over time?\")\n", "plt.xlim(0, n_count_data);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before we start modeling, see what you can figure out just by looking at the chart above. Would you say there was a change in behaviour during this time period? \n", "\n", "How can we start to model this? Well, as we have conveniently already seen, a Poisson random variable is a very appropriate model for this type of *count* data. Denoting day $i$'s text-message count by $C_i$, \n", "\n", "$$ C_i \\sim \\text{Poisson}(\\lambda) $$\n", "\n", "We are not sure what the value of the $\\lambda$ parameter really is, however. Looking at the chart above, it appears that the rate might become higher late in the observation period, which is equivalent to saying that $\\lambda$ increases at some point during the observations. (Recall that a higher value of $\\lambda$ assigns more probability to larger outcomes. That is, there is a higher probability of many text messages having been sent on a given day.)\n", "\n", "How can we represent this observation mathematically? Let's assume that on some day during the observation period (call it $\\tau$), the parameter $\\lambda$ suddenly jumps to a higher value. So we really have two $\\lambda$ parameters: one for the period before $\\tau$, and one for the rest of the observation period. In the literature, a sudden transition like this would be called a *switchpoint*:\n", "\n", "$$\n", "\\lambda = \n", "\\begin{cases}\n", "\\lambda_1 & \\text{if } t \\lt \\tau \\cr\n", "\\lambda_2 & \\text{if } t \\ge \\tau\n", "\\end{cases}\n", "$$\n", "\n", "\n", "If, in reality, no sudden change occurred and indeed $\\lambda_1 = \\lambda_2$, then the $\\lambda$s posterior distributions should look about equal.\n", "\n", "We are interested in inferring the unknown $\\lambda$s. To use Bayesian inference, we need to assign prior probabilities to the different possible values of $\\lambda$. What would be good prior probability distributions for $\\lambda_1$ and $\\lambda_2$? Recall that $\\lambda$ can be any positive number. As we saw earlier, the *exponential* distribution provides a continuous density function for positive numbers, so it might be a good choice for modeling $\\lambda_i$. But recall that the exponential distribution takes a parameter of its own, so we'll need to include that parameter in our model. Let's call that parameter $\\alpha$.\n", "\n", "\\begin{align}\n", "&\\lambda_1 \\sim \\text{Exp}( \\alpha ) \\\\\\\n", "&\\lambda_2 \\sim \\text{Exp}( \\alpha )\n", "\\end{align}\n", "\n", "$\\alpha$ is called a *hyper-parameter* or *parent variable*. In literal terms, it is a parameter that influences other parameters. Our initial guess at $\\alpha$ does not influence the model too strongly, so we have some flexibility in our choice. A good rule of thumb is to set the exponential parameter equal to the inverse of the average of the count data. Since we're modeling $\\lambda$ using an exponential distribution, we can use the expected value identity shown earlier to get:\n", "\n", "$$\\frac{1}{N}\\sum_{i=0}^N \\;C_i \\approx E[\\; \\lambda \\; |\\; \\alpha ] = \\frac{1}{\\alpha}$$ \n", "\n", "An alternative, and something I encourage the reader to try, would be to have two priors: one for each $\\lambda_i$. Creating two exponential distributions with different $\\alpha$ values reflects our prior belief that the rate changed at some point during the observations.\n", "\n", "What about $\\tau$? Because of the noisiness of the data, it's difficult to pick out a priori when $\\tau$ might have occurred. Instead, we can assign a *uniform prior belief* to every possible day. This is equivalent to saying\n", "\n", "\\begin{align}\n", "& \\tau \\sim \\text{DiscreteUniform(1,70) }\\\\\\\\\n", "& \\Rightarrow P( \\tau = k ) = \\frac{1}{70}\n", "\\end{align}\n", "\n", "So after all this, what does our overall prior distribution for the unknown variables look like? Frankly, *it doesn't matter*. What we should understand is that it's an ugly, complicated mess involving symbols only a mathematician could love. And things will only get uglier the more complicated our models become. Regardless, all we really care about is the posterior distribution.\n", "\n", "We next turn to PyMC, a Python library for performing Bayesian analysis that is undaunted by the mathematical monster we have created. \n", "\n", "\n", "Introducing our first hammer: PyMC\n", "-----\n", "\n", "PyMC is a Python library for programming Bayesian analysis [3]. It is a fast, well-maintained library. The only unfortunate part is that its documentation is lacking in certain areas, especially those that bridge the gap between beginner and hacker. One of this book's main goals is to solve that problem, and also to demonstrate why PyMC is so cool.\n", "\n", "We will model the problem above using PyMC. This type of programming is called *probabilistic programming*, an unfortunate misnomer that invokes ideas of randomly-generated code and has likely confused and frightened users away from this field. The code is not random; it is probabilistic in the sense that we create probability models using programming variables as the model's components. Model components are first-class primitives within the PyMC framework. \n", "\n", "B. Cronin [5] has a very motivating description of probabilistic programming:\n", "\n", "> Another way of thinking about this: unlike a traditional program, which only runs in the forward directions, a probabilistic program is run in both the forward and backward direction. It runs forward to compute the consequences of the assumptions it contains about the world (i.e., the model space it represents), but it also runs backward from the data to constrain the possible explanations. In practice, many probabilistic programming systems will cleverly interleave these forward and backward operations to efficiently home in on the best explanations.\n", "\n", "Because of the confusion engendered by the term *probabilistic programming*, I'll refrain from using it. Instead, I'll simply say *programming*, since that's what it really is. \n", "\n", "PyMC code is easy to read. The only novel thing should be the syntax. Simply remember that we are representing the model's components ($\\tau, \\lambda_1, \\lambda_2$ ) as variables." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "import pymc as pm\n", "\n", "with pm.Model() as model:\n", " alpha = 1.0/count_data.mean() # Recall count_data is the\n", " # variable that holds our txt counts\n", " lambda_1 = pm.Exponential(\"lambda_1\", alpha)\n", " lambda_2 = pm.Exponential(\"lambda_2\", alpha)\n", " \n", " tau = pm.DiscreteUniform(\"tau\", lower=0, upper=n_count_data - 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the code above, we create the PyMC variables corresponding to $\\lambda_1$ and $\\lambda_2$. We assign them to PyMC's *stochastic variables*, so-called because they are treated by the back end as random number generators." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "with model:\n", " idx = np.arange(n_count_data) # Index\n", " lambda_ = pm.math.switch(tau > idx, lambda_1, lambda_2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This code creates a new function `lambda_`, but really we can think of it as a random variable: the random variable $\\lambda$ from above. The `switch()` function assigns `lambda_1` or `lambda_2` as the value of `lambda_`, depending on what side of `tau` we are on. The values of `lambda_` up until `tau` are `lambda_1` and the values afterwards are `lambda_2`.\n", "\n", "Note that because `lambda_1`, `lambda_2` and `tau` are random, `lambda_` will be random. We are **not** fixing any variables yet." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "with model:\n", " observation = pm.Poisson(\"obs\", lambda_, observed=count_data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The variable `observation` combines our data, `count_data`, with our proposed data-generation scheme, given by the variable `lambda_`, through the `observed` keyword. \n", "\n", "The code below will be explained in Chapter 3, but I show it here so you can see where our results come from. One can think of it as a *learning* step. The machinery being employed is called *Markov Chain Monte Carlo* (MCMC), which I also delay explaining until Chapter 3. This technique returns thousands of random variables from the posterior distributions of $\\lambda_1, \\lambda_2$ and $\\tau$. We can plot a histogram of the random variables to see what the posterior distributions look like. Below, we collect the samples (called *traces* in the MCMC literature) into histograms." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Multiprocess sampling (4 chains in 4 jobs)\n", "CompoundStep\n", ">Metropolis: [lambda_1]\n", ">Metropolis: [lambda_2]\n", ">Metropolis: [tau]\n" ] }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", " \n", " 100.00% [60000/60000 00:05<00:00 Sampling 4 chains, 0 divergences]\n", "
\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Sampling 4 chains for 5_000 tune and 10_000 draw iterations (20_000 + 40_000 draws total) took 6 seconds.\n" ] } ], "source": [ "### Mysterious code to be explained in Chapter 3.\n", "with model:\n", " step = pm.Metropolis()\n", " trace = pm.sample(10000, tune=5000, step=step, return_inferencedata=False)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "lambda_1_samples = trace['lambda_1']\n", "lambda_2_samples = trace['lambda_2']\n", "tau_samples = trace['tau']" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvYAAAJ3CAYAAAD/DRVdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAABye0lEQVR4nO3deVyU9f7//+fAqIgLwqAQ4pKKqW1GuGaaSmpZHU+7LQczW46ebM8sy0pJPGWWpmnpobJOnWzRPp0045i5VWJKuSuWW5IKuAPSMO/fH/2cryOLoHDNcPm4327ndpxr3td1PXnNdM2Li/d1jcMYYwQAAACgWgvydwAAAAAAZ47GHgAAALABGnsAAADABmjsAQAAABugsQcAAABsgMYeAAAAsAEaewDV1hVXXKEhQ4ZYtr9FixbJ4XBo165dJT6ubA6HQ++9916pjyvTtm3b5HA4tHTp0irZfmVbs2aNOnbsqJCQEDVv3rxC6zZv3lxjx46tmmBVqKKvf3nen9XtdQdQNhp7AJKkQYMGyeFwyOFwyOl0qlmzZrr//vuVk5NTKdtfunSpHA6Htm3bVinbk6RPP/1Ur7zySqVtr6K6du2qrKwsxcTElGv8kCFDdMUVV5R7+1lZWbrxxhtPM13pWrVqpeeee85nWZMmTZSVlaVOnTpV+v6qwhNPPKH69etr48aNSk9PL3HM2LFjK9z0B7Kqej8AsA+nvwMACByXX365PvroI7ndbv34448aMmSIdu7cqf/+97/+juajsLBQNWvWVERERKVt63TUrFlT0dHRZ5zhZMczVcW2SxMcHGzp/s7Uli1blJSUZKvGvTT+eD8AqJ44Yw/A63jzEBsbq7/85S966KGHNH/+fOXn58sYo5dfflktWrRQzZo11bJlS7366qs+68+dO1eXXHKJQkND1aBBA3Xs2FGrV6/Wtm3bdPnll0uSzj33XDkcDp8z1x9++KHat2/vnVbxyCOP6OjRo97nr7jiCt1999165plndM4556hx48be5SdOxfnjjz/05JNPqnHjxqpZs6batWunf//73z4ZHQ6HJk2apNtuu01hYWG6/fbbS63H5MmTFRsbq9DQUPXt21c7duzwef7kqQ5//PGHHnnkEcXGxqpWrVo655xzdOutt0qSnnvuOc2cOVPffvut9y8jb7/9dpmZSpp6kZOToxtuuEF16tRRTExMsb9YlLROYmKiBg0a5K3Z1q1b9fzzz3tzbNu2rcQpGZs2bVL//v1Vt25d1a1bV9dee60yMzO9z7/99ttyOp1atmyZ4uPjFRoaqg4dOujHH3/0eU1Kq0lpsrKydOutt6pBgwaqXbu2rrjiCq1cuVLS/5s6snXrVj377LNyOBzF/vpwPNszzzyj7du3e3/OE8cVFhbqwQcfVEREhKKiovTYY4+pqKjIZxuTJ09WmzZtFBISori4OCUnJ8vtdpeY2ePxqGnTpnrxxRd9lh87dkzh4eGaNm2aJOnrr7/WFVdcoYiICIWFhalHjx5asWKFzzrlfT+89tprat++verWravo6GjdeuutysrKKpZt9erV3mlL559/vr7++utSKv+nPXv2aNCgQWrYsKHq1aunyy67TIsXL/Y+fzqvKQCLGAAwxiQlJZnevXv7LJswYYKRZA4dOmRef/11ExISYqZPn242b95s3njjDVOrVi0zY8YMY4wxWVlZpkaNGmb8+PHml19+MevXrzfvv/+++fnnn43b7TZz5841ksyKFStMVlaWycnJMcYYk5qaaho0aGDeffdds3XrVvPtt9+aCy+80Nxxxx3eHD169DB169Y19913n1m3bp35+eefvcvvvvtu77jHHnvMREREmI8++shs2rTJJCcnG4fDYdLS0rxjJJmIiAgzadIkk5mZaTZt2lRiPebMmWOCg4PNhAkTzKZNm8yMGTNMo0aNjCSzc+dOY4wx33zzjc/jCRMmmMaNG5tvvvnGbN++3axYscJMnDjRGGPM4cOHzW233Wa6dOlisrKyTFZWlsnLyyszkyQza9Ysn+zh4eFm0qRJZtOmTebVV181wcHB5pNPPvEZc+I6xhjTu3dvk5SUZIwxJicnxzRv3tw8+uij3hxut9v8+uuvRpJZsmSJMcaYvLw807RpU9OrVy+zcuVKs3LlSnPFFVeYli1bmmPHjnlfO4fDYS6//HKzePFis2HDBnPllVeaFi1amD/++OOUNSmJx+MxHTt2NBdffLFZsmSJ+fnnn83NN99sGjRoYPbt22fcbrfJysoysbGxZsSIESYrK8scPny42Hby8vLMiBEjTGxsrPfnPD6uWbNmpkGDBmbcuHFm8+bN5sMPPzTBwcHmX//6l3f90aNHm6ZNm5pPP/3U/PLLL+a///2vadKkiRk1alSp2Z988klz3nnn+SybPXu2qVWrlsnNzTXGGPPpp596359r1641d999twkPDzfZ2dk+r2F53g+vvvqq+frrr80vv/xili9fbrp06WK6d+/uff74+7NVq1bm//7v/8z69evN4MGDTUhIiNm1a5cxxpT4urdt29Zcf/31Jj093WzZssWMHTvW1KxZ06xfv/60XlMA1qGxB2CMKd7Yr1u3zrRo0cJ06tTJGGNMbGysefzxx33Weeihh8y5555rjDFm1apVRpL59ddfS9z+kiVLSny+WbNm5o033vBZ9u233xpJ3maoR48eJi4uzhQVFfmMO7GxP3r0qKlZs6aZMmWKz5gBAwaYnj17eh9LMoMHDy6rFMYYYy677DJz2223+Sx79NFHy2zshw8fbnr27Gk8Hk+J27z77rtNjx49ii0vLVNJjf2Jv/AYY8zAgQPNZZddVuo6xvg29sYY07JlSzN69GifMSc3eDNmzDC1a9c2+/bt8475/fffTUhIiHnnnXeMMX829pLMjz/+6B3z3XffGUlm48aNxphT1+RkaWlpRpJZt26dd1lBQYGJjo42zz//vHdZs2bNzJgxY8rc1pgxY0yzZs2KLW/WrJm59tprfZb17dvX3HrrrcaYP99LtWvXNvPmzfMZ884775iwsLBS97dhwwYjyXz//ffeZddee6258cYbS12nqKjINGjQwLz33nveZeV9P5zs+H+Dx5v24+/P4798G2PMH3/8YZo2bWqefvppY0zx1z01NdU0btzY+4vZcT179jQPPvigMabirykA6zAVB4DXokWLVLduXdWuXVsXXHCBWrRooX//+986dOiQdu3ape7du/uM79Gjh7Zt26a8vDxddNFF6tu3ry644AL99a9/1WuvvaadO3eWub99+/Zp+/bteuSRR7zTPerWraurrrpKknymfVx66aUKCir9kJWZmanCwsISM65bt85nWceOHU9Zi/Xr16tr164+y7p161bmOnfddZfWrFmjVq1a6f7779cnn3yiwsLCU+6rvJkkqUuXLj6PL7vsMq1fv75c61bEunXr1K5dO0VGRnqXRUVF6bzzzvOpp8Ph0MUXX+x9fHya1J49eyRVvCbr1q2Ty+VSu3btvMtq1aqlTp06FXsdz0T79u19Hjdu3Nibed26dcrPz9cNN9zg87687777dPDgQe3bt6/EbbZp00YdOnTQu+++K0nK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OlQtWrSwIhoAAABgC5ZMxbniiiv01FNPlfr86tWr9fvvv2vSpEm69957NWPGDCtiAQAAALZhSWPfrl071a1bt9TnV65cqe7du8vhcKh169Y6evSo9u/fb0U0AAAAwBYC4mql3NxcRUZGeh+7XC7l5uYqPDy82Ni0tDSlpaVJklJSUizLCAAAAASygGjsS7p+1+FwlDg2MTFRiYmJ3se7d++uslxVKTIyUtnZ2f6OcVah5taj5taj5taj5taj5taj5taLiYmp8DoBcbtLl8vl82bJyckp8Ww9AAAAgJIFRGOfkJCgxYsXyxijzZs3KzQ0lMYeAAAAqABLpuK8+uqrWr9+vQ4fPqz7779fN998s9xutySpT58+uuSSS7Rq1SoNHz5cNWvW1NChQ62IBQAAANiGJY39Qw89VObzDodDQ4YMqZR9GWNUUFAgj8dT6jz9QLBnzx4dO3bM3zH8yhijoKAghYSEBPRrBQAAUB0ExMWzlamgoEA1atQI+K8ndzqdCg4O9ncMv3O73SooKFDt2rX9HQUAAKBaC4g59pXJ4/EEfFOP/8fpdMrj8fg7BgAAQLVnu8aeKR3VD68ZAADAmbNdYw8AAACcjWjsAQAAABugsQcAAABswPZXma7olVSp2+u48J1K3V5pDh48qM8++0yDBg2q8LrXXXedPv/888oPJWnmzJl69913deGFF+r111/3Lt+wYYOSkpI0bNgwJSVVbs0BAABwapyxD1CHDh3Su+++W6F1jDHyeDwVauqPr1Ne77zzjmbNmuXT1EtS27ZtNXXqVH388cfl3hYAAAAqD419Fdi5c6e6d++uBx98UImJibrnnnuUn58vSZo+fbp69eql7t2766233pIk5eXl6c4771RiYqJ69eqluXPn6sUXX9T27dt15ZVXasyYMZKkTz75RP3799eVV16pJ554QkVFRdq5c6d69OihkSNHqm/fvtq9e7fi4uK8WY7vr1evXt79lbTOyUpab8SIEdqxY4fuuusuvfnmm8XWiYyM1ObNmyu3mAAAACgX20/F8ZetW7dqwoQJ6tChgx555BG988476tq1qz766CN98cUXCg4OVr9+/dSlSxdt375d0dHRmjVrlqQ/z9bHx8dr06ZN+vrrryVJW7Zs0eeff645c+aoRo0aGjlypD799FN17txZW7du1SuvvKJx48b5ZPj555+9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gA0UFhbqjTfe0D333KO6deuqWbNm2r59u1q3bq2IiAjvuODgYDkcjlK306VLF7377rvKycnRihUrNHbsWEl/NuTHp860bt1aQUFBevzxx2WMKbaNWrVq6dixY97HBw4ckMvlkiRFRkaqUaNGmjRpUmX96ACA/x9TcQDABj766CPFxcXp0ksvlSQ1b95c27dv9xmzd+9erV692jumJPXr19f555+vqVOnqlGjRoqNjZUkHTt2TA6HQ/Xr15ckffPNN6XeUrN58+ZaunSpPB6PMjIytH79eu9zrVq1Uu3atTVnzhwVFhbK4/Fox44dFZ7SAwAozmFKOt0CAAAAoFqp9lNxdu/e7e8IPiIjI5Wdne3vGD4CLVOg5ZHIVB6BlkciU3kFWqZAyyORqTwCLY9EpvIKtEyBlkcKzEwxMTEVXoepOAAAAIAN0NgDAAAANkBjDwAAANhAtZ9jfzJjjAoKCuTxeMq8pVtV2bNnj89t3gJBoGQyxigoKKjE2+MBAADgzNiusS8oKFCNGjXkdPrnR3M6nQoODvbLvksTSJncbrdyc3P9HQMAAMB2bDcVx+Px+K2px6k5nc5Sv84eAAAAp892jb0/pt8AAAAA/ma7xh4AAAA4G9HYAwAAADZAYw8AAADYgO2vMr1rcrdK3V7qA0srdXulOXjwoD777DMNGjSowuted911+vzzzys/lKSZM2fq3Xff1YUXXqjXX3+9SvYBAACAiuOMfYA6dOiQ3n333QqtY4yRx+OpUFN/fJ3yeueddzRr1iyaegAAgABDY18Fdu7cqe7du+vBBx9UYmKi7rnnHuXn50uSpk+frl69eqlXr1566623JEl5eXm68847lZiYqF69emnu3Ll68cUXtX37dl155ZUaM2aMJOmTTz5R//79deWVV+qJJ55QUVGRdu7cqR49emjkyJHq27evdu/erbi4OG+W6dOnq3v37j77K2mdk5WUc8SIEdqxY4fuuusuvfnmm96xhw8fVp8+fdSzZ0+1bNlSV155pa655poK/cIAAACAM2P7qTj+snXrVk2YMEEdOnTQI488onfeeUddu3bVRx99pC+++ELGGF1zzTXq0qWLtm/frujoaM2aNUvSn2fr4+PjtWnTJn399deSpC1btujzzz/XnDlzVKNGDY0cOVKffvqpOnfurK1bt+qVV17RuHHjfDL8/PPP+uij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XVImfx6/S8rj72N3SZmOq8ixu9o09jVq1NDo0aMVEhIit9utZ599Vu3bt5ck9e/fX9ddd11A5CksLNTKlSv18ssvq0aNGjp48KDfMz388MPeMe+++66lB73SMn300Ue68cYbvRdNv/fee3ruuef8lic1NVV33nmn2rVrp4ULF+rzzz/XrbfeWuV5TvTll1+qcePGys/PlyTNmTNHF154oQYMGKA5c+Zozpw5ljcaJ2dq0qSJHnvsMb355puW5igtz0UXXaTbbrtNwcHBeu+99/TZZ5/5vUbXXXed973z5Zdf6uOPP9a9997r10ySlJ2drTVr1vh8EaA/8/jjuF1WprVr1/rt2F1aJn8eu0vK89577/nluF1WpunTp/v92D169GifZisQjt0nZ/L3sbukTP4+fp+cJxCO3Sdnkip+7K42U3EcDodCQkIkSUVFRSoqKirxC6z8nWfBggX6y1/+oho1akiSwsLC/J7pOGOMvvvuO1122WV+z+RwOLwH5ry8PMtubVpant27d6tt27aS/jzY/PDDD5bkOS4nJ0erVq1S7969vcvS09PVo0cPSVKPHj2Unp7u90yxsbF++wKPkvJcfPHFCg4OliS1bt3a8m+rLinTic3XsWPHLD9OlZRJkt555x3dfvvtAZPHn0rK5M9jd2mZjvPHsbukPP46bpeVyd/H7pL4+9hdEn8eu0vj7+P3yfx97C5NRY/d1eaMvfTnn+BGjBih33//XX379lVcXJxWr16tr776SosXL1aLFi30t7/9zbI/eZWUJysrSxs3btSHH36oGjVq6M4777T0T5UlZTpuw4YNCgsL0znnnGNZntIyJSUlKTk5WbNmzZLH49HYsWP9mqdJkyZauXKlOnTooO+//97nC9Ws8Pbbb+uOO+7wOaN58OBB7wdneHi4Dh065PdM/nSqPAsXLlTXrl0DItMHH3ygxYsXKzQ0VKNHj/Z7ppUrVyoiIkLNmze3NEtpeST57bhdWiZ/H7vLen/749hdUh5/HrdLy+TvY7ckJScnS5KuvPJKJSYm+v3YXVKmQFBWJn8cv0vK489jd0mZTufYXW3O2EtSUFCQXnrpJU2bNk1bt27Vjh071KdPH02ePFn//Oc/FR4ernfffdeveTwej44cOaLk5GTdeeedmjhxoqy88VBJmY5btmyZpWd8ysq0YMECJSUl6Y033lBSUpKmTZvm1zx///vf9dVXX2nEiBHKz8+X02nd77w//vijwsLC1KJFC8v2eSqBlulUeT799FMFBwfr8ssvD4hMAwcO1BtvvKFu3bpp/vz5fs107Ngxffrpp7rlllssy1FWHkl+PW6Xlsmfx+5Tvb+tPnaXlsefx+3SMvnz2C1JY8aM0fjx4/XUU0/pq6++0vr16y3dvx0y+eP4XVoefx27S8t0OsfuanXG/rg6deqoXbt2ysjI8Jmj2bt3b40fP96veSIiItSpUyc5HA61atVKQUFBOnz4sKUXqp2cqWnTpioqKtKKFSt8Lsaw2omZvv32W911112SpC5dumj69Ol+zXPddddp1KhRkv780+6qVassy7Fp0yatXLlSq1evVmFhofLz8zVp0iSFhYVp//79Cg8P1/79+y19D5WWafjw4ZZlKG+eRYsW6ccff9Szzz5r6Z9Oy1Ojbt26KSUlxXthvT8yTZ48WXv37tXjjz8u6c/pDCNGjNC4cePUoEEDy/OcXCOrj9ulZfLnsbusOvnj2F1anh9//NFvx+2yauSvY7ck78WVYWFh6tChgzIzM/167C4tU7t27SzNUN5M/jp+n6pGVh+7S8q0fv360zt2m2ri4MGD5siRI8YYY44dO2aeeeYZs3LlSpObm+sd83//939m4sSJfs3z1VdfmQ8//NAYY8xvv/1m7r//fuPxePyayRhjVq9ebZ599llLcpQn00MPPWTWrl1rjDHm559/Nk888YRf8xw4cMAYY0xRUZGZPHmy+d///mdJnpOtXbvWjBs3zhhjzLvvvms+++wzY4wxn332mZk1a5bfMx03evRok5mZ6fc8q1evNg899JA5ePCgX7KUlGn37t3e5V9++aV5+eWX/Z7pREOHDvVLvU7M46/jdlmZ/HnsLi2TMf47dpeUx1/H7bIy+fPYnZ+fb/Ly8rz/fvrpp83q1av9euwuLdNx/jh2l5bJX8fv0vL489h9qtfNmPIfu6vNGfv9+/drypQp8ng8MsaoS5cuuvTSSzV58mRt27ZNDodDDRs2tOwK5tLyuN1uTZ06VY8++qicTqeGDRtm2W+hpWWS/DcNp7RMderUUWpqqjwej2rUqKH77rvPr3m+/PJLffXVV5Kkjh07qmfPnpbkKcuAAQM0ceJELVy4UJGRkXrkkUf8HUkrVqzQv/71Lx06dEgpKSlq3ry5nn76ab/lmTlzptxut8aMGSNJiouLs/wuBid7//33lZWVJYfDocjISL/nCUTvvfeeX47bZenVq5ffjt1l8dexuyT33XefX47bZVm2bJnfjt0HDx7Uyy+/LOnPmzF069ZN7du3V8uWLf127C4tkz+P3aVleuCBB/xy/C4tz8svv+y3Y3dpmU4H3zwLAAAA2EC1ungWAAAAQMlo7AEAAAAboLEHAAAAbIDGHgAAALABGnsAAADABmjsAQAAABugsQcAAABsgMYeAGzu3//+t/773/9Kkh555BGtW7euUrY7ZcoUffjhh5WyrZKMHDlSO3furLLtA4Dd0NgDgI0dOnRI3377ra688kpJ0iuvvKLzzz/fz6nK59prr9V//vMff8cAgGqDxh4AbGzRokW65JJLVLNmTX9HqbCEhAStW7dO+/fv93cUAKgWnP4OAAComIcffljZ2dlyu92SJKfzz0P5uHHjFBsb6zN29erV6tmzp/fxsGHDdN999+miiy7yPu7bt68WL16sffv2qX379ho2bFiJvwj8+uuvmjZtmrKysnTJJZfI4XD4PD9nzhz973//08GDB+VyuTRw4EB17NhRn3/+uTZv3qzHHnvMO/Zf//qXgoKCNGjQIM2ZM0fz5s1Tfn6+wsPDNWTIEF144YWqWbOmWrRooZ9++klXXHFFpdQOAOyMxh4AqpmJEydKkt544w1FRUXp+uuvL3Xsjh07FBMTU+b2vvvuOz311FOqWbOmnnnmGS1atEh9+vTxGeN2u/XSSy/p6quvVr9+/bRy5Uq99tpr+stf/uIdExUVpeeff14NGjTQ999/r8mTJ2vSpEm6/PLLNXv2bB09elR16tRRUVGRli9frqeeekq7d+/WV199pXHjxikiIkJ79+6Vx+PxbrNx48bavn376ZQJAM46TMUBgGpqx44datKkSZlj8vLyVLt27TLHXHXVVYqIiFDdunV16aWXatu2bcXGbN68WUVFRerfv7+cTqc6d+6sli1b+ozp0qWLIiIiFBQUpK5duyo6OlqZmZkKDw9X27Zt9d1330mSMjIyVK9ePbVo0UJBQUH6448/tGvXLrndbjVq1EjR0dHebdauXVtHjx4tZ0UA4OzGGXsAqIY8Ho927dp1ysa+Tp06ys/PL3NMgwYNvP+uWbOmcnNzi43Zv3+/IiIifKbfREZG+oz59ttv9cUXX2jfvn2SpIKCAh0+fFiS1KNHDy1YsECJiYlasmSJunfvLkmKjo7WoEGDNHv2bO3atUsXX3yx/va3vykiIkKSlJ+frzp16pSZHwDwJ87YA0A1lJ2dLY/Ho6ioqDLHNWvWTFlZWWe8v/DwcOXm5soY412Wk5Pj/fe+ffs0ffp03X333frXv/6lt99+W02aNPGO79Chg3bs2KEdO3boxx9/1OWXX+5dt1u3bhozZoymTJkiSXr//fe9z/32229q1qzZGecHgLMBjT0AVEP5+fkKCQnxXkBbmksuuUTr168/4/21bt1aQUFBmjdvnoqKivTDDz8oMzPT+/yxY8fkcDhUv359SdI333zjcw/6mjVrqlOnTpo0aZJatWrlPdu/e/durV27Vn/88Ydq1qypmjVrKijoz4+mP/74Q7/88ov3Ql8AQNlo7AGgGmrcuLGaNWumu+66S7/99lup47p3767Vq1ersLDwjPbndDr12GOPadGiRbrrrru0fPlydezY0ft8bGysrrnmGj399NO65557tGPHDp133nk+27jiiiu0Y8cO7zQc6c/m/f3339fdd9+te+65R4cOHdLAgQMlSStXrtT555/vnZYDACibw5z4d1UAgO38+9//VlhYmPr37+/XHNnZ2XrooYf05ptvKjQ09JTjn3rqKd1///1q2rSpBekAoPqjsQcAVDmPx6N3331XeXl5Gjp0qL/jAIAtMRUHAFClCgoKlJSUpJ9//lk333yzv+MAgG1xxh4AAACwAc7YAwAAADZAYw8AAADYAI09AAAAYAM09gAAAIAN0NgDAAAANkBjDwAAANgAjT0AAABgAzT2AAAAgA38fy9AVkDEuxDEAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(12.5, 10)\n", "#histogram of the samples:\n", "\n", "ax = plt.subplot(311)\n", "ax.set_autoscaley_on(False)\n", "\n", "plt.hist(lambda_1_samples, histtype='stepfilled', bins=30, alpha=0.85,\n", " label=\"posterior of $\\lambda_1$\", color=\"#A60628\", density=True)\n", "plt.legend(loc=\"upper left\")\n", "plt.title(r\"\"\"Posterior distributions of the variables\n", " $\\lambda_1,\\;\\lambda_2,\\;\\tau$\"\"\")\n", "plt.xlim([15, 30])\n", "plt.xlabel(\"$\\lambda_1$ value\")\n", "\n", "ax = plt.subplot(312)\n", "ax.set_autoscaley_on(False)\n", "plt.hist(lambda_2_samples, histtype='stepfilled', bins=30, alpha=0.85,\n", " label=\"posterior of $\\lambda_2$\", color=\"#7A68A6\", density=True)\n", "plt.legend(loc=\"upper left\")\n", "plt.xlim([15, 30])\n", "plt.xlabel(\"$\\lambda_2$ value\")\n", "\n", "plt.subplot(313)\n", "w = 1.0 / tau_samples.shape[0] * np.ones_like(tau_samples)\n", "plt.hist(tau_samples, bins=n_count_data, alpha=1,\n", " label=r\"posterior of $\\tau$\",\n", " color=\"#467821\", weights=w, rwidth=2.)\n", "plt.xticks(np.arange(n_count_data))\n", "\n", "plt.legend(loc=\"upper left\")\n", "plt.ylim([0, .75])\n", "plt.xlim([35, len(count_data)-20])\n", "plt.xlabel(r\"$\\tau$ (in days)\")\n", "plt.ylabel(\"probability\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interpretation\n", "\n", "Recall that Bayesian methodology returns a *distribution*. Hence we now have distributions to describe the unknown $\\lambda$s and $\\tau$. What have we gained? Immediately, we can see the uncertainty in our estimates: the wider the distribution, the less certain our posterior belief should be. We can also see what the plausible values for the parameters are: $\\lambda_1$ is around 18 and $\\lambda_2$ is around 23. The posterior distributions of the two $\\lambda$s are clearly distinct, indicating that it is indeed likely that there was a change in the user's text-message behaviour.\n", "\n", "What other observations can you make? If you look at the original data again, do these results seem reasonable? \n", "\n", "Notice also that the posterior distributions for the $\\lambda$s do not look like exponential distributions, even though our priors for these variables were exponential. In fact, the posterior distributions are not really of any form that we recognize from the original model. But that's OK! This is one of the benefits of taking a computational point of view. If we had instead done this analysis using mathematical approaches, we would have been stuck with an analytically intractable (and messy) distribution. Our use of a computational approach makes us indifferent to mathematical tractability.\n", "\n", "Our analysis also returned a distribution for $\\tau$. Its posterior distribution looks a little different from the other two because it is a discrete random variable, so it doesn't assign probabilities to intervals. We can see that near day 45, there was a 50% chance that the user's behaviour changed. Had no change occurred, or had the change been gradual over time, the posterior distribution of $\\tau$ would have been more spread out, reflecting that many days were plausible candidates for $\\tau$. By contrast, in the actual results we see that only three or four days make any sense as potential transition points. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Why would I want samples from the posterior, anyways?\n", "\n", "\n", "We will deal with this question for the remainder of the book, and it is an understatement to say that it will lead us to some amazing results. For now, let's end this chapter with one more example.\n", "\n", "We'll use the posterior samples to answer the following question: what is the expected number of texts at day $t, \\; 0 \\le t \\le 70$ ? Recall that the expected value of a Poisson variable is equal to its parameter $\\lambda$. Therefore, the question is equivalent to *what is the expected value of $\\lambda$ at time $t$*?\n", "\n", "In the code below, let $i$ index samples from the posterior distributions. Given a day $t$, we average over all possible $\\lambda_i$ for that day $t$, using $\\lambda_i = \\lambda_{1,i}$ if $t \\lt \\tau_i$ (that is, if the behaviour change has not yet occurred), else we use $\\lambda_i = \\lambda_{2,i}$. " ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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7OPHj8eGDRsKTJ84cSLWr1//wvWrV6+ORYsWFZhesWJFzJ49W04IRCWOL5MgIiKi0kDWkBghRIFpmZmZUCplrU5ERERERK+o2Cvso0ePBvB03Hn+z/nS09PRpk0b3UVGRERERETFF+wffvghhBBYsGABPvzwQ6159vb2xd7NSkREREREr6/Ygr1hw4YAgHXr1sHCwkIvARERERER0T9kDUJnsU5EREREZBi8a5SIiIiIyIixYCciIiIiMmIs2ImIiIiIjJisFycBwEcffYSwsDBcv34dtWrV0mVMRER69/yLtCwskpCTkwOAL9EiIpKLLyXUjWKvsG/cuBGHDx/G3bt3kZycDACYN2+eXgIjIiIiIqIXXGGvWrUqLl26hD179iA7OxvffvstNBoN1Go1TE1lX5wnIiIiIqJXVGzV7e/vD39/fwDAv/71L9StWxf79u3DBx98AAcHB9SsWROjRo3SS6BEREREROVRsQX76NGjUbNmTdSqVQsajQa+vr5Yt24d1q5di/j4eNy4cUNfcRIRERERlUvFjmEPDw9Hz549YWVlhSdPnmDSpEnIzc3F0aNHkZeXBx8fH33FSURERERULhVbsFtaWqJ+/fro1q0bLCwsEBoaCqVSiQsXLmDZsmUYOXKkvuIkIiIiIiqXZN856uPjgwoVKsDU1FQq1PPy8nQWGBERERERvcSLk/JvLh0zZow0zcTEpOQjIiIiIiIiyUu/6dTT01MXcRARERERUSFeumAnIiIiIiL9YcFORERERGTEWLATERERERkxFuxEREREREasyMc6zp49GwqF4oUNfPLJJyUa0KsKO3y/yHkftXUtkXZeti0iIiIiotdVZMHeoUMH6eeHDx/iwIED8PPzg4uLCxITExEdHQ1/f3+9BElEREREVF4VWbC3b99e+nnmzJmYOXMmqlatKk1r27YtVq1ahf79++s0QCIiIiKi8kzWm07v3r2LypUra02rVKkS7t27p5OgiIiIShOlJg9WWWla00SKBQCgQkZKkevlLyNXSbb1rDyFgEhJ1lt/xqK47QN0v41F5b0kydnGksyDIdp6lf1UH7kvlL2jrCHnz5NVsDds2BArV67EgAED4OTkhMTERGzduhX169d/6Q6JiIjKklq3/0KnwxGweJKlNV3zn6f/H1nMuvnLyFWSbT0rUc/9GYvitg/Q/TYWlfeS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wNbWtshlVSoVVCqV9DknJ0f6OTExscC05+UvI0dx7eiqLTmx67ut55exsLB45byX5jzIpavYXyXvcpd7nf2hqLZKkqH3h2dzr+99Rm6fusiDHLrsz9nZ+ZX3p5Lcl40x7yUZF8/xxrE/FJX3kmSseZBD3+caQ+fB1bXopyUZbEiMp6cnoqOjAQDR0dHw8vIyVChEREREREZLL1fYv/zyS8TGxuLx48cYNWoU+vfvj6CgIISHh2P//v1wdnZGSEiIPkIhIiIiIipV9FKwT5gwodDps2fP1kf3RKQnfDEKERFRyTPYkBgiIiIiInoxFuxEREREREaMBTsRERERkRFjwU5EREREZMRKxYuTSkpxN8QBvCmOiIiIiIwPr7ATERERERkxFuxEREREREaMBTsRERERkRErV2PYSxJfEEP0angvCT3r+f3BwiIJOTk50ufysj/wuCCi4vAKOxERERGREWPBTkRERERkxFiwExEREREZMRbsRERERERGjDedEhWDN4LRqyjNN6WX5tiJiMoqXmEnIiIiIjJiLNiJiIiIiIwYC3YiIiIiIiPGMexEREREVKaV9pe08Qo7EREREZERY8FORERERGTEWLATERERERkxFuxEREREREaMN50SERERGRG+tI+exyvsRERERERGjAU7EREREZERY8FORERERGTEWLATERERERkxFuxEREREREaMBTsRERERkRFjwU5EREREZMRYsBMRERERGTG+OImIiIxecS+S4UtkqLzicVF+8Ao7EREREZERY8FORERERGTEWLATERERERkxFuxEREREREbM4DednjlzBuvXr4dGo0FAQACCgoIMHRIRERERkdEw6BV2jUaDdevWYcaMGQgPD8eRI0dw9+5dQ4ZERERERGRUDFqwX716FVWqVEHlypVhamqK1q1bIyYmxpAhEREREREZFYMW7MnJyXBycpI+Ozk5ITk52YAREREREREZF4UQQhiq82PHjuGvv/7CqFGjAAAHDx7E1atXMWzYMK3loqKiEBUVBQBYuHCh3uMkIiIiIjIUg15hd3JyQlJSkvQ5KSkJDg4OBZZTqVRYuHAhFi5ciGnTpukzRPp/zLthMO+Gw9wbBvNuGMy7YTDvhlPacm/Qgr127dqIi4tDfHw81Go1jh49Ck9PT0OGRERERERkVAz6WEcTExMMGzYMoaGh0Gg0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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(12.5, 5)\n", "# tau_samples, lambda_1_samples, lambda_2_samples contain\n", "# N samples from the corresponding posterior distribution\n", "N = tau_samples.shape[0]\n", "expected_texts_per_day = np.zeros(n_count_data)\n", "for day in range(0, n_count_data):\n", " # ix is a bool index of all tau samples corresponding to\n", " # the switchpoint occurring prior to value of 'day'\n", " ix = day < tau_samples\n", " # Each posterior sample corresponds to a value for tau.\n", " # for each day, that value of tau indicates whether we're \"before\"\n", " # (in the lambda1 \"regime\") or\n", " # \"after\" (in the lambda2 \"regime\") the switchpoint.\n", " # by taking the posterior sample of lambda1/2 accordingly, we can average\n", " # over all samples to get an expected value for lambda on that day.\n", " # As explained, the \"message count\" random variable is Poisson distributed,\n", " # and therefore lambda (the poisson parameter) is the expected value of\n", " # \"message count\".\n", " expected_texts_per_day[day] = (lambda_1_samples[ix].sum()\n", " + lambda_2_samples[~ix].sum()) / N\n", "\n", "\n", "plt.plot(range(n_count_data), expected_texts_per_day, lw=4, color=\"#E24A33\",\n", " label=\"expected number of text-messages received\")\n", "plt.xlim(0, n_count_data)\n", "plt.xlabel(\"Day\")\n", "plt.ylabel(\"Expected # text-messages\")\n", "plt.title(\"Expected number of text-messages received\")\n", "plt.ylim(0, 60)\n", "plt.bar(np.arange(len(count_data)), count_data, color=\"#348ABD\", alpha=0.65,\n", " label=\"observed texts per day\")\n", "\n", "plt.legend(loc=\"upper left\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our analysis shows strong support for believing the user's behavior did change ($\\lambda_1$ would have been close in value to $\\lambda_2$ had this not been true), and that the change was sudden rather than gradual (as demonstrated by $\\tau$'s strongly peaked posterior distribution). We can speculate what might have caused this: a cheaper text-message rate, a recent weather-to-text subscription, or perhaps a new relationship. (In fact, the 45th day corresponds to Christmas, and I moved away to Toronto the next month, leaving a girlfriend behind.)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Exercises\n", "\n", "1\\. Using `lambda_1_samples` and `lambda_2_samples`, what is the mean of the posterior distributions of $\\lambda_1$ and $\\lambda_2$?" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "#type your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2\\. What is the expected percentage increase in text-message rates? `hint:` compute the mean of `lambda_1_samples/lambda_2_samples`. Note that this quantity is very different from `lambda_1_samples.mean()/lambda_2_samples.mean()`." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "#type your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3\\. What is the mean of $\\lambda_1$ **given** that we know $\\tau$ is less than 45. That is, suppose we have been given new information that the change in behaviour occurred prior to day 45. What is the expected value of $\\lambda_1$ now? (You do not need to redo the PyMC part. Just consider all instances where `tau_samples < 45`.)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "#type your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### References\n", "\n", "\n", "- [1] Gelman, Andrew. N.p.. Web. 22 Jan 2013. [N is never large enough](http://andrewgelman.com/2005/07/31/n_is_never_larg).\n", "- [2] Norvig, Peter. 2009. [The Unreasonable Effectiveness of Data](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf).\n", "- [3] Salvatier, J, Wiecki TV, and Fonnesbeck C. (2016) Probabilistic programming in Python using PyMC3. *PeerJ Computer Science* 2:e55 \n", "- [4] Jimmy Lin and Alek Kolcz. Large-Scale Machine Learning at Twitter. Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data (SIGMOD 2012), pages 793-804, May 2012, Scottsdale, Arizona.\n", "- [5] Cronin, Beau. \"Why Probabilistic Programming Matters.\" 24 Mar 2013. Google, Online Posting to Google . Web. 24 Mar. 2013. ." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML\n", "def css_styling():\n", " styles = open(\"../styles/custom.css\", \"r\").read()\n", " return HTML(styles)\n", "css_styling()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "pymc_env", "language": "python", "name": "pymc_env" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 4 }