{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "You can order print and ebook versions of *Think Bayes 2e* from\n", "[Bookshop.org](https://bookshop.org/a/98697/9781492089469) and\n", "[Amazon](https://amzn.to/334eqGo)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Survival Analysis" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:34.889427Z", "iopub.status.busy": "2021-04-16T19:37:34.888019Z", "iopub.status.idle": "2021-04-16T19:37:34.891992Z", "shell.execute_reply": "2021-04-16T19:37:34.891386Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "# install empiricaldist if necessary\n", "\n", "try:\n", " import empiricaldist\n", "except ImportError:\n", " !pip install empiricaldist\n", " import empiricaldist" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:34.895783Z", "iopub.status.busy": "2021-04-16T19:37:34.895192Z", "iopub.status.idle": "2021-04-16T19:37:34.896815Z", "shell.execute_reply": "2021-04-16T19:37:34.897202Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "# Get utils.py\n", "\n", "from os.path import basename, exists\n", "\n", "def download(url):\n", " filename = basename(url)\n", " if not exists(filename):\n", " from urllib.request import urlretrieve\n", " local, _ = urlretrieve(url, filename)\n", " print('Downloaded ' + local)\n", " \n", "download('https://github.com/AllenDowney/ThinkBayes2/raw/master/soln/utils.py')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:34.900465Z", "iopub.status.busy": "2021-04-16T19:37:34.899738Z", "iopub.status.idle": "2021-04-16T19:37:35.562654Z", "shell.execute_reply": "2021-04-16T19:37:35.562138Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "from utils import set_pyplot_params\n", "set_pyplot_params()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This chapter introduces \"survival analysis\", which is a set of statistical methods used to answer questions about the time until an event.\n", "In the context of medicine it is literally about survival, but it can be applied to the time until any kind of event, or instead of time it can be about space or other dimensions.\n", "\n", "Survival analysis is challenging because the data we have are often incomplete. But as we'll see, Bayesian methods are particularly good at working with incomplete data.\n", "\n", "As examples, we'll consider two applications that are a little less serious than life and death: the time until light bulbs fail and the time until dogs in a shelter are adopted.\n", "To describe these \"survival times\", we'll use the Weibull distribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Weibull Distribution\n", "\n", "The [Weibull distribution](https://en.wikipedia.org/wiki/Weibull_distribution) is often used in survival analysis because it is a good model for the distribution of lifetimes for manufactured products, at least over some parts of the range.\n", "\n", "SciPy provides several versions of the Weibull distribution; the one we'll use is called `weibull_min`.\n", "To make the interface consistent with our notation, I'll wrap it in a function that takes as parameters $\\lambda$, which mostly affects the location or \"central tendency\" of the distribution, and $k$, which affects the shape." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.566415Z", "iopub.status.busy": "2021-04-16T19:37:35.565864Z", "iopub.status.idle": "2021-04-16T19:37:35.569596Z", "shell.execute_reply": "2021-04-16T19:37:35.569017Z" } }, "outputs": [], "source": [ "from scipy.stats import weibull_min\n", "\n", "def weibull_dist(lam, k):\n", " return weibull_min(k, scale=lam)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an example, here's a Weibull distribution with parameters $\\lambda=3$ and $k=0.8$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.575101Z", "iopub.status.busy": "2021-04-16T19:37:35.574198Z", "iopub.status.idle": "2021-04-16T19:37:35.576663Z", "shell.execute_reply": "2021-04-16T19:37:35.577224Z" } }, "outputs": [], "source": [ "lam = 3\n", "k = 0.8\n", "actual_dist = weibull_dist(lam, k)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is an object that represents the distribution.\n", "Here's what the Weibull CDF looks like with those parameters." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.584820Z", "iopub.status.busy": "2021-04-16T19:37:35.583794Z", "iopub.status.idle": "2021-04-16T19:37:35.757065Z", "shell.execute_reply": "2021-04-16T19:37:35.756515Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from empiricaldist import Cdf\n", "from utils import decorate\n", "\n", "qs = np.linspace(0, 12, 101)\n", "ps = actual_dist.cdf(qs)\n", "cdf = Cdf(ps, qs)\n", "cdf.plot()\n", "\n", "decorate(xlabel='Duration in time', \n", " ylabel='CDF',\n", " title='CDF of a Weibull distribution')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`actual_dist` provides `rvs`, which we can use to generate a random sample from this distribution." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.760484Z", "iopub.status.busy": "2021-04-16T19:37:35.760006Z", "iopub.status.idle": "2021-04-16T19:37:35.762412Z", "shell.execute_reply": "2021-04-16T19:37:35.761932Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "np.random.seed(17)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.766596Z", "iopub.status.busy": "2021-04-16T19:37:35.765998Z", "iopub.status.idle": "2021-04-16T19:37:35.768601Z", "shell.execute_reply": "2021-04-16T19:37:35.768230Z" } }, "outputs": [ { "data": { "text/plain": [ "array([0.80497283, 2.11577082, 0.43308797, 0.10862644, 5.17334866,\n", " 3.25745053, 3.05555883, 2.47401062, 0.05340806, 1.08386395])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = actual_dist.rvs(10)\n", "data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, given the parameters of the distribution, we can generate a sample.\n", "Now let's see if we can go the other way: given the sample, we'll estimate the parameters.\n", "\n", "Here's a uniform prior distribution for $\\lambda$:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.773021Z", "iopub.status.busy": "2021-04-16T19:37:35.772572Z", "iopub.status.idle": "2021-04-16T19:37:35.778527Z", "shell.execute_reply": "2021-04-16T19:37:35.778919Z" } }, "outputs": [], "source": [ "from utils import make_uniform\n", "\n", "lams = np.linspace(0.1, 10.1, num=101)\n", "prior_lam = make_uniform(lams, name='lambda')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And a uniform prior for $k$:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.783338Z", "iopub.status.busy": "2021-04-16T19:37:35.782851Z", "iopub.status.idle": "2021-04-16T19:37:35.784420Z", "shell.execute_reply": "2021-04-16T19:37:35.784771Z" } }, "outputs": [], "source": [ "ks = np.linspace(0.1, 5.1, num=101)\n", "prior_k = make_uniform(ks, name='k')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I'll use `make_joint` to make a joint prior distribution for the two parameters." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.788549Z", "iopub.status.busy": "2021-04-16T19:37:35.787996Z", "iopub.status.idle": "2021-04-16T19:37:35.789987Z", "shell.execute_reply": "2021-04-16T19:37:35.790430Z" } }, "outputs": [], "source": [ "from utils import make_joint\n", "\n", "prior = make_joint(prior_lam, prior_k)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is a `DataFrame` that represents the joint prior, with possible values of $\\lambda$ across the columns and values of $k$ down the rows.\n", "\n", "Now I'll use `meshgrid` to make a 3-D mesh with $\\lambda$ on the first axis (`axis=0`), $k$ on the second axis (`axis=1`), and the data on the third axis (`axis=2`)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.794031Z", "iopub.status.busy": "2021-04-16T19:37:35.793470Z", "iopub.status.idle": "2021-04-16T19:37:35.798668Z", "shell.execute_reply": "2021-04-16T19:37:35.798094Z" } }, "outputs": [], "source": [ "lam_mesh, k_mesh, data_mesh = np.meshgrid(\n", " prior.columns, prior.index, data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can use `weibull_dist` to compute the PDF of the Weibull distribution for each pair of parameters and each data point." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.803606Z", "iopub.status.busy": "2021-04-16T19:37:35.802941Z", "iopub.status.idle": "2021-04-16T19:37:35.829401Z", "shell.execute_reply": "2021-04-16T19:37:35.828903Z" } }, "outputs": [ { "data": { "text/plain": [ "(101, 101, 10)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "densities = weibull_dist(lam_mesh, k_mesh).pdf(data_mesh)\n", "densities.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The likelihood of the data is the product of the probability densities along `axis=2`." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.832478Z", "iopub.status.busy": "2021-04-16T19:37:35.831851Z", "iopub.status.idle": "2021-04-16T19:37:35.835448Z", "shell.execute_reply": "2021-04-16T19:37:35.835040Z" } }, "outputs": [ { "data": { "text/plain": [ "2.0938302958838208e-05" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "likelihood = densities.prod(axis=2)\n", "likelihood.sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can compute the posterior distribution in the usual way." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.839158Z", "iopub.status.busy": "2021-04-16T19:37:35.838606Z", "iopub.status.idle": "2021-04-16T19:37:35.843194Z", "shell.execute_reply": "2021-04-16T19:37:35.842756Z" }, "tags": [ "hide-output" ] }, "outputs": [ { "data": { "text/plain": [ "2.052573567183434e-09" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from utils import normalize\n", "\n", "posterior = prior * likelihood\n", "normalize(posterior)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function encapsulates these steps.\n", "It takes a joint prior distribution and the data, and returns a joint posterior distribution." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.847328Z", "iopub.status.busy": "2021-04-16T19:37:35.846908Z", "iopub.status.idle": "2021-04-16T19:37:35.849172Z", "shell.execute_reply": "2021-04-16T19:37:35.848696Z" } }, "outputs": [], "source": [ "def update_weibull(prior, data):\n", " \"\"\"Update the prior based on data.\"\"\"\n", " lam_mesh, k_mesh, data_mesh = np.meshgrid(\n", " prior.columns, prior.index, data)\n", " \n", " densities = weibull_dist(lam_mesh, k_mesh).pdf(data_mesh)\n", " likelihood = densities.prod(axis=2)\n", "\n", " posterior = prior * likelihood\n", " normalize(posterior)\n", "\n", " return posterior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's how we use it." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.852532Z", "iopub.status.busy": "2021-04-16T19:37:35.852026Z", "iopub.status.idle": "2021-04-16T19:37:35.875653Z", "shell.execute_reply": "2021-04-16T19:37:35.875092Z" } }, "outputs": [], "source": [ "posterior = update_weibull(prior, data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here's a contour plot of the joint posterior distribution." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:35.889429Z", "iopub.status.busy": "2021-04-16T19:37:35.888348Z", "iopub.status.idle": "2021-04-16T19:37:36.051329Z", "shell.execute_reply": "2021-04-16T19:37:36.050848Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAAA9L0lEQVR4nO3deVxUVeMG8GcYdoZhAFmGXcQFBAOXMjdErfSnlluapmaZu+WbLWZWmi2+ZraKafW6ZLa8aqapueVG7omICuKKsovIOjD7+f3h2ySCCshlsef7+cyn5s6955y5M+PDOffec2VCCAEiIiKqVVb13QAiIqL7EQOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWLorhUKBkydP1lp5ffr0weLFi6u07sSJEzFjxoxaq7sykZGRWLFiBQBg9erV6NSpU62VfWt5QUFB+OWXX2qt/Li4OPj5+dVaedU1fvx4uLm5wdvbW/K6bv7e7NmzByqVqsZlzZkzBwMGDLA8l8lkSEhIuLcGEt2CAdtAdO/eHXZ2dlAoFHB1dUV0dDSOHj16z2V++umn99y2kpISRERE3HM5f/ntt98wefLkKq27ZMkSzJ8/v0rr3us/ugDw9NNP48CBA3ddb8WKFYiMjKy18qoiNTUVMpkMBQUFlmVdu3ZFenp6rZRfXfv378fatWtx6dIlZGdnV3i9X79+mDlzZrllfn5+iImJKbds8ODBePHFF+9aX3W+N/S3yr43VDcYsA3I/PnzUVJSgqysLLRt27bcX9j1wWg03tP2QgiYTKZaak3jc6/7r6G7dOkSAgIC4OLiUunrMTEx2L17t+X5uXPnYGNjgxMnTkCr1QK48R3Zt29fhdC9XzXW38T9/l2WCgO2AbK3t8fYsWORmZmJvLw85OTkYOjQofDw8EBAQABmzZpl+cJfv34dAwcOhJubG1QqFdq1a4fLly/j5ZdfRlxcHGbMmAGFQoE+ffoAuNEbnTp1KgICAuDp6YnRo0ejsLAQwN9/6S5fvhwhISHw9fUFUH74TAiBhQsXolmzZnBzc0Pv3r1x8eJFS9uDgoIwb948dOzYEY6OjkhKSqrw/m7tWW/fvh1RUVFwcXFB27ZtsXPnTstrY8aMwb/+9a9y7Vu1ahVCQkKgUqkwZswYGAwG5OXloU+fPigsLIRCoYBCoUBcXFyl+3fRokXw9/eHu7s7Zs2aVe61W3umH3/8MQICAuDs7IygoCB88803OH78OCZOnIiTJ09a6rpy5QrmzJmDfv36YdKkSXBzc8OMGTMq7emePn0abdu2hVKpxGOPPYbMzMxy7+/mnsa//vUvjBkzBgDw4IMPArjRC1QoFFi9enWFXntxcTHGjx8PtVoNtVqNiRMnQqPR3HX/3c7tPpvPP/8czz//vGUf/NXGm8XExODYsWMoLi4GcGOEoWfPnoiKisLBgwcBAKdOncL169cRHR0NAPjxxx/Rpk0bqFQqdOjQoVzvv7IRmS+++AJqtRre3t6YPXs2/pqY7tYhYABQqVTYs2fPbd/r7fz1uY4dOxZKpRLNmzfH+vXry+2j9u3bw8XFBWq1GpMnT0ZZWZnl9cp+E6tXr0Z4eDicnZ0REBCAt956CzdPqieTyRAbG4uwsDA4OTlh1KhRuH79OoYNGwalUomoqCicOXPGsv6dfteVfW8AID4+HjExMXBzc0NISAi+/vrrCu/55u/ypUuX0KtXL7i4uMDNzQ2dO3dGaWlptffnP4qgBiE6Olp88sknQgghNBqNmDZtmggMDBRCCNGjRw8xYsQIUVxcLFJTU0VYWJh4//33hRBCzJw5U/Tr109oNBphNBrF8ePHRV5eXoUy//Lkk0+K4cOHi/z8fFFSUiKeeuopMXLkSCGEEJcuXRIAxIABA0R+fr7QaDRCCCEAiOPHjwshhFi5cqXw8fERiYmJoqysTEyfPl2EhoYKg8EghBAiMDBQtGjRQpw5c0YYjUah0+nu+F7Pnz8v7O3txbp164TBYBBr1qwRDg4O4uLFi0IIIZ555hkxbdq0cu0bNmyYKCwsFBkZGcLX11csX75cCCHE7t27hYuLyx338++//y6USqU4cOCA0Ol04o033hByudxSxvLly8UDDzwghBAiJSVFODg4iOTkZCGEENnZ2eLEiRMV1vvL7NmzLWUZDAah0WgqrBcYGCiCgoJEcnKy0Gg0YvTo0aJ79+7l3l9+fr5l/WnTpolnnnnmtq/f+p6fffZZERMTI65duyZyc3NFdHS0GDduXJX2363u9tlUtg9uZjKZhKurq9iyZYsQQogRI0aIVatWiXfeeUe8/fbbQgghPv/8cxEVFSWEEGLz5s3C19dXHDt2TJhMJrFu3Trh5uYmrl27JoQo/73ZvXu3sLKyEmPGjBEajUYkJycLPz8/sWLFCstn8cQTT5Rrj4uLi9i9e3elr9/8Hb/VX5/rkiVLhMFgEBs3bhR2dnbi/PnzQggh9u3bJ+Lj44XRaBQXLlwQrVq1Eu+9955l+8p+E1u2bBEpKSnCbDaL48ePC09PT/Hdd9+Va0+PHj3EtWvXRHp6uvD09BStW7cW+/btEwaDQYwePVr079/fsn5Vftc3f2+ysrKEm5ub+Omnn4TRaBQnT54UarVa7Ny5s9x7vvm7PHz4cDFhwgSh1+uFXq8X+/fvr/T3TX9jD7YBmTlzJlQqFYKDg3HmzBls3LgRGRkZ2LVrFxYuXAiFQoHAwEDMmjXLclKOjY0N8vLycO7cOcjlckRGRsLNza3S8nNzc7Fu3TosWrQIKpUKTk5OmDt3Ln766adyw1azZ8+GSqWCo6NjhTJWrVqFF198EREREbC3t8cHH3yA9PR0HDlyxLLOpEmT0LJlS8jlctja2t7xPf/444/o3r07Bg0aBGtrawwZMgRdunTBDz/8cNtt5syZA6VSCR8fH/Tp0wfHjh27Yx03W716NZ5++mk8/PDDsLW1xZw5c+Dk5FTpunK5HEIInD59GmVlZfDy8kKbNm3uWH54eDjGjBkDa2vrSvcfcGP/tGrVCo6Ojvjwww+xZ8+eWjmOajab8f3332PevHlwd3dHkyZN8MEHH+Dbb7+F2Wy2rFfV/VeTz+ZmVlZW6Natm2WYeO/evYiOjkZ0dLRl2Z49eyzDw7GxsXj11VfRtm1bWFlZYdCgQWjVqhW2bNly2/c7f/58ODo6olWrVpg6dSpWrVpV5f1VHS1atMCECRNgbW2N/v37IyYmxrIfunbtiqioKMjlcgQHB2PChAkVesq3/ib69OmDFi1aQCaTITIyEsOHD6+wzauvvgp3d3f4+voiOjoa4eHh6Nq1K6ytrTFs2DDEx8cDqPrv+marVq1Ct27dMHToUMjlcoSHh+PZZ5/F999/b1nn1u+yjY0NsrKykJqaChsbG3Tq1Omuv+9/OgZsAzJv3jwUFBQgOzsbW7duRZs2bZCeng57e/tyZ2kGBwdb/kF+9dVX0bVrVwwdOhTe3t6YNm1aueGpm6WmpsJsNiM4OBgqlcoyDGdlZVXuJJWAgIDbtjE9PR1BQUGW53Z2dvDx8SkXEHfa/m7l3fr+KnPzvnBycrIMQVZFZmYmAgMDLc9tbGygVqsrXbdZs2ZYuXIlFi1aBC8vLzz66KN3PdO0Ku/95vq9vLxgZ2eHjIyMqr2BO8jNzYVOpyu3P4ODg6HT6XDt2jXLsqruv5p8Nrf66zjsuXPnYGdnB39/fzz00EM4ceIENBpNueOvqampeOONNyzfTZVKhYSEhNvuG3t7e3h6elqeBwYG1sp+rMzNn9mtdR09ehS9evWCl5cXlEol3njjjXL7G6j4vdi2bRs6deqEJk2awMXFBUuWLKmwzc2fk6OjY4XnJSUlAKr+u75ZamoqtmzZUm5ff/7558jKyrptmxcsWABfX1/06tULQUFBmDNnTrk/3KgiBmwD5+fnB61Wi5ycHMuyS5cuWS7NUCgUmD9/PlJSUnDw4EH8/vvvlksZrKzKf7z+/v6wsrJCZmYmCgoKLA+tVms53lrZdre2JzU11fJcr9cjMzOz3KUid9r+buXd+v6qoyr1+vj44PLly5bnBoOh3D8qtxo6dCh2796NnJwcPPDAAxg1atQd66pKG26u/+rVq9DpdPD19YVCoQCAcse1bm7b3cr28PCAra1tuf156dIl2NnZoUmTJndt161q47OJiYnB8ePHsWHDBstxVnt7e0RGRuLrr79Gfn4+unXrBuDG93PhwoXlvpsajQavv/56pWVrtVpcvXrV8vzKlSuW77FCoSi3H0tLS1FUVFTldt/q5s/s1rqGDx+OmJgYXLx4EUVFRfjggw/KHU8Fyn92er0egwYNwoQJE5CRkYHCwkJMnDixwjZVdbffdWXfG39/fwwcOLDc+sXFxeVGC27dztPTE4sXL8bly5exadMmLFmypNyxaKqIAdvA+fr6IiYmBq+88go0Gg2uXLmCDz74AM888wwAYNOmTTh79izMZjOUSiVsbGxgbW0N4Ebv6MKFC5ayvL29MWDAAEydOtXy13J2dna1fiQjR47EokWLkJSUBJ1OhzfffBO+vr6WEymqa9iwYdizZw82bNgAk8mEn3/+GXFxcXjqqaeqXZaXlxeKi4uRm5t723WGDx+O1atX4/Dhw9Dr9Zg7d67lJKBbpaSkYMeOHSgrK4OtrS0UCkW5fZuVlXXb0YI7Wbp0KVJSUlBWVoYZM2agW7du8PPzQ5MmTRAQEICVK1fCbDZj9+7d5f7B8/DwgJWVVbnP9GZWVlYYMWIEZs2ahevXryMvLw+zZs3CqFGjqvVHz19q47OJiIiAq6srFi5ciO7du1uWR0dHY/78+WjXrh2USiUAYOrUqViwYAGOHTsGIQRKS0uxc+fO2/aYraysMHPmTJSVlSElJQWxsbF4+umnAQBt27bFwYMHcebMGWi1WsycORMymaza++AvZ8+exddffw2j0YjNmzdj165dGDZsGACgqKjIMjSbnJyML7/88o5l6XQ6aLVauLu7w87ODocPHy43NFtdd/tdV/a9GTVqFHbt2oV169bBYDDAYDAgISHhjpcG/ve//8WVK1cghICLiwvkcrnl90CVY8A2At9//z3KysoQGBiIzp07o2/fvnjttdcAAOfPn0fv3r3h7OyMsLAwPPzww5g0aRKAG2eg7ty5EyqVCv369QNw4yzZv4aQlEolunbtWq1jmKNHj8YLL7yAfv36wdvbGydOnMCvv/5a4x9aSEgIfv75Z8yePRuurq6YO3cu1q9fj+Dg4GqX1bJlS4wdOxahoaFQqVT4448/KqzTq1cvvPvuuxg8eDDUajXMZjPCw8MrLU+v1+Ott96Cl5cX3N3dsWvXLsux7x49eqBjx47w9fWFSqXClStXqtzO5557DsOHD4eXlxcyMjIsZ3UCwLJly7B8+XK4uLhg6dKl5cLMwcEBs2fPRp8+faBSqSr9R/mzzz5DUFAQwsLC0Lp1a4SEhODjjz+ucttuVhufjUwmQ3R0NLKzsy09WACWZTdfntOvXz/8+9//xrhx4+Dq6oqmTZvis88+u+0wpLOzMyIjIxEcHIxu3bph9OjRlj88e/TogQkTJqBTp04ICQlBREQEnJ2da7QfAKB37944dOgQ3NzcMG3aNHz33Xdo3rw5gBt/MH300UdQKBSYOHHiXf8AcXZ2RmxsLMaPHw+lUon333/fEtY1daffdWXfG19fX2zbtg1Lly6FWq2Gl5cXpkyZcsde/rFjx9CpUycoFAo8/PDDGDt2LB5//PF7avf9TiZqOi5BVENdu3bF8OHDOWkANQpz5sxBQkJCrc7ARf8M7MFSndJoNLh48WKNeqhERI0JA5bqzNmzZ6FWq9GlSxc88sgj9d0cIiJJcYiYiIhIAuzBEhERSYABS0REJIEGdxGTUqms1/tbEhER3U16evpdJy9pcAHr5+dX6R1YiIiIGoqwsLC7rsMhYiIiIglI2oMNCgqCk5MTbGxsANyYkagqqU9ERNTYST5EvG3bNh5TJSKifxwOERMREUlA8oDt378/HnjgAbz55pswGo0VXo+NjUVYWJjlkZ+fL3WTiIiIJCfpTE7p6enw8/NDcXExRo4ciU6dOmHGjBl33CYsLIxnERMRUYNWlayStAf717FXZ2dnjBs3DocOHZKyOiIiogZDsoDVaDSWi3CNRiPWrVuHNm3aSFUdERFRgyLZWcQ5OTkYNGgQzGYzTCYTOnfujNdff12q6oiIiBoUyQI2ODgYCQkJUhVPRETUoPEyHSIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgnUScBOnjwZ1tbWdVEVERFRgyB5wMbFxUGj0UhdDRERUYMiacDqdDq8/vrr+Oijj6SshoiIqMGRdNx27ty5GDt2LDw8PG67TmxsLGJjYy3P8/PzpWwSERFRnZAJIYQUBScmJmL69OnYsWMHZDIZrK2tYTQa77pdWFgYkpKSpGgSERFRrahKVkk2RLx//34kJSWhadOmCAoKgslkQlBQEHuoRET0jyBZD/ZW7MESEdH9ol57sERERP9kdRawVem9EhER3S/YgyUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCRgLWXhjzzyCK5evQohBFq0aIFly5ZBqVRKWSUREVGDIGkPdu3atThx4gQSExMREBCATz75RMrqiIiIGgxJA9bFxQUAYDabUVpaKmVVREREDYrkx2Aff/xxeHl5ITk5GS+//LLU1RERETUIkgfsxo0bkZ2djY4dO2Lx4sUVXo+NjUVYWJjlkZ+fL3WTiIiIJCcTQoi6qCglJQWDBw/GqVOn7rheWFgYkpKS6qJJRERENVKVrJKsB1tUVISsrCzL83Xr1iE8PFyq6oiIiBoUyS7TKSwsxKBBg6DVaiGTydCqVSt88cUXUlVHRETUoEgWsP7+/jh69KhUxRMRETVonMmJiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIglUKWC/+OKLCssmTJhQ640hIiK6X1QpYLdu3YpVq1YBAIQQeP7552E2myVtGBERUWNmXZWV1qxZgz59+kChUODXX3+Fra0tlixZInXbiIiIGq0qBayjoyM2btyI7t27o0uXLpUOGRMREdHf7hiwNjY2kMlkludmsxmnTp3CkiVLIJPJoNfrJW8gERFRY3THgDUYDHXVDiIiovsKL9MhIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSgGQBm5aWhp49eyI0NBTh4eF48803paqKiIiowZEsYK2trTF//nwkJycjPj4ecXFx2Lhxo1TVERERNSjWUhWsVquhVqsBALa2tmjTpg0uX74sVXVEREQNSp0cg83Ly8Mvv/yCXr161UV1RERE9U6yHuxfdDodhgwZgunTpyM0NLTC67GxsYiNjbU8z8/Pl7pJREREkpMJIYRUhZtMJgwbNgxNmzbFggULqrRNWFgYkpKSpGoSERHRPatKVkk6RDx+/HgolUp8+OGHUlZDRETU4EgWsPv378eyZctw9OhRREVFITIyEp9//rlU1RERETUokh2D7dy5MyQcfSYiImrQOJMTERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAev6bgDVPr1Wj6yLOci8kIPM89koyiuG0WCCyWCE0WCCldwKrl4quHqr4OatgptahYBQP9ja2dR304mI7hsM2PtAaXEZEnadwtGtxxG/MxHZl67CTe0KnxBv+AR7wcVDCRtba9g72cHaxhpmkxl5mddx7vhFFOQUIjftGvIy8xEUEYAW7ZqhRftmiOoRDnWwV32/NSKiRosB20gV55dg35qD2PPTfiQdPItmkUHo8FgUZqx6EcFtAmHvaFet8oquF+N8/CWc/fMCjvwWj69e/RbuPq546P/aokOfKIR3aQUbW/ZwiYiqSiaEEPXdiJuFhYUhKSmpvpvRIJmMJhzdmoAdq/biyJZ4RHQLQ88RXdGhTySUbs61WpfRYMSpP87gyJZ4HN2agLysfPQY3gWPjumO5m2DIZPJarU+IqLGpCpZxYBtBIQQiFt3CCve+hFyGzkeGxODHiO6wM3btc7acDkpDdtX7sXO7/ZB6abAo2Ni0Pu5GDi7KuqsDUREDQUDtpEzm83Y/8tR/PDBOmhL9Xj23afQZdBD9dp7NBlNiN+ZiM1f7cDx30+h16huGDitL/yaq+utTUREda0qWcVjsA3U2WMX8OmEpdBrDRg2YwB6DO8CubW8vpsFubUcHXpHoUPvKGRdzMH6z7dgSocZaBMdhhFvDEboQ83ru4lERA0Ce7ANTFlJGVa89RN2fLsHY94djn4TH4GVVcO+XFlTqMHmr3ZizUcb0bx9M4ye/SRaPcigJaL7F4eIG5m4nw/jy5eWo2WHEEz57Fk08XWv1vY6vRFpmfkoKimDVmeAVmeEVmuAtbUVVEpHuLo4QqV0gKuLI6wl6A2XabT4dfE2rPloI1o+GILn3h+B4DaBtV4PEVF9Y8A2EmUlZVj04jIc//0kXowdh4792t11G7NZ4MyFbBw+fgkXLufi4pU8ZOQUwMNNAZXSAfb2NrC3tYG9vQ2MRhMKisqQX1iKgqJS6PRGNAv0QGgzb7QK8UZYczWa+rvX2rHdspIyrP/8N6xduBGdBzyIZ959Ck183GqlbCKihoAB2wici7+I94d/iuA2AXjpq4l3PCvXZDLj+Ok07Dt8DnFHzkNmJUPn9s3QMtgLwQFNEOTnDkcH27vWWVSiRcqFbCSfv/E4fTYTdrY2iO7YHN07tkBYczWsrO49bAtyC/Hd3LXY+d0+DHzx/zD01cfhoHC453KJiOobA7YBM5vN+PnTzVj93jqMmz8SfZ7vedseZFFxGTb9fhLrtyXA1sYa0R1boNtDIWgZ7FUrvU6zWeD02UzsOXQWew+dg9ks8H8xrTGgdySa1MJlOGkpGfjm9dU4c+Q8xs0fiZ5Pd+V1tETUqDFgG6iykjIseDYW6WezMOvHlxAY6lfpepfT8/Djr8ew849kdHggCEP6RCEq3F/ScBJC4PS5LPyyLQF7D51Dlw4hGPJ/bdG6xb1fhhO/MxGx05ZB6e6MKZ8/h5DIprXQYiKiuseAbYCyLuVgzsAF8Gvpg1eWTYaDk32FdYo1Wiz76QB+230ajz/SBoN6R8Lb06XO23q9QIMN20/gl20n4KtWYeywzmgXEXBPZRoNRvzyxW9Y/d46xAzvgjHvDqv1WaiIiKTGgG1gTv2RjHeGLMSAqX0wYtagCj1Rg8GEDTtOYMWag2jfJhCTR0fD0/3u4aMzGnGttBQ5mhLkajSQW1nB0cYGTja2UNjawkuhgML27sdmb8dgMGHL7lNYufYQgvzdMfWZaAQHeNS4PAC4np2Pr2d8h2PbT2Dyp88iemgnDhsTUaPBgG1Afl8dh0Uv/AfTv56IroM7Vng96VwW3v/iNyidHTD1me63HZI1mc04c+0aDqWn4XBGOo5nZSKvrAwqe3t4OjmhiaMThBDQGPTQ6A3QGPTIKy2Fv4sLwj29EO7phXZqNR7wVsOqmoGm0xnw06Zj+H7DUfTs3ArjR3SBi/O9nbQUvzMRn078CoGt/fBi7Dh4+FXv0iQiovrAgG0g/rtgA9Z+/Cve3fg6WnYIKfea0WTGt+sOYc3meEwZHY2+PcIr7cmdzMnB6pMnsPX8OTjZ2KCjnz8e8vNHex8f+DorYWd9+0m5ygwGJF/LxamrOTiZcxWHM9JgMpvRp3kL9G/RCm28qney1PUCDZasjsOBPy9g4shut21zVWlLdfh29k/47T+7MObdp9B/0qMNfnINIvpnY8DWMyEEVrz1I3b/uB/zts6Cb0j5XmlaZj7mfr4Z1nI53nyhD3y9VeVeL9bpsDHlDH48dRI5mhIMax2BQaFhCFKp7inQhBBIzMnGprNn8evZM3B3cMTUBx9C75Dm1Sr3RHI6FizZDm8PF8yc0hvurk41bhNwY3rIhc9/CaWbAq8unwLPexyGJiKSCgO2Hgkh8M2M73Bg41Es+H12hVmZdv5xBh99tQNPD3gQI57oALn87x6b3mTC9ydPYNGRwwj39MTw8Dbo0TQYNvLan33JaDZj2/lz+OTQATja2OLVTp3RJSCwykGr0xmwZHUcdsQl4/XJvdGlQ7N7ao9Bb8Cqd9Zg05LtmPTJs+g1qhuPzRJRg8OArSdCCHz50grE70zE/B1vw139923lTCYzvv7hD/y25zTef/UJhLf0KbfdtgvnMf+PODRxdMQbXbshSu1TWRW1zmg2Y31yEj47fBABLi54s1t3hHl4Vnn7w8cv4YNFW9H94RaY8kw0bG3u7T4Spw+kYP7oL9AsMgjTvhwHlUfdn0VNRHQ7DNh6IIRA7IvLkLgvCfN3vA3Xmy6vKdPqMffTLbiWX4J5MwagidvfkzhcKSzAazu24apGgxmdu+LRZiF37LkVGopwWXMFGWWZMAlTude87b0Q7BQEV1vXavf+dEYjViWewKIjh/Ba564YHh5R5TLyCzV459MtMJpM+OC1AVAqKl6CVB1lJWX46tVVOPjrn5j1w0uI6Bp6T+UREdUWBmwdE0Jg8bTlSNhzCgt+n12u15WbV4wZ89bD11uFN1/oAzs7G8s2688k4929uzEmsi0mdXgQtpUMBWuMGhzMO4LEglNI1VxBibEEAY7+8HX0gY3MGsCNEBQwI7MsC6may7CT26OpUyDauISjc5OOcLR2rPJ7Sc7NxeTNv6KtWo13e/SCo41NlbYzGk1Y+PVOJCZnYMGsQfDxUlW5ztvZu+YgPpu4FE++8gSGzXiCJ0ARUb1jwNYhIQSWTF+J+J2J+PD32eV6rmmZ+Xhp7hr06tIK40d0tczzW6TT4s1dvyMxJxufPNanwnCwWZhxqjAJe3P/QEJBIsKUrdDBrR2CnYKgdvCGXHb7Y7JmYUZWWTYuaC7hcN5RnC0+j47uD6K/Tx942lft5KEinQ6v7diG1IJ8LO33BAJVqirvi1U/H8baLfH49+sDEVYLN2PPOJ+Fd4d+DFcvF8z49gUOGRNRvWLA1qHV76/DzlV78fG+d8uF65WM63hxzn/xVP/2eOrx9pblZ/OuYdzGDWjv44N3YnpWmAjidGEyvrv8I4zCiO6e3dDZvSNUtjUPlavaXOzM2Y09uXF43Of/0Ffdu0pDv0IILDpyGGuTTmPt0Kfg4VT1M4W3xyXjs//swufvDEWzwHs/I1iv1WPJ9JU4uvU45m6YgaYRvBUeEdWPKmWVaGBCQ0PruwnVtiF2qxjmO05kXcoptzw17Zp4fOxi8d9Nx8otP5h2RbRdEiu+TTheoaxc7TXx2dnFYsqx6SLu6n5hMptqta3ppRliZuJs8fnZL0WZUVvl7d7bu0f0/36VKNbpqlXfhu0nxBPPfykysvOr2dLb+3XJdjHQ7Rmxf8ORWiuTiKg6qpJVkgbs1KlTha+vr5DL5VXeprEF7PZv94ghXmNFalJaueWX0/PE42MXizWby4frppQz4oEvF4mdF86XW24ym8SG9E1i3NGp4vvL/xWlhlLJ2lxmLBOfpiwSsxLniCJ9cZW2MZnN4oUtm8Ton9cKk9lcrfq+XXdIDJ38tSgoqr33lLD7lBji+Zz474INtVYmEVFVVSWrJD1bZNiwYTh27JiUVdSrpENnsXjacry/eWa5O+JczSvGS3PX4OkBD2LI/7W1LF+fnIS3d/+O5U8MRM/gv68XNZgN+PLCNzhy/RjeaT0LwwOehIO1dPdNtZfb44Xmk+DjoMa69A1V2sZKJsOCRx5DZnExtl84X636Rg58EBGtfLBoxZ4atLZyD3Rvjc8OvI+Ni7dixVs/QjSsIx1ERJA0YLt06QIvLy8pq6g31zKv453BH+GF2OfRot3fYVlUosXL767FY9GtMbRfO8vyn5OT8H7cXqwcOLjcyUwaYyk+PPMJNEYNZoW9BrWDd52030pmhREBQ3Ew7xDSSjOqtI2dtTVeeKgjPjt0EOZqBJpMJsOLY2JwNPEy/jhavXC+E59m3vh437vYt+4QFk9bDrPZXGtlExHdK17vUAMGvQFzh3yEXiO7ocfwLpbleoMRr/97PVq38MG44Z0ty3+/eBHv7duDlQMGI9zz7z84Cg1FeDfp3/C098D0Fi/AQX5v141Wl8pWhb7qPvgpbW2Vt+nbvAVMwoydFy9Uqy6lswNmTn4MHy7ZjhKNrrpNvS0PP3d8vPcdnD5wBp+MX8qeLBE1GPUesLGxsQgLC7M88vPz67tJdySEwOeTv4G9kz2e+2B4udcWrdgDG2s5XpnwiOUM3Yv5+Xhl+2/4ok8/tPb8e2YkvVmPj1O+QJiyFZ5vOgbWVvc281FNhbm0wjVdXpXXl1tZoUfTYJy6mlPtuh6KaopmgR7Yd/hctbe9E5WHCxb8Phun95/BxsXbarVsIqKaqveAnTJlCpKSkiwPV1fXu29Uj9Z9sgkn45Lx5k8vQX7ThBDb9yXhj6MXMOelfrD+37zCGr0ekzdvxKQOD6JzQPkbla9K/QHONgqMDHyqXufaLTWWwkle9QkoAMDdwRF5pWU1qq9Hp5bYdSClRtveiZOLE95a8zJWvPUjTktQPhFRddV7wDYmx3acwA/z1uO9X1+H0u3vG6FfSruGj7/5HXNf6Q9Xl7/DavaeXQh2dcO4tu3LlfPn9XicLDyNCcFjYSWr34/gqi4XTtbVuwuO0s4O+dqaBWy3h5oj/nQaSsv0Ndr+TpqGB+BfSydgzqAFyM8pqPXyiYiqQ9J/3SdMmAA/Pz+YTCb4+flhwoQJUlYnKU2hBgvHfonpX0+EX4u/T1Iymsz4YNFWjB7cEeE3LT+SkY69qan4d69HKvRQt2Rtw5P+A+Fso0B9ytbmYF36L3jUu2e1ttt+4Tw6+PjWqE6Fox2MRtPdV6yh6CcfRoc+kVi78FfJ6iAiqgpJD/wtXbpUyuLr1JKXv0VEt1B0HvBgueU/bDgKKysZht10xrDRbMacPbvwSqfOUNqVP3EprTQdWdocdHAr36uta1qTFp+ejUVfdW+Eu4RVebuL+fn4MzMTn/b+vxrVW1RSBhtrORzsqza3cU2MeGMwpnSYgSdffZxTKhJRveEQcRXE/34Shzcfw5TPniu3PCO7AKvXH8EbU3qXu5/rhjPJsLGS48nW4RXKOnDtMB52fxC2VtIFzN3kaK/i45Qv4OOgRl917ypvpzMaMS9uLwaHhcHZzq5GdV9Ky4ObyknS485+zdXo2K8dNn+1U7I6iIjupn5OXW1ESovL8Mn4JZj0ybNQujuXe23l2oPo1ysCgX7lb6a+9fw5jIhoA6tKQkRho0BxWbGkbb6dYkMJNmdtxe6re/GIV0887tu3ykFXqNVi4qaNsLOWY/rDne++QSX0BiM+/c8ujHiiQ422r46mEYG4ejlX8nqIiG6HPdi7+OrVVWjeLhjdh3UqtzwjuwB7Dp2rEBZaowEH0q6ge1DTSstr6hiIVM1lydpbmVJjKdalb8ArJ2aiQF+AueFvYoj/gCr3ojOKijB0zU8IcHHB1/0HVLgxQVWtWHMIri6OeOLRB2q0fXXYO9pBp639E6mIiKqKPdg7OPVHMvb/cgTfnPq4Qk9vzeZj6NsjHG6q8mfgnsy5Cl+lEl6Kyk9gCnQKQJY2B8euH0c7tyjJ2l5sKMbJwiQkFpzE8YJEtHYJxdthM+Hr6HP3jf+nSKfDtyeOY9nxeIyJjMILD3as0dCu2Syw7rfjWL8tAcsWjLLcrk9KxfklktdBRHQnDNg7WDnnv3h61mC4NFGWWy6EwP4/L2DOS/0rbOPqYI8i3e1nKnKydsT0Fi9g8fmvkFycgp6e3WtlesRCQxEulaTifMlFnCw8jbTSdLRwDsEDqggM8OsPb/uqT1mZX1aGFQnxWHkiAR39/PHtwPIzUFVHzrUifLBoKwqKyrBo7jCoPaU/6SgvKx/rP9uM+TvelrwuIqLbYcDexsm4ZFxJzsD7mypewpKWmQ9NqR6tmlUMHX+lC66VlkKj18PpNkOprV1C8W74W1ib/gveOf0BXGxc0N4tCu1co+Bl7wkHuUOl18cazUYUG0twVXsVObpcXNXmIkubjYuaVBTqCxHkFIBgRVM84dsXYcpWsK/m1Isnc3LwXWICtpw7i5imwfhpyDC0bNKkWmX8RQiB7fuS8dmyXXj8kTZ4blgn2NrUzdftq1e/RczwLmjeNrhO6iMiqgwD9jbWLNyIoa88Dlv7iiF5Ijkdka39y505/Bc7a2uEuLlh09kUDAuPuG35bnZuGN/sORjNRqQUn8Of+fH44vxSXNddhxlm2FvZwUHuAAEBnVkPvVkPkzDB1soWXvae8LLzgKe9J1q7hKK/Tx/4OfhWe7pFndGIPzMzEXclFTsuXECRToenwiOwdeQz8FUq715AJbQ6A37ffwbrtyagqESLf88ciDatanbNbHXpynRY8dZPOLHnNL459Umd1ElEdDsM2EqUFGgQvyMR07+eWOnrdnY2d7xzy4JHemPU+rWwlcsxoFXoHY9bWltZo7VLKFq7hOIZ3Oj56c16lJm0KDOVQSaTwc7KDrZWtrCzsr2nOYv1JhOScq/iaEYG/rhyGUczMxDookKXgEC837MX2vv4wtqqZue9XU7Pw4Ydifhtz2k0C2yC4U90QLcHm8PGRn73jWvB6QMp+Oi5WKibeWPR4XlQqKo3OxURUW1jwFbiwIajaN255W0nKVAq7FFYrL3t9hFeXvi6/wDM2LkNv5xJxjsxPRCkqtocyzKZDHZyO9jJ7aBCzY9XGkwmpBYUIPlaLk7m5OB4diZOXb0KtcIZ7X18MDA0FB892hseTjUPoqt5xdi1PwU7/0hGelYBHosOQ+y7TyE4oGbDyjVRptFi5Vs/Yvu3ezFx4TN4ZHR0vc7tTET0FwZsJeJ3JuLh/re/VtPXS4ULl3NxPjUXIUEela7TwdcXvz09GrFHD6Pf998hzMMT3YOaolWTJmjp3gQ+zs73FARCCBTrdcgp0SC9qBBpRUU3/ltYiIv5+UgtyIergwNCm3igtacnJrV/CFFqNdwcan4j96LiMiQkpSP+VBriT11BZk4BHm4bjFGDO6JjVFPY2dbN10kIgbPHLmLbsl3Y/eN+tIkOw1eJC9HEx61O6iciqgqZaGA30AwLC0NSUlK9tuHlmNkYMr0/Hu5/++kMN+5IxIo1B7Fk3gh43jIBxa00ej12XbqIQ+npOJt3DWfz8iAg0FTlClcHeyjt7OFsawelnR2sZDIICAgBCAjoTSaU6PXQ6PXQGPQo1OqQW6rBtdJSmMxmeDg5wddZCX8XF/grlfBTuqCZmxtC3NwqTNNYHUIIpGXlI/lcNpLOZSHxTAYup+ehZTNvtA33R9vwAES08qmzE5eAGze53/vTAWxdvgtF14rxyOhoPPZsDPxb1s0xXiKiv1Qlq9iDrUROai68Aivvmf7l8UfaIDu3CK++/zO+eGcolM637xk62dqif8tW6N+yFYAb4ZVdUoJLBfko0GpRrNOh6H8PsxCwkskgk8kgkwHOtnYIcHGBk40tFLa2UNrZo4mjIzycnKCyt690tqjqMhhMuJJ53dIrP5d6FWcu5MBKJkNYc2+ENldj8qhuCG/pA4dKTvqSihACmReycejXY4j7+RAuHE9F+96ReH7e02j/WCTk1nVzfJeIqCYYsJUw6I1VWm/c8M4oKinDsKn/wdC+bdGzSyv4q13vOvQrk8mgdnaG2vnOPd/aZDYL5OWXIDOnEBnZBbiccR1XMq7jcsZ1ZOQUwF3lhOCAJmje1BP9ekbglfGPwMfLpU6PZwohcCU5HYn7knEyLgmn4s5Aq9Gi3aMPYOCLffFgn0g4KGo+xE1EVJc4RFyJTyd+BWc3BcZ+MKJK65+7dBU/bDyKQ/GX4ORoh4eigvBQZFO0CPaEh5uz5DMX6Q1G5BeW3ngUlCL3egly84pxNa8YuddLkH21CNm5hZDLreDjpYKvtwqBvm4I8HW78V8fNyicajZ5/73Iy8pHytHzOHv0AlL+PI+UoxdgbSNHeNdQtOkahvCurdA0IqDcje2JiBqCqmQVA7YSZ46cw+yBC7DqYixs7ap+1xuTyYwzF3JwJOESjiSk4mLaNej1Jnh7KuHj5YImrgooHO3g6GgLhaMdHOxtYWUlg9zqxpCwlZUMJpMZRpMZBqMJRqMZOr0RZVoDyrR6lGkN0JTqUKzRoahEi+L/PUpKdVA42sFV5QhXF0d4uCng4e4MT3dneLgr4NXkRv0uzg71coZtWUkZrpzJxOXTabiYeBmXTl7GxcQr0JZoEdK2KVq2b4YWHULQskMz+DTz5lnARNTgMWBrSAiBtwfMR25aHt74/l8IqOFECUIIFJdobwzL5hQgL1+D0jI9NKU6aMr0KC3Tw2wWMAtx479mM+RWVrC2lsPGxgrWcjnsbK3hYG8DB3tbONjbwNHBFs4KeygV9nB2sofS2R4qpUOdnmxUGbPZjNy0PGScy0LGuSykn81CWkoGLiel41rGdaiDvRAY5oemEQEIbhOI4DaBUDfzYu+UiBolBuw9MJvNWLvwV/wwbz3GfTgKfcb2+Ef3rAx6A65lXEduWh6upefh6pVryE7NRXbqVWRfuoqrl3Nh52gH3+be8G2uhm+IGv6tfBEY5ge/FupKZ8QiImqsGLC1IOXPC5j39Gdw9XLBI6Oi0b53JDz9624iBanpdQYU5BTgWsZ15GXm33hk5eN6dj6uZ+XjelYBrmflo/BaMZzdFPDwd4eH342Hd1NPeDf1hFeQJ9RNPeHspvhH/xFCRP8cDNhaoi3VIW7tIexbexAJu0/BO8gTkTHhCGztD/9WPgho5QuVZ92ecVsZk9EETVEpSvI1KL5eguL//bcorxiFuUUoyC1C4bUiFOYW4Xp2AfKzC1BSoIFC5QR3H1e4+7rd+K+3K1y9VXD3cYO7WgU3tSvc1K6wd6z7E6GIiBoiBqwE9DoDkg6k4OS+ZFxJyUDamQykp2RCbiOHm7cKLh5KqDyUcGmihJOLI+wc7WDnaAd7RzvY2FlDbi2HldzK8hD/O/YqzAJmkxlGgwlGgxFGvRFGgwkGrQHaUh30ZXroyvTQlelQVqJFWYkW2hItSovLoCkshaawFFqNDnJrOZzdFHB2dbrxXzcFlO7OcGmihEsTZ7h4KOHioYSbtwpu3iqoPF04fEtEVE2caEICtnY2iIwJR2RMuGWZ2WzGtYzryM8pRGFukaW3WFZcBl2pDkV5xdCW6mDQGWA2mf9+mMWNS3j+dwaxzMoK1jZyWNtaw8bGGnIbOWztbWHnYAuFygl2DrawdbCFo7M97BX2cFDYw97JHk4ujpaHnYNtvfekiYiIAVsrrKys4Onf5L46NktERPemZvcmIyIiojtiwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBKQCSFEfTfiZkqlEn5+fvXdjEYtPz8frq6u9d2M+wr3qTS4X2sf92ntq2yfpqeno6io6I7bNbiApXsXFhaGpKSk+m7GfYX7VBrcr7WP+7T21XSfcoiYiIhIAgxYIiIiCTBg70NTpkyp7ybcd7hPpcH9Wvu4T2tfTfcpj8ESERFJgD1YIiIiCTBgiYiIJMCAvU+kpaWhZ8+eCA0NRXh4ON588836btJ9ZfLkybC2tq7vZtw3SkpKMHr0aLRo0QKtWrXC0qVL67tJjd7WrVsRGRmJyMhIdOrUCcnJyfXdpEbphRdegJ+fX4Xf+2uvvYaQkBC0aNECa9eurVJZDNj7hLW1NebPn4/k5GTEx8cjLi4OGzdurO9m3Rfi4uKg0Wjquxn3lenTpyM8PBxnz55FcnIyBg4cWN9NavTGjx+PH374AQkJCRgzZgzefvvt+m5SozRs2DAcO3as3LLt27fj0KFDOHPmDHbv3o2XXnoJxcXFdy2LAXufUKvVaN++PQDA1tYWbdq0weXLl+u5VY2fTqfD66+/jo8++qi+m3LfKC4uxqZNmzB9+nQAgEwmg6enZz23qvGTyWSWmYUKCwuhVqvruUWNU5cuXeDl5VVu2c8//4wxY8bA2toavr6+6NKlC7Zv337XsjjmdR/Ky8vDL7/8UqUvAN3Z3LlzMXbsWHh4eNR3U+4bFy9ehJeXF6ZOnYojR47A398fn332GYKCguq7aY3aqlWr0LdvXzg4OMDJyQn79++v7ybdN9LT0zF48GDL84CAAKSnp991O/Zg7zM6nQ5DhgzB9OnTERoaWt/NadQSExNx+PBhPPvss/XdlPuKwWBAQkICnnjiCcTHx6N///547rnn6rtZjZrJZMK8efOwe/dupKWl4bXXXsPo0aPru1n3FZlMZvn/ql7dyoC9j5hMJjz99NNo3749XnrppfpuTqO3f/9+JCUloWnTpggKCoLJZEJQUBDy8/Pru2mNmr+/P9zc3NCnTx8AwIgRIxAfH1/PrWrcjh8/jqKiIkRERAAARo4ciT179tRvo+4j/v7+uHLliuV5enp6lW5Kw4C9j4wfPx5KpRIffvhhfTflvjBp0iRkZmYiNTUVqampkMvlSE1N5Z1K7pGXlxfCw8Px559/AgB27NiB1q1b13OrGjdfX1+kpKQgIyMDwI0zijmCVXsGDRqElStXwmQyITMzE3/88QceffTRu27HY7D3if3792PZsmUIDw9HVFQUAOC5557Diy++WM8tI6royy+/xNixY6HRaKBSqfDNN9/Ud5MaNbVajQULFuDRRx+FtbU1FAoF/vOf/9R3sxqlCRMmYPPmzTCZTPDz80Pfvn2xdOlS7NixAy1btoRMJsPChQvh7Ox817I4VSIREZEEOERMREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLFEDVZt375kzZw7ee++9u66XmpqKkJCQWquX6J+MAUtERCQBBixRIzBkyBC0b98e4eHh5abBHDNmDCZNmoRevXohMDAQP/74I9577z1ERUWhQ4cOyM7OtqybkpKCbt26oUWLFnjllVcsy3fu3InQ0FC0bdsWX331lWV5WloaoqOj0bZtW0REROC7776rmzdLdJ9gwBI1AkuXLsWff/6JxMREXLp0Cdu2bbO8lpGRge3bt+PXX3/F2LFjERISguPHjyMmJqbcjcwPHz6MTZs24dSpUzhw4AA2bdoEnU6HMWPGYM2aNYiPj4der7es36RJE2zduhXx8fHYv38/3nnnHRQUFNTl2yZq1BiwRI3AV199haioKERGRuLQoUM4efKk5bUnnngCVlZWiIiIgFartdy8PDIyEpcuXbKsN2DAACiVStja2mLYsGHYu3cvzpw5Ax8fH4SHhwMARo0aZVnfaDRiypQpiIiIQNeuXZGVlYXz58/X0Tsmavw4FzFRA7d3716sW7cO+/btg7OzM15++WVotVrL63Z2dgBu3E5LJpNZnltZWcFoNN62XJlMdsfbbn388cdwcHBAQkIC5HI52rVrV65eIroz9mCJGriioiKoVCo4OzsjLy8P69atq1E5v/zyC4qKiqDX6/HTTz+hW7duCA0NRWZmJk6dOgXgxk27b67X29sbcrkchw8fxokTJ2rl/RD9UzBgiRq43r17Q6FQoHXr1hg5ciSio6NrVE63bt0wePBgREREoFOnTujXrx/s7OywfPlyPPnkk+jUqRNcXFws60+dOhXr169Hhw4dsHjxYnTo0KG23hLRPwLvpkNERCQB9mCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgn8P1MV/R64oswkAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from utils import plot_contour\n", "\n", "plot_contour(posterior)\n", "decorate(title='Posterior joint distribution of Weibull parameters')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It looks like the range of likely values for $\\lambda$ is about 1 to 4, which contains the actual value we used to generate the data, 3.\n", "And the range for $k$ is about 0.5 to 1.5, which contains the actual value, 0.8." ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "## Marginal Distributions\n", "\n", "To be more precise about these ranges, we can extract the marginal distributions:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.055939Z", "iopub.status.busy": "2021-04-16T19:37:36.055450Z", "iopub.status.idle": "2021-04-16T19:37:36.057535Z", "shell.execute_reply": "2021-04-16T19:37:36.057916Z" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "from utils import marginal\n", "\n", "posterior_lam = marginal(posterior, 0)\n", "posterior_k = marginal(posterior, 1)" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "And compute the posterior means and 90% credible intervals." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.083939Z", "iopub.status.busy": "2021-04-16T19:37:36.077060Z", "iopub.status.idle": "2021-04-16T19:37:36.242353Z", "shell.execute_reply": "2021-04-16T19:37:36.241898Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.axvline(3, color='C5')\n", "posterior_lam.plot(color='C4', label='lambda')\n", "decorate(xlabel='lam',\n", " ylabel='PDF', \n", " title='Posterior marginal distribution of lam')" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "The vertical gray line show the actual value of $\\lambda$.\n", "\n", "Here's the marginal posterior distribution for $k$." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.258259Z", "iopub.status.busy": "2021-04-16T19:37:36.255943Z", "iopub.status.idle": "2021-04-16T19:37:36.436794Z", "shell.execute_reply": "2021-04-16T19:37:36.436423Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAAA+LElEQVR4nO3deXhU5d038O+ZNTPZF8g2EwIOKAlCxKhoVQQXEG1fjXGhGsXEPfa1tVZ9qlVr+1Rpqz7tS6wWH8QibiDaanmsVcNTZPEKQpQaRAOEMNnIMtmTWe/3jzBjAkmYQE7OzJnv57rmMidzzzm/GWK+uc+57/tIQggBIiIiGlcapQsgIiJSIwYsERGRDBiwREREMmDAEhERyYABS0REJAMGLBERkQwYsBSRYmJisHv3bqXLGFfj+Z6ys7Px7rvvBt0+Ly8Pq1evBgCsXbsW55133rjUMdz+xlrb8WzevBkWi2Xc9jdWd9xxB5KSkpCWlnbMczU1NZAkCe3t7RNfGJ00BizJ5qKLLoLRaERMTAwSExMxf/58VFRUnPQ+/+u//uuka+vu7sbpp59+0vsJJaHynm688UZs3br1uO1Wr16NvLy8cdtfMIYLrAsuuAB2u31c9j9WW7Zswfr163HgwAE0NjYqUgPJhwFLslq+fDm6u7vR0NCAuXPn4qqrrlK0Ho/Hc1KvF0LA6/WOUzWhe8xQcbL/XqHuwIEDyMrKQnx8vNKlkAwYsDQhoqKiUFJSgvr6erS2tqKpqQnXXXcdJk2ahKysLDzyyCOBX6ZtbW24+uqrkZSUhISEBJx55pk4ePAgfvrTn2Lz5s146KGHEBMTg8svvxzAQM/t3nvvRVZWFiZPnoybb74ZHR0dAL7rsbz88suw2WzIzMwEAEiShMrKSgADAfbMM8/glFNOQVJSEhYvXoz9+/cHas/OzsZTTz2FefPmwWw2o6qq6pj3d9FFF+Ghhx7CxRdfjOjoaMybNw91dXV44oknMGnSJFgsFrzzzjuB9h9++CHy8/MRHx+P9PR03HPPPejr6xv1mF999RXmzZuH2NhYLFiwAA8++CAuuuiiwGsGv6cnnngC3//+93HvvfciISEBWVlZePPNN4M+/vGsWLECVqsVycnJeOSRR4Y8d3TP9Nlnn0VWVhZiY2ORnZ2Nl156Cbt27cJdd92F3bt3IyYmBjExMaitrcUTTzyBK6+8EnfffTeSkpLw0EMPDdvT/eqrrzB37lzExcVh0aJFqK+vBzB8D/XHP/4xli1bBgA4++yzAQAWiwUxMTFYu3YtNm3ahISEhED7rq4u3HHHHUhPT0d6ejruuusu9PT0DNn/mjVrYLPZkJCQgGXLlsHtdo/4WX344Yc444wzEB8fj7lz5+Kjjz4CAPzxj3/EbbfdFvgM/DWOZvv27cjMzMSGDRuO25ZCgCCSyfz588Vzzz0nhBCip6dH3HfffWLKlClCCCEWLlwofvjDH4quri5RU1MjcnJyxH/+538KIYT4j//4D3HllVeKnp4e4fF4xK5du0Rra+sx+/S79tprxdKlS4XD4RDd3d3ihhtuEDfddJMQQogDBw4IAOKqq64SDodD9PT0CCGEACB27dolhBDilVdeERkZGeLLL78UfX194v777xczZ84UbrdbCCHElClTxIwZM8TXX38tPB6PcDqdw77XzMxMsXv3btHX1ycWLlwopk6dKp599lnhdrvFn//8Z5GcnCxcLpcQQoh//etfYufOncLj8Yh9+/aJ0047Tfz6178O7O/oY/b394tp06aJJ554QjidTrF9+3aRnJws5s+fH3jN4Pf0+OOPC71eL1577TXh8XjEK6+8ImJiYkRnZ2fQx3/nnXeG/Xf9+OOPRVxcnNi6datwOp3i5z//udBqteLll18WQgjx8ssvizlz5gghhNi7d68wmUxiz549QgghGhsbxRdffHFMO7/HH388sC+32y16enqOaTdlyhSRnZ0t9uzZI3p6esTNN98sLrrooiH/3g6HI9D+vvvuE7fccsuIz5eXl4v4+PjA9q233ioWLFggWlpaRHNzs5g/f764/fbbh7z++uuvFx0dHaKurk5kZmYG3vvRqqurRVRUlHj77beF2+0W69atEyaTSezfv3/Ez2CwwfW+//77Ij09XWzatGnE9hRaGLAkm/nz54uoqCgRHx8vUlNTxaJFi8QXX3wh7Ha7ACAaGhoCbdeuXSumT58uhBDiscceE+eee66orKwcdp+DA/bw4cNCo9EEAlgIIb755huh1+uFx+MJ/ILyB4/f4O9dcskl4umnnw4819/fL2JjY8WWLVuEEAO/0I8O9eHqeuihhwLbZWVlIi0tLbDd09MjAIhvv/122Nc/99xz4pJLLglsH33Mf/3rXyI+Pj4Q+kIIcc89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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.axvline(0.8, color='C5')\n", "posterior_k.plot(color='C12', label='k')\n", "decorate(xlabel='k',\n", " ylabel='PDF', \n", " title='Posterior marginal distribution of k')" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "The posterior distributions are wide, which means that with only 10 data points we can't estimated the parameters precisely.\n", "But for both parameters, the actual value falls in the credible interval." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.440827Z", "iopub.status.busy": "2021-04-16T19:37:36.440375Z", "iopub.status.idle": "2021-04-16T19:37:36.443293Z", "shell.execute_reply": "2021-04-16T19:37:36.442768Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3 [1.2 4.4]\n" ] } ], "source": [ "print(lam, posterior_lam.credible_interval(0.9))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.448649Z", "iopub.status.busy": "2021-04-16T19:37:36.448148Z", "iopub.status.idle": "2021-04-16T19:37:36.450658Z", "shell.execute_reply": "2021-04-16T19:37:36.450297Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.8 [0.6 1.4]\n" ] } ], "source": [ "print(k, posterior_k.credible_interval(0.9))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Incomplete Data\n", "\n", "In the previous example we were given 10 random values from a Weibull distribution, and we used them to estimate the parameters (which we pretended we didn't know).\n", "\n", "But in many real-world scenarios, we don't have complete data; in particular, when we observe a system at a point in time, we generally have information about the past, but not the future.\n", "\n", "As an example, suppose you work at a dog shelter and you are interested in the time between the arrival of a new dog and when it is adopted.\n", "Some dogs might be snapped up immediately; others might have to wait longer.\n", "The people who operate the shelter might want to make inferences about the distribution of these residence times.\n", "\n", "Suppose you monitor arrivals and departures over 8 weeks and 10 dogs arrive during that interval.\n", "I'll assume that their arrival times are distributed uniformly, so I'll generate random values like this." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.454085Z", "iopub.status.busy": "2021-04-16T19:37:36.453519Z", "iopub.status.idle": "2021-04-16T19:37:36.455347Z", "shell.execute_reply": "2021-04-16T19:37:36.455719Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "np.random.seed(19)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.459627Z", "iopub.status.busy": "2021-04-16T19:37:36.459000Z", "iopub.status.idle": "2021-04-16T19:37:36.461880Z", "shell.execute_reply": "2021-04-16T19:37:36.462341Z" } }, "outputs": [ { "data": { "text/plain": [ "array([0.78026881, 6.08999773, 1.97550379, 1.1050535 , 2.65157251,\n", " 0.66399652, 5.37581665, 6.45275039, 7.86193532, 5.08528588])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "start = np.random.uniform(0, 8, size=10)\n", "start" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's suppose that the residence times follow the Weibull distribution we used in the previous example.\n", "We can generate a sample from that distribution like this:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.466403Z", "iopub.status.busy": "2021-04-16T19:37:36.465743Z", "iopub.status.idle": "2021-04-16T19:37:36.467654Z", "shell.execute_reply": "2021-04-16T19:37:36.468115Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "np.random.seed(17)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.473358Z", "iopub.status.busy": "2021-04-16T19:37:36.472568Z", "iopub.status.idle": "2021-04-16T19:37:36.476129Z", "shell.execute_reply": "2021-04-16T19:37:36.475500Z" } }, "outputs": [ { "data": { "text/plain": [ "array([0.80497283, 2.11577082, 0.43308797, 0.10862644, 5.17334866,\n", " 3.25745053, 3.05555883, 2.47401062, 0.05340806, 1.08386395])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "duration = actual_dist.rvs(10)\n", "duration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I'll use these values to construct a `DataFrame` that contains the arrival and departure times for each dog, called `start` and `end`." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.481746Z", "iopub.status.busy": "2021-04-16T19:37:36.480901Z", "iopub.status.idle": "2021-04-16T19:37:36.483162Z", "shell.execute_reply": "2021-04-16T19:37:36.483712Z" } }, "outputs": [], "source": [ "import pandas as pd\n", "\n", "d = dict(start=start, end=start+duration)\n", "obs = pd.DataFrame(d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For display purposes, I'll sort the rows of the `DataFrame` by arrival time." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.489558Z", "iopub.status.busy": "2021-04-16T19:37:36.488816Z", "iopub.status.idle": "2021-04-16T19:37:36.497799Z", "shell.execute_reply": "2021-04-16T19:37:36.497392Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
startend
00.6639973.921447
10.7802691.585242
21.1050531.213680
31.9755042.408592
42.6515737.824921
55.0852866.169150
65.3758178.431375
76.0899988.205769
86.4527508.926761
97.8619357.915343
\n", "
" ], "text/plain": [ " start end\n", "0 0.663997 3.921447\n", "1 0.780269 1.585242\n", "2 1.105053 1.213680\n", "3 1.975504 2.408592\n", "4 2.651573 7.824921\n", "5 5.085286 6.169150\n", "6 5.375817 8.431375\n", "7 6.089998 8.205769\n", "8 6.452750 8.926761\n", "9 7.861935 7.915343" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "obs = obs.sort_values(by='start', ignore_index=True)\n", "obs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that several of the lifelines extend past the observation window of 8 weeks.\n", "So if we observed this system at the beginning of Week 8, we would have incomplete information.\n", "Specifically, we would not know the future adoption times for Dogs 6, 7, and 8.\n", "\n", "I'll simulate this incomplete data by identifying the lifelines that extend past the observation window:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.501084Z", "iopub.status.busy": "2021-04-16T19:37:36.500671Z", "iopub.status.idle": "2021-04-16T19:37:36.503464Z", "shell.execute_reply": "2021-04-16T19:37:36.503887Z" } }, "outputs": [], "source": [ "censored = obs['end'] > 8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`censored` is a Boolean Series that is `True` for lifelines that extend past Week 8.\n", "\n", "Data that is not available is sometimes called \"censored\" in the sense that it is hidden from us.\n", "But in this case it is hidden because we don't know the future, not because someone is censoring it.\n", "\n", "For the lifelines that are censored, I'll modify `end` to indicate when they are last observed and `status` to indicate that the observation is incomplete. " ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.509515Z", "iopub.status.busy": "2021-04-16T19:37:36.508879Z", "iopub.status.idle": "2021-04-16T19:37:36.510902Z", "shell.execute_reply": "2021-04-16T19:37:36.511348Z" } }, "outputs": [], "source": [ "obs.loc[censored, 'end'] = 8\n", "obs.loc[censored, 'status'] = 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can plot a \"lifeline\" for each dog, showing the arrival and departure times on a time line." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.517051Z", "iopub.status.busy": "2021-04-16T19:37:36.516471Z", "iopub.status.idle": "2021-04-16T19:37:36.519153Z", "shell.execute_reply": "2021-04-16T19:37:36.518641Z" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "def plot_lifelines(obs):\n", " \"\"\"Plot a line for each observation.\n", " \n", " obs: DataFrame\n", " \"\"\"\n", " for y, row in obs.iterrows():\n", " start = row['start']\n", " end = row['end']\n", " status = row['status']\n", " \n", " if status == 0:\n", " # ongoing\n", " plt.hlines(y, start, end, color='C0')\n", " else:\n", " # complete\n", " plt.hlines(y, start, end, color='C1')\n", " plt.plot(end, y, marker='o', color='C1')\n", " \n", " decorate(xlabel='Time (weeks)',\n", " ylabel='Dog index',\n", " title='Lifelines showing censored and uncensored observations')\n", "\n", " plt.gca().invert_yaxis()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.541732Z", "iopub.status.busy": "2021-04-16T19:37:36.537157Z", "iopub.status.idle": "2021-04-16T19:37:36.697499Z", "shell.execute_reply": "2021-04-16T19:37:36.697069Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAAAyGklEQVR4nO3deVxU9f4/8NdhBnAUhkURAVFTM0VUEDXFnbQrX8vdzEItl6w065qVleVW2c3uLbuaml5bcKmbqFh5zUxNM/clF0rrFsqipoXszPr+/cHPc0MBp+DjAL6ej4ePh+ecmc/nfc4c5jWfc87M0UREQERERJXKw90FEBER1UQMWCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAVsBrVu3xqeffqpPL1u2DCEhIfDx8cGRI0fKfW5qaio0TcPly5cBAA8//DCeeeYZleX+IbNmzcKgQYOU9xMfH4+3335beT81yZtvvolevXrdsP6ioqLw3nvv3bD+aoJBgwZh1qxZf+q5DzzwAJ544olKredGWbVqFWJjY91dRpVhdHcBVV2vXr0waNCgUnf4kydP6v+32Wx4/PHHsXnzZvTo0eMP97NkyZKKlFlt/ec//3F3CUT0J+zYsQODBg3SBwkAcP/99+P+++93X1FVDEewleTChQsoLCxE27Zt3V0KVSN2u93dJVA5RAQOh8PdZSjBfU89BmwFNGnSBBs2bMCRI0dw2223AQAaNmyIZs2aAQDy8vIwefJkNGrUCPXr18fo0aORnZ1dalu/Pyx05fBxYmIimjdvDn9/fzzwwAOw2Wz64w8fPozevXsjMDAQzZs3x7Jly0os69y5M8xmM+rVq4e777671D5FBM888wwaNGgAs9mMFi1alDjk7XA4MHnyZPj7+6NRo0b46KOP9GU2mw3PPvssGjVqhKCgIIwYMQIXL14EALz66qu499579cfGxMSgc+fO+vTQoUPxj3/8A0DxEYI333wTQPEnYn9/fyxfvhzh4eGoW7cunn766RI1//Of/9SXzZgx47qHL7/44gvcfvvt8Pf3R0hICObNm6cv27p1Kzp16gR/f3+0bt0aGzduLPF6TJgwAffeey98fX1x2223YceOHfryVatW4dZbb4Wvry/CwsIwd+5cfdmWLVsQHR0NPz8/tG/fHlu3bi3R7rhx43DPPffAbDZj8eLFsNlsePHFF9GsWTPUrVsXAwYMQGZmpv6ckydPonPnzvD19UXv3r1LLCvN008/jcaNG8PX1xcRERH4+OOP9WWubOOFCxfqy55//vly+yrtVIK/v7++rWbNmoW77767zP3I6XTirbfeQsuWLeHr64tbb70VmzdvBlC8f15Z5u/vj169euG7777Tn9ukSRO89tpr+rbp2bMn0tLS9OeWtW+LCP7+97+jWbNmCAwMRL9+/fDTTz+VaHfevHno3LkzateujZSUFPzyyy+4//77ERoaitDQUDzxxBOwWCz6c5KSktC8eXP4+flhwoQJ1w2v8vYRAMjJycHgwYPh4+ODtm3b4uuvv9aXlbfvlfe+MGvWLNx111145JFHEBgYiGeeeQZBQUHYuXNnib4jIiLw4YcfAih7X/r1118RHx+P7Oxs+Pj4wMfHB7t27cJ7772HqKgova0LFy7gnnvuQVBQEBo1aoTnn39e3zbX2xd//vln9OnTB35+fggMDETXrl1RUFBQ7natcoTK1bNnT3njjTdKXda4cWNZv369iIj8/PPPAkCysrL05cOHD5eRI0dKVlaW5OXlyb333isJCQmlPn7MmDHy+OOPl1g2YsQIyc7OloyMDAkLC5N3331XRETOnTsngYGB8tFHH4ndbpfjx49LSEiIbN26VUREunTpIi+99JI4HA4pKiqSr776qtT6P//8c2nYsKFkZGSIiMiZM2fk1KlTIiIyc+ZM8fT0lNWrV4vdbpf3339ffHx8JCcnR0REZs+eLZGRkXLmzBnJzc2VESNGSN++fUVEZN++fRIcHCwiIr/99psEBwdLYGCg5OTkiNPplLp168rhw4ev2b7bt28XDw8PmTJlihQWFkpKSorUrl1btm/fLiIiW7duFX9/f9m3b59YLBZ54YUXxGg06tvlaocPHxaTySRr164Vq9Uqly9flj179oiIyLfffiv+/v7y5ZdfisPhkF27donZbJbvv/9efz18fHzkyy+/FLvdLnPnzpXGjRuLiEheXp4YjUZ9u2ZlZcn+/ftFROTHH3+UWrVqSVJSkthsNvn444/FZDLJTz/9pLdrMplk8+bN4nA4JD8/X5566imJi4uTzMxMsVgs8uSTT0r37t1FRMRms0nTpk3lueeeE4vFIt98840EBARIz549S11nEZGVK1fKhQsXxG63y5o1a8Tb21vv/3rb+MsvvxSz2SzffPONWCwWee6558RgMJS5jWfOnCkDBw4sMc/Pz09v73r70YIFC+SWW26RgwcPitPplDNnzkhKSoqIiCxatEjatm0rp0+fFpvNJgsWLJBmzZqJxWIRkeK/v9atW8t///tfKSwslPj4eBkzZoyIlL9vv//++xIaGirHjh2TwsJCmTp1qrRq1UpsNpvebosWLeT7778Xu90uRUVFcvvtt8vUqVMlPz9fLl26JL169ZIZM2aIiMjp06fFy8tLNm7cKDabTRYvXiwGg0FmzpxZ6jZzZR+5ur2AgAD9faSsfe967wszZ87UX0ubzSb5+fkyadIkGT9+vF7bgQMHxGw2S0FBgUv7kp+fX4l1e/fdd6Vdu3b6dFxcnNx3332Sm5srqampEhERIS+//LL+/PL2xZEjR8rEiRPFarWK1WqV3bt36699dcGAvY4/G7C//PKLeHh4yK+//qo//vTp0+Lp6Sl2u92lgP3uu+/0544fP14mT54sIiKvvfaaDBo0qEQtzz33nIwdO1ZERHr06CETJkyQtLS0ctdt27ZtUq9ePdmyZYtYrdYSy2bOnCm33367Pu10OsXLy0sOHjwoIiLNmzeXDz/8UF+ekZEhACQjI0PsdruYzWY5efKkrFu3ToYPHy533XWXfPbZZ3L48GEJDAwUh8Nxzfbdvn27aJom+fn5ert9+vSR119/XURExo4dK5MmTdKXWa1W8fPzK/PN/+GHH5YHH3yw1GWPPvqoPPHEEyXm3XfffTJnzhwRKX49RowYoS9LT08XAHLp0iXJy8sTk8kkS5Yskezs7BJtvPTSS9KvX78S8/r27au/qYwZM6ZEIDmdTqlTp44cPXpUn1dYWCgeHh5y9uxZ2blzp5jN5hKvz8MPP1xuwF6tXbt2snLlShFxbRs/8sgj+jKr1Spms7lCAVveftSyZUt5//33S207IiJCNmzYUGJeaGio7Ny5U0SK//4WL16sL1u5cqVERkaKSPn7dp8+feTVV1/Vp4uKisTX11d2796tt/v7v/n9+/eX2GdFRLZs2SJNmzYVEZE5c+ZIfHx8iT5atmxZZsC6so+U1l5iYmK5+9713hdmzpxZIvxEij8M+/n5SWFhoYiITJkyRX98aa7el8oL2Ct/M+fOndOXr1q1Sm699Vb9+eXti6NHj5YBAwbI6dOny6ynquMhYkVSU1PhdDrRtGlT+Pv7w9/fHx07doSHhwfOnz/vUhsNGjTQ/1+nTh3k5ubqbW/atElv19/fH2+99RbOnTsHAFixYgWKiooQExODli1bYuHChaW237t3b8yePRsvvPAC6tWrh6FDh+Lnn38utX9N02AymfQa0tPT0aRJE315aGgovL29kZ6eDoPBgO7du2P79u3Ytm0bevfujTvuuEOf7tWrFzw8St/1zGYzateuXep6Z2ZmIjw8XF/m6emJkJCQMrffmTNncOutt5a6LDU1FUuWLCmxDZOTk0scfr16+wNAbm4u6tSpg08++QTJyckIDw9Ht27dsH379lK3CwA0bdoU6enp+nSjRo30/1+6dAn5+fno0aOHXkeDBg3g5eWFtLQ0ZGZmIjQ0FJ6envpzGjduXOY6A8Abb7yB1q1bw8/PD/7+/jhx4gQuXbqkL7/eNv59+9fbxq4obz+63muUkJBQ4jXKysoqsS3L+hspb9+++jXy9vZGaGhoma9RamoqLl++jMDAQL2OYcOG4cKFCwCu3WZA+a+RK/tIae1lZGSUu+9d733h6vUCgE6dOqFBgwbYuHEj7HY7PvzwQ4wePVpffr19qTzp6emoVatWidfo6vUsb1+cP38+wsLC0KdPHzRp0gSzZs2C0+l0qe+qggGrSHh4ODw8PJCZmYnLly/r/4qKihAWFlbhtgcPHlyi3dzcXGzatAkA0KxZM3zwwQc4f/48li9fjmnTpuHQoUOltvXoo49i7969OHv2LLy9vTFlyhSXamjYsCFSU1P16fPnz8NisaBhw4YAit/grgRqXFwc4uLiSgTunxEaGqqfYwOKL9L4/ZvH1Ro3bowff/yx1GXh4eF4/PHHS2zDvLw8LF682KVa7rjjDmzatAmXLl3C8OHDMXjwYDidzmu2C1B8LunKdgFQ4sNF3bp1Ubt2bezbt69ELYWFhYiNjUVoaCgyMzNLnH8/e/ZsmXV9/fXXmDVrFj744ANkZWXh8uXLiIyMhLh406zQ0FCcOXNGn7bZbOVuYx8fnxLnxQoKCpCTk+NSX8D1X6OPP/64xHYpKCjAyJEjXWq7rH376tfIarUiMzOzzNcoPDwc9evXL1FHdnY28vLyAFy7zYDyXyNX9pHS2rvyvlHWvne994Wr1+uKUaNGITExEZs3b4bJZNK/BXG9famsD8m/X8+ioiL9g0hp61me+vXr4+2338aZM2fw6aefYsmSJVi/fr1Lz60qGLAusNvtKCoq0v/9/uKGsjRo0ACDBg3C5MmT9U9858+fr5QdZNSoUdi2bRuSkpJgs9lgs9lw9OhRHDhwAADwwQcf4MKFC9A0DQEBAfDw8IDReO03sg4cOIBvvvkGVqsVJpMJderUKfVxpUlISMArr7yCtLQ05OXlYerUqejTpw9CQ0MBFAfsli1bkJ2djdtuuw1t2rRBRkYGvvrqK8TFxf2p9R45ciRWr16NgwcPwmaz4aWXXkJ+fn6Zj58wYQLWrFmD9evXw263Izs7G3v37gUATJw4Ee+++y62b98Oh8MBi8WCPXv2lLiIpiwXLlzA+vXrkZubC6PRCLPZDIPBAAAYMWIEduzYgeTkZDgcDqxbtw67du0qcdHX73l4eODhhx/Gk08+qX94+PXXX/ULgTp37oy6deti7ty5sFqt2LdvX4mLhK6Wk5MDo9GIoKAgOJ1OrFixAidOnLjuOl0xcuRIrFq1Cvv27YPVasWcOXPK3cbt27fHnj178P3336OoqAjPPvssNE1zub+JEydi9uzZOHr0KEQEZ8+e1V+DSZMm4cUXX8SpU6f0dUtOTtZHOOUpb99OSEjAwoULkZKSAovFghkzZiAsLAydOnUqta2OHTuiUaNGmDFjBnJzcyEiOHPmjP4Vs3vuuQdffvklPvvsM9jtdixbtgynT58uszZX9pFt27aVaO/cuXPo379/ufve9d4XyjJq1Chs2bIFb7zxBhISEvTX73r7UnBwMHJzc/WLG68WFhaG3r17Y9q0acjPz8fZs2fxyiuvYMyYMeXWc8W///1vnD17FiICPz8/GAwGl9+fqgoGrAueeuopmEwm/d+VK4av57333tMPDZvNZnTv3r3MkeQfERYWhs8//xxLly5FSEgIgoODMWnSJH3ksHXrVrRr1w4+Pj4YMGAA5s+fj3bt2l3TTk5ODh599FHUrVsXDRo0QGZmJhYsWOBSDc8++yz+8pe/oEuXLmjSpAlsNhtWrlypL4+KioLRaNR/EEHTNPTo0QM+Pj6IiIj4U+vdp08fzJw5E4MGDUKDBg1gt9vRokULeHt7l/r49u3bIykpCS+//DICAwPRqlUrfPXVVwCA6OhorFmzBjNmzEBQUBDCwsLwwgsvuPThyel0YsGCBQgPD4efnx8WLVqEtWvXwsPDA82bN8e6deswc+ZMBAQEYM6cOVi/fj2aNm1aZnvz5s1Dly5dEBcXB19fX8TExGDLli0Aig/RJicn4/PPP0dgYCCmT5+OsWPHltlWv379MHToULRp0wahoaE4efIkunbtet11uqJPnz6YO3cuhg4dipCQEDidTkRGRpb5+Li4OEycOBGxsbFo3rw52rRpA19fX5f7mzJlCh555BHcc8898PX1RZ8+ffTR3+TJk/HAAw9gyJAhMJvNaNWqFVavXu1Su+Xt26NHj8Zjjz2Gu+66Cw0aNMC3336LTz75pMw3b4PBgE8++QQZGRlo1aoV/Pz80L9/f33kfdtttyExMRFTpkxB3bp1sW/fPvTr16/M2lzZR+677z4sW7ZMP8ybnJyMgICAcve9670vlKVRo0aIjY3Ftm3bMGrUKH3+9fal2267DePGjUOrVq3g7+9f4krnK1avXo3CwkI0btwYXbt2Rf/+/a+5ar0shw4dQmxsLHx8fNClSxeMGzcOAwYMcOm5VYUmrh47IqpirFYr6tati//85z/o1q2bu8shIiqBI1iqVtatW4fCwkLk5+fjmWeeQWBgYJmH9oiI3IkBS9VKYmIiQkJCEBoaikOHDiE5ORleXl7uLouI6Bo8RExERKQAR7BEREQKMGCJiIgUqHJfKjKbzS5/EZmIiMid0tPTy/wqVJUL2IYNGyIlJcXdZRAREV1Xed/r5yFiIiIiBRiwRERECjBgiYiIFGDAEhERKcCAJSIiUoABS0REpAADloiISAEGLFEVIXYrJPcixG51dylEVAmU/tDE9u3bMWnSJFitVvTo0QPvvPNOtbsjPZFq4nTCcSgJjsPrILYiaJ61YGg/BIaYodA8+BmYqLpS9tfrcDgwbtw4fPzxx/jxxx+Rl5eHxMREVd0RVVuOQ0mw710JMXpDM9eHGL1h37sSjkNJ7i6NiCpA2XDywIEDaNiwIVq3bg0AGDduHBYuXIgHH3xQVZfXsG169Yb1RfRniNMBx4nNgGaAVpQHBDeH5ukNqR0Ax5H1MEQPhGbk/W6JqiNlAZueno7w8HB9ulGjRkhPT7/mcYsWLcKiRYv06aysLFUlEVU9dgvgtEPzLBmimqc3pDAbKMwGfIPcVBwRVYTSE6Kapun/L+u+7pMmTcKkSZP06fJ+OPmP8vy/6ZXWFpEKYrdCLvxQfHjY0/t/820WaF4mwOTnxuqIqCKUnYMNDw/H2bNn9en09HTeho7oKprRC4b2Q4CCLIjNAqA4XFGQBUP0YB4eJqrGlAVshw4dkJGRod96bsWKFRgyZIiq7oiqLUPMUBg7J0BzWCE5v0BzWGHsnABDzFB3l0ZEFaDsELHBYMCyZcswbNgw/Ws6o0aNUtUdUbWleXjA2HE4DNEDi8+5mvw4ciWqAZSeg42Li+PN04lcpBm9eEETUQ3Cb7ETEREpwIAlIiJSgAFLRESkAAOWiIhIAQYsERGRAgxYIiIiBRiwRERECjBgiYiIFGDAEhERKcCAJSIiUoABS0REpAADloiISAEGLBERkQIMWCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBmwVJnYrJPcixG51dylERPQHGd1dAF1LnE44DiXBcXgdxFYEzbMWDO2HwBAzFJoHPxMREVUHfLeughyHkmDfuxJi9IZmrg8xesO+dyUch5LcXRoREbnophzB2ja96u4SyiROBxwnNgOaAVpRHhDcHJqnN6R2ABxH1sMQPRCa0cvdZRIR0XVwBFvV2C2A0w7Nw1BitubpDbEWAoXZbiqMiIj+iJtyBOv5f9PdXUKZxG6FXPih+PCwp/f/5tss0LxMgMnPjdUREZGrOIKtYjSjFwzthwAFWRCbBUBxuKIgC4bowTw8TERUTdyUI9iqzhAzFADgOLIeUpgNzcsEQ+cEfT4REVV9DNgqSPPwgLHjcBiiBxafczX5ceRKRFTNMGCrMM3oBfgGubsMIiL6E3gOloiISAEGLBERkQIMWCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREZECDFgiIiIFGLBEREQKMGCJiIgUYMASEREpwIAlIiJSgAFLRESkAAOWiIhIAQYsERGRAgxYIiIiBZQFbFpaGu644w60atUKkZGRmDFjhqquqgyxWyG5FyF2q7tLISIiNzMqa9hoxN/+9jd06NABVqsVffv2xcaNGzFgwABVXbqNOJ1wHEqC4/A6iK0ImmctGNoPgSFmKDQPHiQgIroZKQvYkJAQhISEAAC8vLzQtm1bnDlzRlV3buU4lAT73pVA7QBoJjPEZimeBmDsONzN1RERkTsoC9jf+/XXX7FhwwZs2bLlRnR3w9g2vQpxOuA4sRnQDNCK8oDg5tA8vSG1A+A4sh6G6IHQjF7uLpWIiG4w5QFrsVgwbNgwTJ06Fa1atbpm+aJFi7Bo0SJ9OisrS3VJlctuAZx2aJ4lQ1Tz9IYUZgOF2YBvkJuKIyIid9FERFQ17nA4MGLECNxyyy2YP3++S8+JiIhASkqKqpIqnditsP5rDMToDc3T+3/zbRZoDiu8xr7HESwRUQ1VXmYpvQLnoYcegtlsxmuvvaayG7fSjF4wtB8CFGRBbBYAxeGKgiwYogczXImIblLKAnb37t1YsWIFDhw4gOjoaERFReGtt95S1Z1bGWKGwtg5AZrDCsn5BZrDCmPnBBhihrq7NCIichNl52C7du0KhUefqxTNwwPGjsNhiB5YfM7V5MeRKxHRTe6GXEV8s9CMXrygiYiIAPCnEomIiJRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREZECDFgiIiIFGLBEREQKMGCJiIgUYMASEREpwIAlIiJSgAFLRESkAAOWiIhIAQYsERGRAgxYIiIiBRiwRERECjBgiYiIFGDAEhERKcCAJSIiUoABS5VG7FZI7kWI3eruUoiI3M7o7gKo+hOnE45DSXAcXgexFUHzrAVD+yEwxAyF5sHPcER0c+K7H1WY41AS7HtXQoze0Mz1IUZv2PeuhONQkrtLIyJyG45gb0K2Ta9WWlvidMBxYjOgGaAV5QHBzaF5ekNqB8BxZD0M0QOhGb0qrT8iouqCI1iqGLsFcNqheRhKzNY8vSHWQqAw202FERG5F0ewNyHP/5teaW2J3Qq58EPx4WFP7//Nt1mgeZkAk1+l9UVEVJ1wBEsVohm9YGg/BCjIgtgsAIrDFQVZMEQP5uFhIrppcQRLFWaIGQoAcBxZDynMhuZlgqFzgj6fiOhmxIClCtM8PGDsOByG6IHF51xNfhy5EtFNjwFLlUYzegG+Qe4ug4ioSuA5WCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREZECDFgiIiIFGLBEREQKMGCJiIgUYMASEREpwIAlIiJSwKWA/eGHH66Z980331R6MURERDWFSwHbr18/LFu2DADgdDrxwgsvYOLEiUoLIyIiqs5cCti9e/di06ZNGDBgAGJjY5GVlYX9+/erro2IiKjacilgg4KCEB8fjwMHDiAzMxOjRo2CyWRSXRsREVG1ZXTlQYMGDYKI4Pjx40hNTcWYMWMwYsQIvPjii6rrIyIiqpZcGsH+5S9/QXJyMurVq4cOHTpg//79yMjIUF0bERFRteVSwD7yyCP4/vvvkZycrM+bN2+esqKIiIiqO5cC9u2330ZCQgKefPJJAMD58+cxbNgwlzt59NFHYTS6dDSaiIjoDxO7FZJ7EWK3ursUnUupt3TpUuzfvx+dO3cGADRr1gyXLl1yqYNdu3YhPz//z1dIRERUBnE64TiUBMfhdRBbETTPWjC0HwJDzFBoHu79LSWXejeZTPD29tannU4nROS6z7NYLJg+fTpef/31P18hERFRGRyHkmDfuxJi9IZmrg8xesO+dyUch5LcXZprI9jo6GgsW7YMdrsdx44dw5tvvonevXtf93lz5szBuHHjEBQUVOFCqeaybXrV3SUQUTUkTgccJzYDmgFaUR4Q3ByapzekdgAcR9bDED0QmtHLbfW5NIJ94403kJ6ejlq1amHs2LEICwvD/Pnzy33OsWPHsG/fPjz44IPlPm7RokWIiIjQ/2VlZblePRER3bzsFsBph+ZhKDFb8/SGWAuBwmw3Ffb/6xBXjvX+CYsXL8bcuXPh5VX86eHMmTNo3Lgxjhw5goCAgDKfFxERgZSUFBUlERFRDSJ2K6z/GlN8eNjzf6cxxWaB5rDCa+x7ykew5WVWuQE7YcIEaJpWZsPvvPOOy0UYjUbY7fbrPo4BS0RErrIf+Bj2vSuB2gHFI1ebBSjIgrFzAowdhyvvv7zMKvcQcbdu3dC1a1cYjUacPHkSkZGRiIyMREpKCnx9fZUUS0RE5CpDzFAYOydAc1ghOb9Ac1hh7JwAQ8xQd5fm2iHirl274quvvtK/y2q1WhEfH48vv/yy0gviCJaIiP4osVuLz7ma/G7ohU1/egR7xcWLF2GxWPRpm82G9PT0yqmOiIiogjSjFzTfILdeNXw1l76mM378eHTo0AEDBw4EACQnJ2PChAlKCyMiIqrOXArYp59+GnfeeSd27twJEcGaNWsQFRWluDQiIqLqy+UfCI6KimKoEhERucilc7DJyclo0aIFatWqBS8vL3h6eurfbyUiIqJruRSwU6dOxerVq1FUVASr1QqbzQartercsYCIiKiqcSlgg4OD0aFDB9W1EBER1RgunYPt0aMHJk2ahGHDhpW4q05sbKyywoiIiKozlwJ23759AIrvjnOFpmnYtm2bmqqIiIiqOZcCdvv27arrICIiqlHKDdhjx46hbdu2+Oabb0pdzkPEREREpSs3YBcuXIh33nkHzz///DXLeIiYiIiobOUG7JXb0fEQMRER0R/j0td0iIiI6I9hwBIRESnAgCUiIlLApa/pZGZmXjPPbDbDx8en0gsiIiKqCVwK2NjYWKSlpSEgIABOpxPZ2dkIDg5GQEAA3nvvPXTs2FF1nURERNWKS4eI4+PjsXHjRly6dAm//fYbkpOTMXLkSLzzzjuYNGmS6hqJiIiqHZcCdvfu3ejfv78+fdddd2Hnzp3o2rUrLBaLsuKIiIiqK5cC1mw2Y8WKFSgqKkJRURGWL18OLy8viAhERHWNRETVntitkNyLEDtv9XmzcOkc7MqVK/H4449j2rRpAIDu3bsjMTFRD1siIiqdOJ1wHEqC4/A6iK0ImmctGNoPgSFmKDQPfpGjJnMpYJs0aYLk5ORSl3Xq1KlSCyIiqkkch5Jg37sSqB0AzWSG2CzF0wCMHYe7uTpSyaWAzc/Px8svv4xt27ZB0zTExcXhueeeQ506dVTXR0Q3AdumV91dghLidMBxYjOgGaAV5QHBzaF5ekNqB8BxZD0M0QOhGb3cXSYp4tLxiYkTJyIvLw9Lly7FkiVLkJubi4kTJ6qujYioerNbAKcdmoehxGzN0xtiLQQKs91UGN0ILo1gjx8/jm+//Vaffuutt9CuXTtlRRHRzcXz/6a7uwQlxG6FXPgBYvSG5un9v/k2CzQvE2Dyc2N1pJpLI1hN05CRkaFPp6enKyuIiKim0IxeMLQfAhRkQWzFX2kUmwUoyIIhejAPD9dwLo1gZ86ciY4dO6J79+4QEezevRuLFi1SXRsRUbVniBkKAHAcWQ8pzIbmZYKhc4I+n2ouTVz8Iusvv/yCffv2QURw++23Izg4WElBERERSElJUdI2EZG7iN1afM7V5MeRaw1SXma5NII9ceIEvvvuO2iahoiICGXhSkRUU2lGL8A3yN1l0A1UbsDm5eVh8ODB2LNnD5o3bw4A+O9//4tu3bohKSkJtWvXviFFEhERVTflXuQ0e/Zs1K1bF5mZmTh69CiOHj2KjIwMBAYGYvbs2TeqRiIiomqn3IDdtGkTli9fDrPZrM8zm81YsmQJPv30U+XFERERVVflBqyHh0epN1X39fWFB39Dk4iIqEzlpqSnp+efWkZERHSzK/cip6NHj8LL69rLyUUETqdTWVFERETVXbkByxAlIiL6c3gilYiISAEGLBERkQIMWCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREZECDFgiIiIFGLBEREQKMGCJiIgUUBqweXl5GD16NFq0aIGWLVti6dKlKrsjIiKqMsq9XV1FTZ06FZGRkfjggw8gIrh48aLK7oiIiKoMZQGbm5uLTz/9FGfPngUAaJqG+vXrq+qOiG5i05duc3cJVE28OjHuhvWl7BDxTz/9hODgYEyePBnt27fHwIEDkZqaes3jFi1ahIiICP1fVlaWqpKIiIhuGE1EREXDBw8eRMeOHbFp0ybEx8dj+fLlWL16NbZtK/+TZkREBFJSUlSUREREVKnKyyxlI9jw8HAEBgYiPj4eAHDffffh8OHDqrojIiKqUpQFbHBwMCIjI3Hw4EEAwBdffIHWrVur6o6IiKhKUXoV8eLFizFu3Djk5+fD398fy5cvV9kdERFRlaE0YCMiIrBnzx6VXRAREVVJ/CUnIiIiBRiwRERECjBgiYiIFGDAEhERKcCAJSIiUoABS0REpAADloiISAEGLBERkQIMWCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREZECDFgiIiIFGLBEREQKMGCJiIgUYMASEREpwIAlIiJSgAFLRESkgNHdBRAR1VTTl25zdwl0lVcnxt2wvjiCJSIiUoAjWCIiRW7kaImqHo5giYiIFGDAEhERKcCAJSIiUoABS0REpAADloiISAEGLBERkQIMWCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREZECDFgiIiIFGLBEREQKMGCJiIgUYMASEREpwIAlIiJSgAFLRESkAAOWiIhIAQYsERGRAgxYIiIiBRiwRERECigN2M2bNyMqKgpRUVGIjY3Fd999p7I7IiKiKkNpwD700ENYs2YNjh49igceeAAvvviiyu6IiIiqDKUBq2kacnJyAADZ2dkICQlR2R0REVGVYVTZeGJiIvr37w+TyYQ6depg9+7dKrsjIqqxpi/d5u4SaoRXJ8bdsL6UjWAdDgfmzZuH7du3Iy0tDU8//TRGjx59zeMWLVqEiIgI/V9WVpaqkoiIiG4YTURERcMHDx7E448/ro9arVYrAgICkJ+fX+7zIiIikJKSoqIkIiKiSlVeZikbwYaFheHUqVPIyMgAUHxFcatWrVR1R0REVKUoOwcbEhKC+fPn484774TRaISPjw/+9a9/qeqOiIioSlF2iPjP4iFiIiKqLtxyiJiIiOhmxoAlIiJSgAFLRESkAAOWiIhIAQYsERGRAgxYIiIiBRiwRERECjBgiYiIFGDAEhERKcCAJSIiUoABS0REpAADloiISAEGLBERkQIMWCIiIgUYsERERAowYImIiBRgwBIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREdVIYrdCci9C7Fa39G90S69ERESKiNMJx6EkOA6vg9iKoHnWgqH9EBhihkLzuHHjSo5giYioRnEcSoJ970qI0RuauT7E6A373pVwHEq6oXUwYImIqMYQuxW2L9+CFGQDv6UBADRPb6B2ABxH1t/Qw8UMWCIiqjkKswGnHZqHocRszdMbYi0sXn6D8BwsERHVHCY/eNRtUnx42NNbny02CzQvE2Dyu2GlcARLREQ1hmb0gqH9EKAgC2KzACgOVxRkwRA9GJrR64bVwhEsERHVKIaYoQBQfM61MBualwmGzgn6/BuFAUtERDWK5uEBY8fhMEQPLD7navK7oSPXKxiwRERUI2lGL8A3yG398xwsERGRAgxYIiIiBRiwRERECjBgiYiIFGDAEhERKcCAJSIiUoABS0REpIAmIuLuIn7PbDajYcOG7i6jhKysLAQEBLi7jErFdao+auJ6cZ2qB67T9aWnpyMnJ6fUZVUuYKuiiIgIpKSkuLuMSsV1qj5q4npxnaoHrlPF8BAxERGRAgxYIiIiBRiwLpg0aZK7S6h0XKfqoyauF9epeuA6VQzPwRIRESnAESwREZECDFgiIiIFGLDleOyxx9CwYUMYjTXntrlpaWm444470KpVK0RGRmLGjBnuLqlS9O3bF+3atUPbtm0xbNiwMr+XVh09+uijNWYfbNKkCVq3bo2oqChERUXViK+A5OXlYfTo0WjRogVatmyJpUuXurukCsvMzNRfo6ioKDRo0ACDBw92d1kVtnnzZn2dYmNj8d1336ntUKhMu3btkvPnz4vBYHB3KZUmMzNTDhw4ICIiFotFevToIcnJyW6uquIuX76s//+vf/2rzJo1y43VVJ6dO3fK6NGja8w+2LhxY0lLS3N3GZVqwoQJ8re//U1ERJxOp1y4cMHNFVW+O+64Q1atWuXuMiosPDxcUlJSRERk6dKlMmzYMKX91YyPxYp069bN3SVUupCQEISEhAAAvLy80LZtW5w5c8bNVVWcn58fAMDpdKKgoECfrs4sFgumT5+ODRs2YNWqVe4uh0qRm5uLTz/9FGfPngUAaJqG+vXru7mqypWZmYmDBw9i48aN7i6lwjRN049uZWdn6++FqjBgb2K//vorNmzYgC1btri7lEoxYMAA7NmzBxEREXj99dfdXU6FzZkzB+PGjUNQUJC7S6lUd999N5xOJ+6++27MmjWrWh/+/umnnxAcHIzJkydj//79CA8Px4IFC9CkSRN3l1ZpVq1ahUGDBqF27druLqXCEhMT0b9/f5hMJtSpUwe7d+9W2h/Pwd6kLBYLhg0bhqlTp6JVq1buLqdSbNy4EefPn0fnzp3x9ttvu7ucCjl27Bj27duHBx980N2lVKqvv/4aR44cwddff43jx4/j73//u7tLqhCbzYajR49i4MCBOHz4MO6++26MHTvW3WVVqpUrVyIhIcHdZVSYw+HAvHnzsH37dqSlpeHpp5/G6NGjlfbJgL0JORwO3H///ejQoQP++te/urucSmUwGDB27Fh88MEH7i6lQnbv3o2UlBTccsstaNKkCRwOB5o0aYKsrCx3l1YhV27k4evriwkTJmDv3r1urqhiwsPDERgYiPj4eADAfffdh8OHD7u5qspz/PhxXLp0CXFxce4upcKOHDmCnJwctGnTBgCQkJCAHTt2KO2TAXsTeuihh2A2m/Haa6+5u5RKkZOTg3PnzunTSUlJiIyMdGNFFffII48gMzMTqampSE1NhcFgQGpqarW+s0l+fr5+/stutyMpKQlt27Z1c1UVExwcjMjISBw8eBAA8MUXX6B169ZurqryJCYm4v7774eHR/WPirCwMJw6dQoZGRkAiq8oVn30rvqe/LgBJk6ciM8++wwOhwMNGzZE//79q/0l+Lt378aKFSsQGRmJ6OhoAMDYsWMxZcoUN1f252VnZ2PIkCEoKiqCpmlo2bIl/vnPf7q7LLrKhQsXMGTIEDidTjgcDnTt2hXTp093d1kVtnjxYowbNw75+fnw9/fH8uXL3V1SpXA6nVizZg0+++wzd5dSKUJCQjB//nzceeedMBqN8PHxwb/+9S+lffKnEomIiBSo/uN+IiKiKogBS0REpAADloiISAEGLBERkQIMWCIiIgUYsESKXL58Wb9zR6NGjVC3bl1ERUWhRYsW8PX1Vdbvtm3b8NhjjylrPzU1Fc2bN3f58a+88goSExOV1UNUVfFrOkQ3wHvvvYevv/76hnxHsmfPnnj33XfRtGlTJe2npqaiT58++PHHH116fHZ2Nrp27Yrjx49D0zQlNRFVRRzBEt1gvx8BpqamomnTppg0aRKio6MRFxeHo0ePom/fvmjatCneeOMN/Xk7duxAt27dEBMTg759+yItLe2atn/66ScUFBTo4dquXTv9bkm//2nMlStX6qPcY8eOIS4uDjExMXoQAkBhYSEefvhhdOrUCW3atMHChQuv6e/ixYuIjY3F2rVrUVBQgMGDB6Nt27aIjIzE888/D6D4Tke33HILdu3aVVmbkKhaYMASuVlqairGjBmDI0eOwN/fH5MnT8bGjRtx4MABzJ07FxaLBb/99hueffZZfPbZZzh06BDGjx+PadOmXdPWrl270KFDB326V69e2LFjB3JyciAi+m//fvXVV+jZsydsNhseeughJCYm4tChQ/jHP/6B8ePHAwDmzZuH6Oho7N+/HwcOHMC7775b4gbpaWlp6NevH2bOnIlhw4bh888/R2BgII4dO4YTJ06UqK9Tp04MWLrp8KcSidwsLCwMnTp1AgBERUWhsLAQJpMJJpMJ9erVw7lz53DixAmcPn0aPXv2BFD8M3alncfNzMwscT/Snj174pNPPkFQUBD69u2LvXv3IisrCzt37sTLL7+MU6dO4eTJk+jfv7/+nN9++w0AsGnTJhQWFmLx4sUAin/z+dSpU4iOjsbly5cRFxeH999/H7GxsQCAtm3bYtq0aXjqqafQp08f9OnTR2+zQYMGOHr0aOVuOKIqjgFL5Gbe3t76/z08PK6ZttvtEBF0794dGzZsKLctk8mE7OxsfbpHjx6YNm0a6tevj969e8PT0xMfffQRjEYj6tevjwsXLqBZs2alhp+IYNWqVYiKiioxPzU1FT4+PmjdujU+//xzPWCbNWuGw4cPY8uWLVi+fDneeust/Xdsr3xoILqZ8BAxUTXQpUsX7N+/HydOnABQfDeaK+dKf69169b44Ycf9Ol69eqhTp06WLt2Lbp164ZevXph3rx5+ki4ZcuWyM3NxdatWwEUh+qVsI2Pj8eCBQvgcDgAAD/++CNyc3MBAEajEf/+979x+PBhzJ49GwCQnp4OT09PDB8+HAsWLMD+/fv1Ok6dOlXt73BE9EcxYImqgXr16mHNmjUYP3482rVrh3bt2mHnzp3XPK579+44duwYbDabPq9nz54ICgqCj48PunTpgvPnz+sB6+npiQ0bNuDll19Gu3bt0Lp1a6xduxYAMGPGDPj4+KBdu3Zo06YNxo8fD4vForfr5eWFtWvXYt++fZg7dy6OHz+OLl26ICoqCvHx8SXuaLRz507069dP1eYhqpL4NR2iGmb69OmIiYnB8OHD3V0KgOJbJC5ZsoTfhaWbDkewRDXMs88+C7vd7u4ydFlZWXjllVfcXQbRDccRLBERkQIcwRIRESnAgCUiIlKAAUtERKQAA5aIiEgBBiwREZECDFgiIiIF/h80tRHTXqGi3gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_lifelines(obs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And I'll add one more column to the table, which contains the duration of the observed parts of the lifelines." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.701567Z", "iopub.status.busy": "2021-04-16T19:37:36.701132Z", "iopub.status.idle": "2021-04-16T19:37:36.703232Z", "shell.execute_reply": "2021-04-16T19:37:36.702836Z" } }, "outputs": [], "source": [ "obs['T'] = obs['end'] - obs['start']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What we have simulated is the data that would be available at the beginning of Week 8." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using Incomplete Data\n", "\n", "Now, let's see how we can use both kinds of data, complete and incomplete, to infer the parameters of the distribution of residence times.\n", "\n", "First I'll split the data into two sets: `data1` contains residence times for dogs whose arrival and departure times are known; `data2` contains incomplete residence times for dogs who were not adopted during the observation interval." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.707495Z", "iopub.status.busy": "2021-04-16T19:37:36.706904Z", "iopub.status.idle": "2021-04-16T19:37:36.709424Z", "shell.execute_reply": "2021-04-16T19:37:36.708865Z" } }, "outputs": [], "source": [ "data1 = obs.loc[~censored, 'T']\n", "data2 = obs.loc[censored, 'T']" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.714502Z", "iopub.status.busy": "2021-04-16T19:37:36.713805Z", "iopub.status.idle": "2021-04-16T19:37:36.717518Z", "shell.execute_reply": "2021-04-16T19:37:36.716979Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "0 3.257451\n", "1 0.804973\n", "2 0.108626\n", "3 0.433088\n", "4 5.173349\n", "5 1.083864\n", "9 0.053408\n", "Name: T, dtype: float64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data1" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.722147Z", "iopub.status.busy": "2021-04-16T19:37:36.721569Z", "iopub.status.idle": "2021-04-16T19:37:36.724025Z", "shell.execute_reply": "2021-04-16T19:37:36.724393Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "6 2.624183\n", "7 1.910002\n", "8 1.547250\n", "Name: T, dtype: float64" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the complete data, we can use `update_weibull`, which uses the PDF of the Weibull distribution to compute the likelihood of the data." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.727904Z", "iopub.status.busy": "2021-04-16T19:37:36.727229Z", "iopub.status.idle": "2021-04-16T19:37:36.745191Z", "shell.execute_reply": "2021-04-16T19:37:36.744717Z" } }, "outputs": [], "source": [ "posterior1 = update_weibull(prior, data1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the incomplete data, we have to think a little harder.\n", "At the end of the observation interval, we don't know what the residence time will be, but we can put a lower bound on it; that is, we can say that the residence time will be greater than `T`.\n", "\n", "And that means that we can compute the likelihood of the data using the survival function, which is the probability that a value from the distribution exceeds `T`.\n", "\n", "The following function is identical to `update_weibull` except that it uses `sf`, which computes the survival function, rather than `pdf`." ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.748842Z", "iopub.status.busy": "2021-04-16T19:37:36.748416Z", "iopub.status.idle": "2021-04-16T19:37:36.750080Z", "shell.execute_reply": "2021-04-16T19:37:36.750423Z" } }, "outputs": [], "source": [ "def update_weibull_incomplete(prior, data):\n", " \"\"\"Update the prior using incomplete data.\"\"\"\n", " lam_mesh, k_mesh, data_mesh = np.meshgrid(\n", " prior.columns, prior.index, data)\n", " \n", " # evaluate the survival function\n", " probs = weibull_dist(lam_mesh, k_mesh).sf(data_mesh)\n", " likelihood = probs.prod(axis=2)\n", "\n", " posterior = prior * likelihood\n", " normalize(posterior)\n", "\n", " return posterior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the update with the incomplete data." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.753329Z", "iopub.status.busy": "2021-04-16T19:37:36.752847Z", "iopub.status.idle": "2021-04-16T19:37:36.760899Z", "shell.execute_reply": "2021-04-16T19:37:36.760377Z" } }, "outputs": [], "source": [ "posterior2 = update_weibull_incomplete(posterior1, data2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here's what the joint posterior distribution looks like after both updates." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.778276Z", "iopub.status.busy": "2021-04-16T19:37:36.777834Z", "iopub.status.idle": "2021-04-16T19:37:36.913674Z", "shell.execute_reply": "2021-04-16T19:37:36.913302Z" } }, "outputs": [ { "data": { "image/png": "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lluGvTJERETjxZAC9vPPP8cbb7wBABBC4MYbb4TX65W0YkRERGOZciiF3nnnHSxatAg6nQ4ff/wx1Go1XnzxRanrRkRENGYNKWC1Wi3Wrl2LBQsW4LTTThu0y5iIiIj2O2LAqlQqyGQy/7TX68WePXvw4osvQiaTwel0Sl5BIiKiseiIAetyuU5UPYiIiMYVnqZDREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAckCtq6uDmeccQaysrKQk5ODBx54QKpVERERjTqSBaxSqcSqVatQVFSE/Px8bNiwAWvXrpVqdURERKOKUqoFx8TEICYmBgCgVqsxadIk1NTUSLU6IiKiUeWE7IPt6OjAhx9+iDPPPPNErI6IiGjESdaC7edwOHDppZfizjvvRFZW1iHzV69ejdWrV/unOzs7pa4SERGR5GRCCCHVwj0eD5YuXYrk5GT86U9/GtJrsrOzUVhYKFWViIiIjttQskrSLuKbb74ZBoMBTz75pJSrISIiGnUkC9hNmzbh1VdfxbZt2zBlyhTk5eXhL3/5i1SrIyIiGlUk2wc7Z84cSNj7TERENKrxSk5EREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUlAOdIVoNHH4/bAYXPC5XDB5XTD5XABAlBplFBpVFAHqKAOUEOhVIx0VYmIRi0G7EnGZrGjZm8dmipb0VzViuaqFrTUtqOnvQfmfb3o2dcLa48NAKDSqHyhqlZCJpPB6XDB5egLXAABWg20wVoEBWuhM2oREmVESJQRodFGhEQb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wBIREUmAATtO1NXV4YwzzkBWVhZycnLwwAMPjHSVxpVbb70VSqVypKsxbvT29uKaa65Beno6MjMz8dJLL410lca8zz//HHl5ecjLy8Ps2bNRVFQ00lUak26//XbExcUd8v/97rvvRlpaGtLT0/Huu+8OaVkM2HFCqVRi1apVKCoqQn5+PjZs2IC1a9eOdLXGhQ0bNsBisYx0NcaVO++8Ezk5OSgtLUVRUREuuuiika7SmHfzzTfjrbfeQkFBAZYtW4bf//73I12lMWnp0qXYvn37Ac+tW7cOW7ZsQXFxMdavX49f//rXMJvNR10WA3aciImJwfTp0wEAarUakyZNQk1NzQjXauxzOBy499578ec//3mkqzJumM1mfPLJJ7jzzjsBADKZDJGRkSNcq7FPJpP5ryzU3d2NmJiYEa7R2HTaaachKirqgOfef/99LFu2DEqlEiaTCaeddhrWrVt31GWxz2sc6ujowIcffjikDwAd2cMPP4wbbrgBERERI12VcaOyshJRUVG47bbb8L///Q/x8fF47rnnkJSUNNJVG9PeeOMNLF68GIGBgQgKCsKmTZtGukrjRn19PS655BL/dEJCAurr64/6OrZgxxmHw4FLL70Ud955J7Kyska6OmParl27sHXrVlx33XUjXZVxxeVyoaCgABdccAHy8/Nx3nnn4frrrx/pao1pHo8Hjz/+ONavX4+6ujrcfffduOaaa0a6WuOKTCbzPx7q2a0M2HHE4/HgyiuvxPTp0/HrX/96pKsz5m3atAmFhYVITk5GUlISPB4PkpKS0NnZOdJVG9Pi4+MRGhqKRYsWAQCuuOIK5Ofnj3CtxrYdO3agp6cHubm5AICrrroK33777chWahyJj49HbW2tf7q+vn5IN6VhwI4jN998MwwGA5588smRrsq4sGLFCjQ2NqK6uhrV1dVQKBSorq7mnUqOU1RUFHJycvDjjz8CAL788ktMnDhxhGs1tplMJpSUlKChoQGA74hi9mANn4svvhivv/46PB4PGhsbsXHjRpx99tlHfR33wY4TmzZtwquvvoqcnBxMmTIFAHD99dfjl7/85QjXjOhQL7zwAm644QZYLBYYjUa88sorI12lMS0mJgZ/+tOfcPbZZ0OpVEKn0+Hvf//7SFdrTLrlllvw6aefwuPxIC4uDosXL8ZLL72EL7/8EhkZGZDJZHjqqaeg1+uPuixeKpGIiEgC7CImIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADlmiUGs679zz44IN49NFHj1quuroaaWlpw7ZeopMZA5aIiEgCDFiiMeDSSy/F9OnTkZOTc8BlMJctW4YVK1bgzDPPRGJiIv7973/j0UcfxZQpUzBjxgw0Nzf7y5aUlGDevHlIT0/Hb37zG//zX331FbKysjB16lT87W9/8z9fV1eH+fPnY+rUqcjNzcU///nPE/NmicYJBizRGPDSSy/hxx9/xK5du1BVVYUvvvjCP6+hoQHr1q3Dxx9/jBtuuAFpaWnYsWMHTj/99ANuZL5161Z88skn2LNnDzZv3oxPPvkEDocDy5YtwzvvvIP8/Hw4nU5/+fDwcHz++efIz8/Hpk2b8NBDD6Grq+tEvm2iMY0BSzQG/O1vf8OUKVOQl5eHLVu2YPfu3f55F1xwAeRyOXJzc2G32/03L8/Ly0NVVZW/3IUXXgiDwQC1Wo2lS5fiu+++Q3FxMWJjY5GTkwMAuPrqq/3l3W43fvGLXyA3Nxdz585FU1MTysvLT9A7Jhr7eC1iolHuu+++w3vvvYfvv/8eer0eK1euhN1u98/XaDQAfLfTkslk/mm5XA63233Y5cpksiPeduvpp59GYGAgCgoKoFAoMG3atAPWS0RHxhYs0SjX09MDo9EIvV6Pjo4OvPfeez9pOR9++CF6enrgdDrxn//8B/PmzUNWVhYaGxuxZ88eAL6bdg9cb3R0NBQKBbZu3YqdO3cOy/shOlkwYIlGuXPPPRc6nQ4TJ07EVVddhfnz5/+k5cybNw+XXHIJcnNzMXv2bCxZsgQajQavvfYafvazn2H27NkIDg72l7/tttvwwQcfYMaMGVizZg1mzJgxXG+J6KTAu+kQERFJgC1YIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgC/x8SGJPtyqDR/wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_contour(posterior2)\n", "decorate(title='Posterior joint distribution, incomplete data')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compared to the previous contour plot, it looks like the range of likely values for $\\lambda$ is substantially wider.\n", "We can see that more clearly by looking at the marginal distributions." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.917569Z", "iopub.status.busy": "2021-04-16T19:37:36.916847Z", "iopub.status.idle": "2021-04-16T19:37:36.920372Z", "shell.execute_reply": "2021-04-16T19:37:36.919902Z" } }, "outputs": [], "source": [ "posterior_lam2 = marginal(posterior2, 0)\n", "posterior_k2 = marginal(posterior2, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the posterior marginal distribution for $\\lambda$ compared to the distribution we got using all complete data." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:36.960290Z", "iopub.status.busy": "2021-04-16T19:37:36.959500Z", "iopub.status.idle": "2021-04-16T19:37:37.098684Z", "shell.execute_reply": "2021-04-16T19:37:37.099061Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAABf7UlEQVR4nO3deXhU1fkH8O+dfZ/s62QjCYRsBAj7JoIgiGgRqqgoEmtR6katrWLdqq3VqtWK1aJAi6CIggv+VFyAskYghIQECAnZJvuemWT2ub8/YqaEhGSSzGS29/M8eZKZe+bed+5M5p1z7lkYlmVZEEIIIcShOK4OgBBCCPFGlGAJIYQQJ6AESwghhDgBJVhCCCHECSjBEkIIIU5ACZYQQghxAkqwxC38+c9/xsqVKx2yr61btyIjI8Mh+xppFRUVkMlkaGtrc9oxPvvsM8TGxtpup6SkYO/evQ7b/+X7c8ZrsWjRIrz99tsO3ae9jh8/juTkZMjlcrz55pu9tq9evRqPPPKIU4594MAB+Pn5DeoxGRkZ2Lp1q1PiIQOjBEtsrrnmGjAMg++//77H/a+88goYhnHaBwcAPPnkk/jwww+dtv+REBsbi88++2xY+4iOjoZWq4VSqXRMUHYoKCjAkiVLBixn7/Ozd3/26Cthff3113jggQccsv/B+uMf/4jbbrsNGo0GDz30kEtiIJ6DEizpYcyYMdiyZUuP+7Zu3YqkpKQh79NsNg83LJ8w3PNksVjgynljXH38kVBaWor09HRXh0E8BCVY0sNtt92Gr7/+2tZEmZ2dDZZlMWXKlB7l7rzzTkREREChUGDixInYv3+/bVt3s+AzzzyDsLAw3HrrrbBarXjqqacQGhqKiIgIbNy4EX5+fjhw4AAA4Nlnn8XNN99s2wfDMHjnnXeQmpoKhUKBpUuX9mg27e/4A4mNjcWLL76ICRMmQKFQYOHChaiurrZtLy4uxsKFCxEQEID4+Hj8/e9/t20rLS3F/PnzoVQqERAQgBkzZqCzsxMrVqxARUUFVq5cCZlMhrVr1wIA6uvrcccddyAiIgIRERF45JFHYDAYAPyvye+f//wnoqOjMW3aNJSVlYFhGLS2tgIATCYTnnjiCURHRyM4OBi33norGhoaepynt956C6mpqZBIJNBqtb2er1qtxoIFC2znqrCwsNf56K6ZDvb59XX8vmq6Tz75JAIDAxEdHd2jeffKGmpraysYhkFZWRnefPNNbN++HW+//TZkMhlSUlIAdLW0XP6a7Nu3D+PHj4dSqcSECRN6tMCsXr0av/rVr3DbbbdBLpdjzJgxtvdcXzQaDe677z6Eh4cjPDwca9euRUdHBwAgLCwMly5dsp2DoqKiq+6nm73/J0FBQQgLC8POnTtx5MgRpKamQqlUIisrC1artcc+//GPfyA8PBxhYWF45plnenypeeuttxAVFYXAwEBs2LChx+MqKipw3XXXITg4GP7+/rjhhhtQVlY24HMgQ0cJlvTg5+eH66+/3tZcu3nzZtxzzz29ys2bNw/nzp1DU1MTbrvtNixfvhwajca2/ezZs+DxeKioqMC2bduwZcsWbN++HYcOHUJJSQlycnJ6lO/Lzp078cMPP6CiogJqtRqvv/663ccfyHvvvYcdO3agtrYWYWFhuOOOOwB01SKXLFmCcePGobq6Gnv27MHLL7+MHTt2AAA2bNiAhIQENDY2oq6uDq+88gp4PB527dqF6OhofPjhh9BqtXjnnXfAsiyWLl2KsLAwFBcXIz8/H2fOnMELL7xgi0Oj0eDMmTM4f/48Dh482CvOv/zlL9i7dy8OHz6M0tJSMAxji7Xbjh07sG/fPrS3t0Mqlfbax+23347w8HDU1tZi+/bt2LRp01XPy2Cen73HP3v2LBiGQU1NDXbu3Ik//OEP+O9//zvAKwQ89NBDuOOOO/DAAw9Aq9WioKCgV5mSkhLcdNNN+OMf/4impiY8+eSTWLp0KUpLS21lPvroI9x3331obW3FqlWrsHr16qse8+GHH0ZxcTHOnj2L/Px8nD9/Ho8++igAoLa2tsc5GD169IDPYaD3aUFBAfz8/FBbW4s//elPuO+++/Daa6/h4MGDKCwsxN69e3t8WdFoNMjJyUFJSQkOHDiAzZs34z//+Q8A4Mcff8SGDRvw8ccfo6amBkDXue9mtVqxfv16VFZWory8HBKJBL/61a8GfA5kGFhCfjZnzhz29ddfZ/ft28dOnjyZ7ezsZAMDA9mamhr27rvvZh9++OGrPtbPz489fPgwy7Isu2XLFjYgIIC1WCy27ddeey37yiuv2G7X19ezANj9+/ezLMuyzzzzDHvTTTfZtgNgv/76a9vtF154gV2yZIndxx83btxVy8bExLB//etfbbdra2tZAGxlZSV7+PBhVqFQsAaDwbb9xRdfZK+77jqWZVn2rrvuYpcuXcoWFRX1ud89e/bYbv/000+9zsO+ffvYUaNGsSzLsvv372cBsC0tLbbtpaWlPe5LSEhgP/roI9v2qqoqFgBbVVXFsmzXebr8mFeqqKhgAbB1dXW2+1566SU2Jiamz7gH8/yudvzLy23ZsoVVKBSs0Wi0bV+7di2blZXFsizb633V0tLCAmBLS0v73M6y/3ufsmzX++L666/vsf26665jX3zxRdvjb731Vts2tVrNAmAbGxt7PT+LxcIKhUL2+PHjtvuOHDnCCoVC22vY1zm43GD/T8LCwmzbOjo6er3vV6xYwW7YsIFl2f+9X658LefNm8eyLMuuWbOGvf/++23bjEYjq1Ao2C1btvQZy+nTp1mBQNDj/Ukci2qwpJd58+bZvlFPmzYNYWFhPbZbrVZs2LABiYmJUCgU8PPzQ1tbGxobG21lIiMjweH87+1VXV2NqKgo2+3g4GCIRKJ+47j8uFKp1PbN357jDyQmJsb2d2hoKIRCIaqqqqBWqxEREQGBQGDbPmrUKKjVagBdHb4iIyMxf/58xMbG4tlnn+3VhNetrKwMra2tCAgIgJ+fH/z8/LB8+XLU1dXZysjl8n57hqrV6h49fiMiIiAUCm3xAF0do66muroaIpEIISEhfT73Kw3m+dlz/O6Y+Xx+j+NXVVX1+xh7XXl+gJ6vF9D7fQSgz9aOhoYGGAyGHvsbNWoUDAbDoN5b3ex5n4aGhtr+lkgkveK9stm/r9ey+1xWV1f3eG35fD7Cw8N7PL/bb78dUVFRUCgUmD17NoxG46BafsjgUIIlvXA4HNx111146aWX+mwe3rFjB3bs2IGvvvoKbW1taG1thVKp7HEt6PLkCnR9yFZWVtpuNzQ0QK/XDyk+e44/kPLyctvf9fX1MBgMiIyMhEqlQnV1NUwmk217aWkpVCoVACAkJARvv/02ysvLsXfvXrzzzjvYs2dPn885KioKISEhaG1ttf20tbX1+MC88jFXUqlUPa6T1dbWwmAw2OIZaB8RERHQ6/Wor6+33VdRUXHV8oN5fvY+hyvPZ0VFBSIjIwEAMpkMnZ2dtm3dTZv27vvK8wP0fL0GIzg4GAKBoMf+SktLIRQKERQUNOj9OeJ9eqW+XsvucxkREdHjfW0ymXqczyeeeAKdnZ3IyclBe3u7rZl+OPGQ/lGCJX169NFHsW/fPtx44429trW3t0MgECAoKAhGoxHPP/882tvb+93fypUr8fbbb6O4uBg6nQ5PPvnkgB+eVzOU41/p3XffxYULF6DT6fD73/8es2fPhkqlwuTJkxEaGoqnn34aBoMBZ8+exVtvvYW7774bAPDxxx+joqICLMtCqVSCy+WCx+MB6KqNlJSU2I4xadIkREdH46mnnoJGowHLsigvL8fXX39td5x33nkn/vznP6OyshJarRbr16/H/PnzERERYdfjo6KiMGPGDPzhD3+ATqfDhQsX8O677161/GCen706Ojrwpz/9CUajEdnZ2di+fbvtOvKECRPw7bffoqamBhqNBs8991yPx4aGhuLSpUtX3fett96KAwcO4PPPP4fFYsHu3btx6NAh3HbbbYOOk8Ph4Pbbb8eGDRvQ3NyMpqYmbNiwAatWrRrSe9UR79O+YnziiSdsr+XGjRtt53LlypXYvn07srOzbcfr7qDVHY9EIoGfnx+ampp6nWvieJRgSZ8CAgIwf/78Hk173e6++26kpKQgJiYGo0aNglgs7tH825c1a9bgtttuw/Tp0xEfH4+MjAyIRCIIhcJBxzaU4/cVz8qVKxEaGoqqqips374dQFez2t69e3Hq1CmEhYVh6dKlWL9+PW6//XYAwKlTpzB9+nTIZDJMmzYNWVlZWLp0KYCunrJvvfUW/P398cADD4DL5eLLL79EVVUVxo4dC6VSiRtuuAHFxcV2x/nEE09g4cKFmDZtGmJjY2EymfDBBx8M6rnu2LEDlZWVCAkJwe233441a9Zctexgnp+9UlNTYTabER4ejuXLl+PFF1/E3LlzAXR9gZgzZw6SkpKQkZGBG264ocdj7733XlRVVcHf37/P4TEJCQnYvXs3nnnmGfj7++P555/Hnj17MGrUKLvju9wbb7yB2NhYJCcnIyUlBQkJCXjttdeGtC9HvE+vJJfLkZGRgVGjRmH27Nm46667bF/+5s+fjz/96U+45ZZbEB4eDqvVitTUVNtjn3vuORQXF8Pf3x8zZszAokWLhhULGRjDUvsAcYHq6mpERkaisrJySM15wxEbG4u///3vPYYFEUKIo1ENlowIs9mMzz77DCaTCS0tLXj00UcxderUEU+uhBAyUijBkhHBsixeeuklBAYGYtSoUdBoNLaxpYQQ4o2oiZgQQghxAqrBEkIIIU5ACZYQQghxAp6rA3A0hUJBHWcIIYSMCLVafdXxzV6XYFUqVa/VQgghhBBnSE5Ovuo2aiImhBBCnIASLCGEEOIEXtdETAgh7oJGQXoPhmEG/RhKsIQQ4mBWqxWVlZU9Vgoink0ikSAqKmpQCz9QgiWEEAdraGgAwzAYPXr0kFeNIu7DarWiqqoKDQ0NPdbwHQglWEIIcbC2tjbExMSAy+W6OhTiAFwuF6GhoSgvLx9UgqWvVoQQ4kAsy8JisfS51CPxXHw+HxaLZVDX1SnBEkKIEwylUwxxX0N5PSnBEkKIFzt16hQYhsGePXt63B8bGwu1Wt3rb1e75pprcPjw4X7L5Obm4osvvhihiIaOEiwhhHixbdu2Yfbs2di2bZurQ3EYSrDEa7Asi6amJmi1WlitVleHQwixk9lsxq5du/Dvf/8bR44cQXNz86Ae39jYiFtvvRVpaWlIT0/HBx98AAA4fPgwMjMzkZ6ejhtuuAG1tbUAgGeffRarVq3CokWLEBsbi9deew2bNm3CpEmTkJycjHPnzgEAtm7dihtvvBELFy5EUlIS7r77bhiNxl7HLy8vx5IlS5CZmYnMzEwcPHgQGo0GTz/9NPbs2YOMjAy8+eabAIB//OMfmDx5MsaNG4d7770XJpNpOKfOIagXMRlQVVUViouLAQAcDgfp6enw8/NzbVCEeJCcnJxe90kkEiQlJQEAiouL+5wwPj09HTweD3V1daiqquqxbcKECQMed9++fUhJSUFsbCyWLl2Kjz/+GGvXrrU77ocffhipqanYuXMnAKCpqQkGgwErV67E559/jgkTJuDVV1/FI488go8++ggAcO7cORw+fBgajQbx8fF4+umnceLECbz99tt4+eWXsWXLFgDAkSNHUFBQgLCwMPzyl7/Ev/71L/zmN7/pcfw1a9bgjTfeQGpqKsrKyjB37lxcunQJzz//PA4fPoz33nsPAPDjjz8iOzsbx48fB4fDwQMPPID33nsP999/v93P1RmoBkv6ZTQaUVpaCrlcjsTERISEhEAikbg6LEKIHbZt24Y77rgDAHDHHXcMupn422+/xcMPP2y7HRgYiAsXLiAsLMyW4LOysvDjjz/ayixatAgikQjBwcEICgrCjTfeCADIyMhAaWmprdz8+fMRHh4OhmFw55134uDBgz2OrdVqceTIEdx5553IyMjAzTffDJPJhPr6+l5x/t///R8OHTqECRMmICMjAz/++CMuXbo0qOfqDFSDJf2qqamBxWJBYmIiFAqF7f7Gxkao1Wqkp6fTQHpCBjBQbTMhIaHf7aGhoYMafwkAGo0Ge/fuxZEjR/DMM88AAKqrq1FSUoL4+Hi793Nl79m+hqlcXkYoFNr+5nA4ttscDgdms3lQxxGLxcjNzR0wRpZl8eijj+KRRx4ZsOxIok9G0q/o6GhMmDChR3IFuq7ttLa2oqamxkWREUL688knn+D6669HRUUFysrKUFZWhvXr19uuo9pj4cKF+Pvf/2673dzcjKSkJNTW1tqavd9//33MnTt30PF9//33qKmpAcuy+OCDDzB79uwe2+VyOVJSUrB582bbfadPnwbQte63RqOx3b9o0SJs2bIFLS0tAIDW1tYetWVXoQRL+tQ9WJ5hmF7JFej6Ri2TyVBWVtbvt1JCiGts27YNK1as6HHfihUrBtVM/MYbbyA/Px+pqakYN24cvv76awiFQuzYsQP33Xcf0tPT8cMPP/RIwvaaO3cu1q5di5SUFIjFYvzqV7/qVWb79u3Ys2cP0tPTkZycjH/84x8AgGuvvRbl5eXIzMzEW2+9hfnz52Pt2rWYM2cO0tPTce2117rFsCOG9bLlHpKTk2nBdQeoqalBWVkZxo0bd9Vrrk1NTcjPz0dsbCxiY2NHNkBC3BTLsjh//jySkpJosomr2Lp1a49OSp7gaq9rfzmHarCkF6vVikuXLoHL5UIkEl21XEBAAPz8/FBZWdlnF3tCCPFllGBJL+3t7TCZTAMuzcQwDEaNGoWQkJARjI4Q4ulWr17tUbXXoaJexKSX7o4C/v7+A5ZVKBR9XqMlhBBfRzVY0ktLSwskEkm/zcNX6uzshE6nc2JUhBDiWSjBkh5YloW/vz/Cw8PtfozZbMaJEydQUVHhxMgIIcSzUBMx6YFhGMTFxQ3qMTweD0qlEk1NTWBZlnpOEkIIqAZLrmA0Gge1oHC34OBgGI3GPudTJYS4xquvvoq0tDSMGzcOqamp2LFjh6tDcntbt27Fvffe65B9UQ2W2LAsi5ycHMhkMqSmpg7qsUFBQbh48SIaGxuhVCqdFCEhxF7Z2dnYsWMHTpw4AZFIhI6ODp+dec1isYDL5Y74cakGS2x0Oh30ej3kcvmgHysUCiGXy9HY2DikGjAhxLGqqqqgVCohEAgAAFKp1DbnsdFoxP3334/U1FSkpqb2GDLD4/HwzDPPYOrUqZgwYQLy8vKwdOlSJCYm4re//a2tXF5eHq699lpMnDgRM2bMQH5+fp9xvPnmm7Za9PLlywF0fdasXbsWkydPRlpaGt566y0AQFlZGUaNGoWHHnoI6enpmD59um1y/88++wzp6enIyMjAuHHjUF5eDgDYs2cPxo0bh7S0NNx+++22KRRXr16NRx99FPPmzcMdd9xx1WMCwMsvv4zExERMmzYN2dnZDjn/ANVgyWUGMzynL4O9dkuIL9h8Yjeq2+scvt8IRSjWTFp21e0LFizACy+8gLi4OMyZMwdLlizBihUrwDAM3nnnHTQ0NCAvLw+tra3IzMzEtGnTkJKSAovFgtTUVDz33HNYv349brnlFmRnZ0MqlSIxMREPPvggIiMjcd999+HTTz9FZGQksrOzce+99/ZKTt99951t1qbufhoA8Je//AXjx4/HO++8A71ejxkzZuDaa6+FRCJBWVkZVq5ciTfffBPr1q3Dpk2bsGHDBjzzzDP46quvEBUVBZ1OB4ZhUFdXhwceeADZ2dmIjo7Ggw8+iBdffBEvvfQSgK4vAd988w34fD6efvrpPo9pNBrx/vvv49SpUxCJRLjmmmuQnJzskNeIEiyxaW5uBo/HG1INFuia2YkQ4h5kMhlOnDiBY8eOYf/+/Xj88cfx3XffYdOmTThw4ACysrLA4XAQEBCApUuX4uDBg0hJSQHDMPjFL34BoGuJuZqaGtv/dlJSEsrKyqDValFQUIAbbrjBdry+FnP/9ttvcc8999guGwUGBgLoWl5Op9Phn//8J4CuyW0uXLiA8ePHIzIyEtOmTQMATJ48GYcOHQIAzJkzB/fccw9uueUWLFmyBFFRUdi3bx9mzpyJ6OhoAF1L59133322469YsQJ8Pr/fY1ZUVOCmm26yjee/9dZbr1obHyxKsARA1/SIra2tCAgIGFYvYIPBgNbW1kEvrUWIt+qvlulsXC4XM2fOxMyZM7Fw4ULMmzcPmzZt6nfJOQ6HAx6PZ/v7yuXnzGYzWJZFfHz8gEvJXe1yEcuy2L59OzIyMnrcX1ZW1uN4XC7XtpjIm2++idOnT2Pfvn2YNWsWtm/fPuDSeTKZbMBjDmWhAnvRNVgCoCvBhoeHD3vaw6qqKpw7dw56vd5BkRFChuLChQs4f/687XZubq7tMs7cuXOxZcsWWK1WNDc344svvui1XFx/kpKSoNFo8P333wPoSl59JdvuZeTa2toAwNZEvGjRIrzxxhuwWCwAgOLi4h7Lz/WlqKgI48ePx+9//3ssWLAAubm5mDJlCg4fPmwbg9/f0nlXO+acOXPw+eefQ6PRwGg04uOPP7b7PAyEarAEQFfHhoEWfbZHUFAQKioq0NjYCJVK5YDICCFDodVq8fDDD9su/fj5+eE///kPAGDt2rU4d+4c0tPTAQBPPvkkUlJS7N43n8/HZ599hoceegi//e1vYTKZsGzZsl61w/nz5+Puu+/G9OnTwefzMXr0aHz88cd46qmn8Lvf/Q7jxo0DwzAIDAzEJ5980u8xH3/8cRQXF4PH4yEmJgZ33nknlEolNm7ciCVLloBlWaSlpeHPf/5zn4+/2jHHjx+PrKwsTJw4EZGRkZg8efKAyd5etFwdAdA1G1N3s9BwsCyLo0ePQqFQIC0tzQGREeJZaLk670TL1ZEhYVkWx44dQ1FR0bD3xTAM/Pz80NbWRsN1CCE+zakJdv/+/UhOTkZCQgLWrFlju1htT5kDBw5ALpcjIyMDGRkZtvFTxPH0ej0sFsugJvfvj1KphNlsRkdHh0P2RwghnshpCdZisSArKwu7du1CcXExtFottm3bNqgyU6ZMQW5uLnJzcwdsnydD150IL+9xNxxBQUFISUlxWMImhBBP5LQEe+LECahUKtuF86ysLOzevXvQZYjzabVaAF0zvTiCSCRCcHCwQ67pEuKp6BKJdxnK6+m0T0C1Wo2oqCjb7ejoaKjV6kGVOXXqFDIyMqBQKLBhwwYsXLiw13E2btyIjRs32m53z0ZE7KfVasHn821TqjlC93jYkJAQ6uhBfArDMBAKhWhqakJgYCC9/70Ay7JoamqCUCgc1Ovp1CrG5YFcLftfrcyECRNQXl4OhUKB3NxcLF68GMeOHUNMTEyPx69btw7r1q2z3XbUFFe+RCqVQiAQOPSDoL6+HiUlJZDL5ZBIJA7bLyGeICoqCpWVlWhsbHR1KMRBhEJhjwqhPZyWYKOionoswK1Wq3uNi+yvTPe0VUDXdF3Tp09Hbm5urwRLhs8Zcwh3T43W2tpKCZb4HD6fj1GjRlEzsRcZSgXEaddgMzMzUVVVZRsftHnzZixbtszuMjU1NbY3p1qtRnZ2NtVOPYhMJgOXy7XN4EKIL2IYhn685GconJZguVwuNm3ahOXLlyMhIQESiQSrVq3CyZMnsXjx4n7LAMCnn36K1NRUZGRkYMmSJfjrX/+KxMREZ4Xrs2pqapCdnQ2dTufQ/XI4HCgUCrS2ttK3eEKIT6KZnHzcxYsXUV1djZkzZzp8QeKysjKUlZVhypQpEIvFDt03IYS4g/5yDo2j8HFarRZisdjhyRUAQkJCIBaLbctFEUKIL6EE68NYlkVHR4fT1nGVSCTUwYkQ4rNoLmIfZjAYYDabHTbBRF9MJpNtiSpCCPEllGB9mMlkglgsdtgUiX1Rq9XIz8+HwWBw2jEIIcQdUYL1YXK5HFOmTEFgYKDTjtE9HpaG6xBCfA0lWOJU3ROGtLe3uzgSQggZWZRgfVhBQUGPmbScgcfjQSKRQKPROPU4hBDibijB+iiLxYKGhoYRuTaqUCig0WhgtVqdfixCCHEXNEzHR3V2dgJw3Bqw/QkNDYVSqaQZnQghPoUSrI9y9Bqw/fH393f6MQghxN1QE7GP6ujoADAyCRYAzGaz7ZiEEOILKMH6KKPRCKFQ6JQpEvuSl5dHc0QTQnwKNRH7qOTkZFgslhE7nkKhgFqthtlsBo9HbztCiPejGqwPG6naK9A1qQUAGq5DCPEZlGB9kNFoRHFx8Ygmu+4JJyjBEkJ8BSVYH9TR0QG1Wg29Xj9ixxSJRODxeDSjEyHEZ9DFMB+k0+kAYEQXQWcYBtHR0RAIBCN2TEIIcSVKsD7IFQkWAKKjo0f0eIQQ4krUROyDdDodBALBiHZy6maxWGAymUb8uIQQMtIowfognU434rVXoGuyicOHD6OysnLEj00IISONmoh9UGpq6oiOge3G4/EgEomooxMhxCdQgvVBrqi9dpPL5WhqagLLsmAYxmVxEEKIs1ETsY/R6/Wor6932XVQuVwOi8Vi62hFCCHeihKsj2lpaUFhYeGIjoG9XPeMTtRMTAjxdpRgfYyrhuh0k8vlCAoKovGwhBCvR9dgfUxnZyf4fL7LJtzncrlITU11ybEJIWQkUQ3Wx+j1epd2cupmtVrBsqyrwyCEEKehBOtDWJaFTqeDRCJxaRz19fU4fPgwOjs7XRoHIYQ4EzUR+xCWZZGYmAiRSOTSOIRCIaxWKzQaDaRSqUtjIYQQZ6EarA/hcDgICwuDn5+fS+OQyWQAaOk6Qoh3owTrQwwGA/R6vcuvfXK5XEgkEkqwhBCvRgnWh1RVVeH48eMumSbxSnK5HFqt1uXJnhBCnIWuwfoQnU7n0iE6l/Pz84PRaITJZKIxsYQQr+T6T1oyYly1ik5fwsPDER4e7uowCCHEaaiJ2Ed0D9FxlwRLCCHejhKsjzCZTLBYLG6VYIuKipCfn+/qMAghxCkowfoIlmUREREBpVLp6lBsrFYrWlpaYLVaXR0KIYQ4HCVYHyEUCjF69Gj4+/u7OhQbmUwGq9VKMzoRQrwSJVgf4Y7DYRQKBQBAq9W6OBJCCHE8pybY/fv3Izk5GQkJCVizZg3MZvOgy7S2tiIiIgL33nuvM0P1ekVFRTh+/LhbJVqpVAqGYWjCCUKIV3JagrVYLMjKysKuXbtQXFwMrVaLbdu2DbrM448/jnnz5jkrTJ+h1+vBMAwYhnF1KDZcLhdyuZyuwRJCvJLTEuyJEyegUqmQkpICAMjKysLu3bsHVWb//v0wGAyUYB1Ar9e7fJL/vowfPx5jxoxxdRiEEOJwTkuwarUaUVFRttvR0dFQq9V2l9HpdPjDH/6Av/3tb/0eZ+PGjUhOTrb9tLS0OPBZeAeWZWEwGNwywbpTjZoQQhzJqddgL//wvNq1v6uVefbZZ/HrX/8awcHB/R5j3bp1KCwstP24Uy9Zd2E0GmG1Wt0ywRoMBpw9exYNDQ2uDoUQQhzKaVMlRkVFoaKiwnZbrVZDpVLZXebo0aPYuXMnnn/+eWi1WhgMBrAsi/fff99ZIXsti8UCmUzm8oXW+8Lj8dDU1ASBQDDglylCCPEkTkuwmZmZqKqqQmFhIZKTk7F582YsW7bM7jKHDh2yldu6dSsOHz6M9957z1nhejWJRILMzExXh9Gn7qXraKgOIcTbOK2JmMvlYtOmTVi+fDkSEhIgkUiwatUqnDx5EosXL+63DPEt3UvXUW9iQog3YVh3GhjpAMnJySgsLHR1GG6loqICWq0WycnJrg6lT1VVVbh48SIyMzMhk8lcHQ4hhNitv5xDMzn5gNbWVreezEEul4NhGOh0OleHQgghDkPrwfoAvV4PoVDo6jCuSiaTYebMmeByua4OhRBCHIZqsF6OZVm3nWSiG4fDoeRKCPE6lGC9nMlkctsxsJdrbm7G+fPnqaMTIcRrUIL1cgaDAQDcPsHqdDrU1tbS0nWEEK9B12C9nFwux6xZs1wdxoDkcjkAQKPRUE9iQohXoBqsD+ByuW5/jZOWriOEeBtKsF6uvr4elZWVrg5jQDSjEyHE21CC9XJ1dXWoqqpydRh2oRmdCCHehK7BejmdTufWY2AvFxcXh/j4eHA49L2PEOL56JPMi3WvAysWi10dil2EQiH4fL6rwyCEEIegBOvFzGYzLBaLx9RgAaC2thZ1dXWuDoMQQoaNmoi9mF6vB+D+Y2Avp1arwTAMQkNDXR0KIYQMC9VgvZhEIsG4ceMQEBDg6lDsRh2dCCHeghKsF+NyufD39/eoJmK5XA6WZWm4DiHE41GC9WLt7e1oa2tzdRiDcvmMToQQ4skowXqx8vJyj1t8XiqVgsPhUIIlhHg86uTkxdx9mbq+cDgcpKWlQSKRuDoUQggZFkqwXsxgMHjkxPn+/v6uDoEQQoaNmoi9lNlshtls9qgOTt3MZjPq6uqg0+lcHQohhAwZJVgv5YljYLsZjUacO3cOjY2Nrg6FEEKGjBKsl+Lz+Rg1ahSUSqWrQxk0sVgMLpeL9vZ2V4dCCCFDRtdgvZRQKER0dLSrwxgShmEgl8upJzEhxKNRDdZLmc1mj54NSaFQQK/Xw2QyuToUQggZEkqwXqqoqAhHjx51dRhDRhNOEEI8HSVYL+WJY2Avp1QqMXbsWI8cZkQIIQBdg/VanjoGtptAIKAVdQghHo1qsF7IarXCYDB4dA0W6Bqu09TU5OowCCFkSCjBeiGj0QjAM8fAXq66uhr5+fkwGAyuDoUQQgaNEqwXYlkWgYGBkEqlrg5lWKijEyHEk1GC9UJisRhpaWketdB6XxQKBQDQhBOEEI9ECZa4LT6fD7FY7HFr2hJCCEAJ1itdunQJOTk5YFnW1aEMm0KhgEaj8ehJMwghvomG6XghrVYLo9EIhmFcHcqwhYWFQalUesWXBUKIb6EE64W8YYhON39/f1oflhDikaiJ2Avp9XqPXAf2asxmMzo6OlwdBiGEDAolWC9jNpthsVi8pgYLAPn5+Th79qyrwyCEkEGhBOtljEYj+Hy+V9VglUoldDodraxDCPEoTk2w+/fvR3JyMhISErBmzRqYzWa7yxw7dgwZGRnIyMhAamoq3n77bWeG6jUkEglmzJiB8PBwV4fiMDQelhDiiZyWYC0WC7KysrBr1y4UFxdDq9Vi27ZtdpcZN24cTp48idzcXBw/fhx//etfUVZW5qxwvY439CDu1j2jEyVYQogncVqCPXHiBFQqFVJSUgAAWVlZ2L17t91lJBIJeLyuTs46nQ4Wi4WGatihtrYWFy9e9KpzJRQKIRKJKMESQjyK0xKsWq1GVFSU7XZ0dDTUavWgyuTm5iItLQ3R0dF47LHHEBcX56xwvUZzczPq6uq8qgYLACqVCsHBwa4OgxBC7ObUa7CXf8hfrUbVX5mMjAzk5+ejtLQUn3zyCS5cuNDr8Rs3bkRycrLtp6WlxUHReyZPX2j9alQqFSIiIlwdBiGE2M1pCTYqKgoVFRW222q1GiqVatBlgK7ZfGbNmoUvv/yy17Z169ahsLDQ9uPrkxIYDAav6kF8OYvFYluKjxBC3J3TEmxmZiaqqqpQWFgIANi8eTOWLVtmd5mSkhLbsAyNRoN9+/YhNTXVWeF6BW9ZaL0vVqsVR48exaVLl1wdCiGE2MVpCZbL5WLTpk1Yvnw5EhISIJFIsGrVKpw8eRKLFy/utwwAHDhwABkZGRg3bhxmzJiBlStX4vrrr3dWuF7BWxZa7wuHw4FUKqWOToQQj8Gw/XQ3ffnll/H4448DAHJycjBhwoQRC2yokpOTbTViX8OyLPR6PbhcLgQCgavDcbji4mKo1WrMnDnT1sOcEEJcqb+c028N9qOPPrL9fe+99zo2KuJwDMNALBZ7ZXIFumZ0AkDrwxJCPEK/Cfbyyq03jav0Vm1tbairq/PatVMpwRJCPEm/7WwdHR04duwYrFYrOjs7cezYsR6Jdvr06U4PkNivtrYWtbW1CAkJcXUoTiEQCBAeHg6pVOrqUAghZED9XoOdO3fu1R/IMPjxxx+dEtRw+PI12Ly8PHR2dmLq1KmuDoUQQnxCfzmn3xrs/v37nRIQcQ5vnWTiSlarFSzLgsvlujoUQgi5qgG7Yra0tGD79u04d+4cGIZBSkoKVq5cCT8/vxEIj9iLZVkYDAbbyjPeymg0Ijs7G9HR0YiJiXF1OIQQclX9dnIqLi7G2LFjsXPnTvD5fPB4PHz00UdISUlBaWnpSMVI7NC90Lq3zuLUrft9SB2dCCHurt8a7DPPPIPHHnsMjz32WI/7X3/9dfzxj3/EBx984NTgiP04HA7Gjh3r9h2AtIZOXGwsh8bYgU6jDlqjDiKeAPGBUYgLiIKI1/8QI4ZhoFQq0dTUBJZlvW5RA0KI9+g3wZ44cQLbt2/vdf8jjzyCpKQkpwVFBo/L5SI0NNTVYfSJZVmUNqvxY0k2fqrMg8lq7rMch+FApQzD5Kg0zB01GRKBuM9ySqUS9fX10Gq1trViCSHE3fSbYK9WG2IYBhKJxCkBkaExGAywWq0QiURuVasrb6nGv099htIWNbgMFxNVKZgenQF/iRIygQQSgRgagxYlTZUobqrA+fpL+CT/W3x1/iDmjpqCBaNnQCmS9djn5eNhKcESQtyVXeNg+xrJ09nZ6bSgyOBVVlZCrVZj1qxZbtO79njFGWw5uRt8Dg/LUhdgVuxE+Il7J0QRLwDB0gBMjR4HlmVxrv4S/u/8QfzfhYP4vvgobhw7F4vGzAKX0/W8pFIpAgMDvXbGKkKId+g3wUZERODJJ5+86jbiPvR6PQQCgVskV4vVgo/zvsG+i0cQpQzDb6bfiRBZgF2PZRgGyaHxSA6NR2mzGrvyv8WnZ/chp6oQWZNuQaQyFAzDIC0tzcnPghBChqffiSY8ka9ONHHq1CkwDOPyBRmMFhPePLwNBfXFmBKVjtWZywbsuNQflmVx4NJP2Jn3NSxWC25OmY/FY2aDYRiwLAuWZcHhOG1RKEII6deQJ/svLS3FsmXLkJaWhjvuuAM1NTVOCZAMn16vd/kQHZZl8Z9Tn6Ggvhi3pC7Ar6fcOqzkCnTVaOfGT8ELCx5GYlAsPsn/Fv84+gGa21tw5MgR1NXVOSh6QghxrH4T7Jo1azB69Gi88sorUCqVePTRR0cqLjIIFosFJpPJ5bM4fVN0CEfKT2NewjQsGXuNQztbBUn98bvZa3Dj2Lk4XX0Orx37D1r07WhtbXXYMQghxJH6vQbb2NiIl156CQCwcOFCjB8/fkSCIoNjtVoRGRnp0tm1zlSfx668b5ESkoCV4xY75RgMw2BZ6nWIVIZi84lPsbP9ByzFLCQlJblVz2lCCAEGqMHy+Xzb3wzD0LUuN8Xn85GYmIjAwECXHL+qrQ7vZO9EsCwAa6feZuvt6yxTotLxxNz7IBVL8WHxtzh26bRTj0cIIUPRb8bMzc2FQCCw/XTf5vP5NETCjbiyn5rZasHbxz4Eh+HgkRl3QSYcmfHRsf6R2DD3PigFcrx1dDsOl+WMyHEJIcRe/SZYq9UKo9Fo++m+bTKZYDQaRypGMoDS0lIcOXIEFotlxI+9r+gIqjX1WJlxA8IVwSN6bFVQBO5LW4ZoZTjeP/EJvrt4dESPTwgh/RlwNR3i/vR6vUuWb2vsaMHnhT9idFAsZsSM/PV5DoeD6ZOmYrwpA28e+QA7cvdCbzbixrHXjHgshBByJbqo6gVctQ7sh7lfwWK14K4JN7m0k5GIJ8TDM1YhPWwMdp/dh6/OH3RZLIQQ0o0SrBcwGAwjPgb2TPV55FQXYuHoGYhUum6RAYPBgGPHjqGhth7rpt+O1NDR+CT/W3xz4ZDLYiKEEIASrMezWq0wGAwjWoM1mI344PSXCBArcWPytSN23L50d7ZraWmBgMvHgzPuQEpIAnbmfY19F4+4NDZCiG+jBOvhzGYz5HL5iK4D+23RYTR2tuCO8TcOe6am4WIYBv7+/mhtbYXVav05yd6JsSHx+DD3K+wvyXZpfIQQ30UJ1sMJBAJMnDhxxBZf0Jn0+LboCMYEx2F8xNgROeZA/P39YbVa0d7eDgAQ8gR4aMYqJAbFYlvOFzheccbFERJCfBElWDIo3xcfR6dJhxvHznWb2ZO6Z7BqaWmx3SfiCfDIjFWI8gvHpp92Ibf6nIuiI4T4KkqwHq6mpgb5+fkjMgZWbzZiX9FhxAdEITkk3unHs5dIJEJgYGCPmccAQCIQ47ezViNEFoi3j32I8/WXXBQhIcQXUYL1cG1tbWhpaRmRaSwPlGRDa+zEjcnXuk3ttVtaWhpUKlWv+xUiGX43ew0UIhn+fuQ/KGuuckF0hBBfRAnWw3WPgXV2wjNaTPj6wiHE+EUgPWy0U481HFartdd9ARIlHpu9BkKuAK8f/jdqNY0uiIwQ4msowXq4kRqic/DSCbQbtG517fVyVqsV2dnZuHSp72bgMHkQHp15NwwWI1797xa06tpHOEJCiK+hBOvBWJYdkYXWTRYzvr5wCCpFKCZEJjv1WEPF4XDA5/PR1NR01TKxAZF4aPoqtOrb8dqhreg06kYwQkKIr6EE68FMJhNYlnV6Dfanyjy06Nocvoi6owUEBECn06Gzs/OqZZJD4/Gryb+Euq0Ofz+yDUaLaQQjJIT4EkqwHkwgEGD27Nl9du5xpP0l2fATKTBRlerU4wxX93q4/dViAWByVBruHH8jLjaW4d3jO2GxjvwqRIQQ70cJ1sNxOBynrqJT1lKFkuZKzBk1CTwnL6Q+XDKZDAKBAM3NzQOWvTZhKpaOvRY51YXYlvOFS9fUJYR4J1quzoM1NzdDo9FApVI5LcnuL8kGh+FgTlymU/bvSAzDIDw8HBaLBSzLDticfXPKPLTpNThYegJKkRy/SJ0/QpESQnwBJVgP1tjYiJqaGkRFRTll/51GHY5X5GF8RDL8JUqnHMPR4uLi7C7LMAxWTViKdoMWX5z7EUqRDNcmTHVidIQQX0JNxB5Mp9NBJBI5bZKJI+WnYbQYMTd+slP270xms9muclwOF2un3obEoFh8cPpL/FSZ7+TICCG+ghKsB3PmQussy+JAyU8IlQW51bSI9igqKsJPP/1k93VVAZePh2esQqQiBJt++hjn6kucHCEhxBdQgvVQ3WNgxWKxU/Z/oaEU1Zp6XBs/xa2H5vRFIpHAaDRCq9Xa/RipQIzfzr4HfiIF3jzyAcpaaEpFQsjwODXB7t+/H8nJyUhISMCaNWv6bLa7Wpnt27dj3LhxSE9Px6RJk3DgwAFnhupxDAYDWJZ1WoL9sSQbAi4f02PGO2X/zmTvcJ0r+YkV+O3s1eBzeHj90L9Rpx3c4wkh5HJOS7AWiwVZWVnYtWsXiouLodVqsW3bNrvLxMXFYf/+/cjLy8PWrVtx22239TnPrK/i8/kYP348goODHb7vdr0WOVWFmKRKg0wocfj+nU0sFkMsFg86wQJAmDwYj87qmlLxbwc305SKhJAhc1qCPXHiBFQqFVJSUgAAWVlZ2L17t91lpk+fjoCAAABAcnIy9Hr9oJr8vB2Xy4VSqXTKNdjsyjxYWAtmxU10+L5HSmBgIDQaDYxG46AfGxegwoPT70Srvh2v/ncLtIarzwxFCCFX47QEq1arewwfiY6OhlqtHnQZANixYwdSUlKgUCh6bdu4cSOSk5NtP5cvuu3NNBoNWltbnTJBwrHyXARJ/DE6KNbh+x4pwcHBCA0NHXKrR0poAu6bciuq2uvxxpH/QG8efKImhPg2p16DvbxzzNUSwUBlcnJy8NRTT2Hr1q19Pn7dunUoLCy0/fj7+w8vaA9RUVGBgoICh3dAqm6vR2mLGtNjxntc56bLKZVKjB07dlg1/EmqVNw98WYUN1Vg49EdMNOUioSQQXBago2KikJFRYXttlqt7jVn7kBlioqKsGLFCnz00UdITEx0VqgeyVk9iI+W5wIApsVkOHzfrmA0GmGxDD0xzhk1CcvTFuJsXRHezaZ5iwkh9nNags3MzERVVRUKCwsBAJs3b8ayZcvsLqNWq3HDDTfgnXfewZQpU5wVpsfqnmTCkViWxbHy04gPiEKYPMih+3aF9vZ2HD16FA0NDcPazw1Jc7B4zBycVJ/FlpN7aN5iQohdnJZguVwuNm3ahOXLlyMhIQESiQSrVq3CyZMnsXjx4n7LAMBzzz2H+vp6/O53v0NGRgYyMjJQVlbmrHA9islkgtlsdniCPd9wCc26No8cmtMXmUwGHo+H+vr6Ye9redoCXBs/BUfKc7Aj9ytKsoSQATGsl31SJCcn22rE3kqj0eDUqVMYM2YMwsPDHbbf9098iuMVuXh9yRMeOTynL+fPn0ddXR1mzJgBHm94U2+zLIv3TnyCo+WnsSTpGtyStsBBURJCPFV/OYdmcvJAfD4f8fHxUCodNwG/wWzESfVZpIeN8ZrkCnT1JmZZFo2NjcPeF8MwWJO5DBMjU7D3/AF8ee7A8AMkhHgtSrAeSCQSISoqChKJ4xJhbvU56M0Gr2ke7ubv7w8ejzfs67DduBwufj3lVqSHjcHus/vwzYVDDtkvIcT7UIL1QMPtGduXI+WnIeWLkR4+xqH7dTUOh4PY2FiEhIQ4bJ98Lg/rpt+OlJAE7Mz7Gt9dPOqwfRNCvAclWA907tw5nDx50mH70xo6UVhXgkxVKvhc71siWKVSITQ01KH7FHD5eHDGnUgKHoUduXvxY/Fxh+6fEOL5KMF6IJ1O59AxsDlVBbCwFkyOSnfYPt2NxWJBa2urQ/cp5Anw8My7kBgUi22nv6AkSwjpgRKsh7FarTAYDA4dovNTZT4UQhnGBMc6bJ/u5uLFi8jLy7N7IXZ7iXgCrJ95N0b/nGS/v3jMofsnhHguSrAextHL1LXrtSisL0GmKgVcDtch+3RHISEhsFqtDuvsdDkRX4hHZ63GmOA4bM/9kq7JEkIAUIL1ODqdDgAclmBPVRWABevVzcNAV29igUCAmpoap+xfxBPgkZl3267JUu9iQgglWA/D4/EQFBTksCE6P1Xmw0+kQGJQjEP2564YhkFYWBja29vR2emc5edEP1+TTQ6Jx868r/F5wQ804xMhPowSrIdRKBRITU11SIJt1bXjQkMpMlWp4DDe/1YICwsDANTW1jrtGN1JNiN8LD4r/AG78r+hJEuIj/L+T1VyVSfV3c3Daa4OZURIJBIkJSX1WtXJ0QRcPtZNvx2To9Lx9YVD+OD0F5RkCfFB3jfo0cvl5uZCJBIhKSlp2Pv6SZ2PALESCYHRDojMM3TXYp2Nx+Hi11N+CQGXjx9LstFh1OHeySvA8+KOZISQnqgG60FYloVWq3VIbai5sw0XG8uQqUr16IXVh6KlpQVVVVVOPw6H4WBN5jJcP3oWsivz8Mbh/0BvNjr9uIQQ90AJ1oOYzWaHLVN3Un0WAHymefhyNTU1KCkpcfiY2L4wDINbxy3CL9Ovx9m6i3jl4PvQGDqcflxCiOtRgvUgjhyic0J9FoESP4wKiBr2vjxNWFiY08bEXs2iMbOxJvMWlDar8ef9/0JDR/OIHZsQ4hqUYD2IoxJsS2cbipvKfbJ5GHD+mNirmRU3EQ9OvxPNna144Yd3UNqsHtHjE0JGFiVYD2K1WsHn84c9ROdUVdfiwBMjUxwRlsdhGAbh4eFob2+HRqMZ0WOPjxyL38+5FwDw0oH3cLrq3IgenxAycijBepDw8HDMmDEDfD5/WPs5WXUWfiKFT/UevlJERAQYhkFz88g31Y4KjMKGa9ciQKLEP45+gO8uHqVhPIR4IUqwPqZNr0VRg2/2Hr6cUCjElClTEBPjmhmsQmQB2DD310gMisGO3L3YlvMFzFbHrvFLCHEtSrAewmq1Ii8vD/X19cPaz+mqQrBgkanyzebhy3X3xnZV7VEmlOB3c7IwKzYT+y9l47VDW6E1OGcaR0LIyKME6yH0ej2am5thMBiGtZ+T6rNQCGVeP/ewvaqqqnDq1ClYrVaXHJ/H4eKezF/gtnGLcb7+Ev704z9R3T68L1GEEPdACdZDdE9QL5VKh7wPjaED5xouIVOV4hNzD9uDw+FAq9WiqanJZTEwDIOFo2fi4Zl3oV2vxfM/vI1T6gKXxUMIcQz6lPUQ3Ql2OD2IT1efg5W1YmJkqqPC8nghISHg8XhQq10/ZGZc+Bg8Pe8BBIiVeOvYdnyavw9W1jU1a0LI8FGC9RCdnZ3gcDgQCoVD3sdJ9VnIBBKMCY51XGAejsvlIiIiAm1tbdBqta4OB+GKYDw97wFMjEzF3vMH8Pqh/9B1WUI8FCVYD6HT6SCRSIbc87fDqMO5+hJMiEwGlyac76F7yI471GIBQMQXYt20lbgldQEK6i7ime/+gYuN5a4OixAySJRgPURGRgbGjRs35MfnVp+D2Wqh5uE+iEQiREZGDuv6tqMxDIMlY6/B7+asgdlqwV8PvIdvLhyi8bKEeBBKsB6CYZhhTTBxQn0WUr4YyaHxDozKeyQkJCAqyv3mZR4bEo/nrnsQo4NjsTPva7xxZBva9a5vyiaEDIwSrAfQarUoLS2FXq8f0uM7jToU1F3E+MhkWo90AK2trcMeCuVofmI5Hpt9D5aOvRZ5NRfw9Hf/wNnai64OixAyAEqwHqCtrQ3l5eWwWIY2009uzXmYrRZkqqh5uD+dnZ3Izc1FRUWFq0PphcNw8IvU+fj9NfeCx+Hi1UNb8NGZ/4PJ4vwl9wghQ0MJ1gN0dHSAYZghr6JzUn0WEr4YKaEJDo7Mu0gkEgQGBqKmpsbtarHdxgTH4fnrHsQkVRq+LTqMP/3wNspbql0dFiGkD5RgPUBnZydEIhE4nMG/XDqTHmdrL2J8RBI1D9shJiYGVqvVbXoU90UiEOP+qbfh3knL0dTZhhd+/Ce+PHcAFprLmBC3QgnWA3R2dg55gom8mgswWc2YpEpzcFTeSaFQICAgANXV1TCZTK4O56oYhsGM2An404KHMCYoDrvP7sOLP76LqrY6V4dGCPkZJVg3ZzabYTQahzyE5IT6LMR8EZKpedhuMTExsFgsaGxsdHUoAwqQKPHb2ffg7gk3o1pTj2e/fwufF/xAK/MQ4gZ4rg6A9I/D4WDixIng8Qb/UunNRuTXFiFTlQo+l15qeymVSmRmZkImk7k6FLswDINr4icjNSwR/z71OT4r/AEn1GdxT+YvEO/Da/4S4mpUg3VzHA4Hcrl8SB2cztSch9FiQiZNLjFo3cl1qD23XSFI6o/1s+7GryavQJtegxd/fBf/OfU5Oow6V4dGiE+iao2ba2trg8ViQUBAwKAfe1J9FkKeAClh1Dw8FC0tLSgoKEBaWhqUSqWrw7ELwzCYHjMeqaGJ2Jn3NfZfysapqgL8Mv16TI8ZP+SpNgkhg0c1WDdXUVGBCxcuDPpxerMReTVFyAhPgoA79BmgfFl3Lba4uNjjpihUiGT41eQV+P2ceyETSPDeiU/w0oFNNKSHkBFECdbNDbUH8ZnqczBajJgSNfT5i30dn89HTEwMNBoN6us9cxH0pJBReG7Bg1iethDlrdV47vuN+Pepz2i6RUJGACVYN2axWGyr6AzW8Yo8SPhipIYlOiEy3xEZGQmRSITS0lKPuh57OR6HixuS5uCl69djekwGDlz6CU988zq+uXCIZoIixImcmmD379+P5ORkJCQkYM2aNTCbe/8zX61MWVkZZs+eDalUinvvvdeZYbqtjo4OABh0b1atoRNn64owITKZeg8PE4fDQXx8PPR6vVtPPmEPP7EC905egaeuXYtweRB25n2NJ795HdkVZzyuCZwQT+C0BGuxWJCVlYVdu3ahuLgYWq0W27Zts7uMQqHASy+9hFdffdVZIbo9jUYDAJDL5YN6XE5VAcxWC6ZGU/OwIwQFBSEpKQkqlcrVoThEfGA0Nly7FvdPXQmGYfBO9k786Yd/oqDO8641E+LOnJZgT5w4AZVKhZSUFABAVlYWdu/ebXeZgIAATJ8+HSKRyFkhuj1/f38kJCQMuok4uzIPCqEMScFxTorMtzAMg7CwMHC5XLAs6xVJiGEYTI5Kw4sLH8HKcTegoaMZf/vvZrx88H1a3J0QB3Fa+6Fare6xvmZ0dHSvJjZ7ygxk48aN2Lhxo+12S0vLECN2PxKJZNDJtVWnwbn6S7g2YSq4NPewQ5lMJuTn5yM4ONgt144dCj6XhwWjZ2Bm7ATsu3gU3xYdxp/3v4v0sDG4OWUe4gK8o9ZOiCs49QLd5WPurvat354y/Vm3bh3WrVtnu52cnDzofbgji8WCjo4OSKVScLn2J8oT6nywYDElKt2J0fkmHo8HhmFQWlqKoKCgIa9u5I4kAjFuTpmHeQlT8fWF/+KH4uN4/ocLSAsbjZuSr6UZoQgZAqc1EUdFRfVYV1OtVve6hmVPGV+l1WqRk5ODhoaGQT0uu+IMgiT+SKAPRIdjGAajR48Gy7K4cOGCVzQVX0kulOKX6Yvw8uLfYdGYWbjQUIYXfnwHfzu4GefqS7zyORPiLE5LsJmZmaiqqkJhYSEAYPPmzVi2bNmgy/iqoXRwauhoRklzJSZHpdOMPU4ilUoRGxuL1tZWVFZWujocp1GKZPhl+iK8svgxLB4zByXNlXj54Pv40w//xEn1WVhZq6tDJMTtOS3BcrlcbNq0CcuXL7d11Fm1ahVOnjyJxYsX91sG6JpgQaVSYf369fjwww+hUqnwww8/OCtct6PRaMDlcgd1DTa7Ig8AMDmKlqZzpujoaPj5+aGsrAxGo9HV4TiVQiTDivSFePWGx7E8bSGaOlux8dgOPPHN6/ih+Dj0Zu9+/oQMB8N6WZtPcnKyrUbsyX766Sfw+XyMHz/ervIsy+KP+96ElbXixYWPUA3WyQwGAwwGAxQKhatDGVFGiwlHy07j24tHUKtpgIQvxjWjJmNewlQESDxjvmZCHKm/nEOzELghs9lsq8Hbq6ylClXtdVietpCS6wgQCoUQCoUAulpbxGKxT5x3AZePa+InY86oSciruYBvLx7B/104iK8v/BcTIpMxL2EqkoJH+cS5IGQglGDdEMuyiIuLG9QKLodKT4HDcDAjxr4aL3GMlpYW5OXlISEhAZGRka4OZ8QwDINxEUkYF5GEytZa/FhyHEfLc3GqqgAR8hDMiZ+E6dHjIRMOfppPQrwFJVg31D3JvL0MZiOOV55BWtho+Il9q8nS1ZRKJeRyOYqLiyGRSODv7+/qkEZclF8Y7p54M1akLcThshz8WJKND3O/wid532JSVBpmx2VidFAs1WqJz6EE64b0ej0EAgE4HPv6oOVUFUJn0mNm7AQnR0auxOFwkJKSgpycHBQUFGDChAlDWpzBG0gEYiwYPQPXJU7HhYZSHLj0E36qzMPR8tMIkQViZuxEzIgZT9dqic+gBOuGzpw5A7FYjPR0+yaLOFx2CnKBFBkRY50cGemLUChEWloaTp8+jfz8fEyYMAF8vu+uwcswDJJCRiEpZBQ0hg4cq8jF4dJT2H12H/ac/Q7JIfGYFpOBiZEpEPGFrg6XEKehBOtmTCYTdDodgoKC7Crf2NGCwvoSLEicAR5NjegyMpkMY8eORWVlJU3GcBm5UIoFiTNwXcJ0lLdW43BZDn6qyENBfTH+k/M5xkeMxbToDKSEJdL7l3gdSrBuZrATTBwuywEAzIyd6LSYiH2CgoIQGBgIhmFsSZauO3ZhGAax/pGI9Y/EbeMWo6D2Io5W5OJ09TlkV3atXTwxMgWTo9KQFDKKki3xCpRg3YxWqwVgX4JlWRZHynIQ569ClF+Ys0MjduhOrufPnwfDMBgzZgwl2SvwOFxbD2S9yWBLsscqTuNQ2UnIBBJkRIxFZmQKkkMTaE1j4rHonetm2tvbwePx7Fqm71z9JTR2tmDRmFkjEBkZDC6Xi+rqanA4HCQmJlKSvQoRX4hpMRmYFpOBDqMOOVWFOFVVgOMVuThcdgoinhBpYaMxITIZ6WGjIRF4zwILxPtRgnUzfn5+dk9asP9SNgRcPqbQwupuhWEYJCYmwmq1orq6GlwuF6NG0eQLA5EKxJgVNxGz4iai06hDXm0RTlUVIK/2Ak6o88FluBgdHIuM8CSkh49GmDzY1SET0i9KsG7G3tmbGjtacEpdgDmjJkFK3+rdTnfzsNVqRWVlJSwWC9VkB0EiEGNq9DhMjR4Ho8WE8/WlOF1diNzq8zhXX4IPz3yFUFkQ0sJGIy1sNMYEx0LIE7g6bEJ6oATrRkwmk23N0YH8UHwcLFhclzh9BCIjQ8EwDJKSksDhcMDlcim5DpGAy0d6+Gikh4/GXRNYVLTWIK+2CGeqz+GH4mP4vvgo+BweRgfFIjk0ASmhCYj2C6fzTVyOEqwbOXv2LFiWxYQJ/U8YoTcZ8N/Sk0gNTUSEImSEoiNDweFwMGbMGNttg8EALpcLHo/+9YaCYRjE+Ecgxj8CN469BlpDJwrrS5BfW4SztRdRUF+MXfmATCDB2JB4jA0ZhbEhoxAqC6KES0Yc/Ze7CbPZjPb2doSHhw9Y9lDZKXSadLguccYIREaGq/uD3Wq1Ii+va0nB1NRUiMXUtD9cMqEEk6PSMDkqDSzLokbTgIK6YhTWleBs3UWcUOcDAPxECowJjkVS8CiMDo5FuDyYEi5xOkqwbqKlpQUsyyIgIKDfcizL4vviYwiXByMtLHGEoiOOwOFwEBMTg/Pnz+PUqVNITk4e8PUm9mMYBhGKEEQoQnBd4nRYrBZUtNbgXP0lnKu/hNya88iu7PqCoxDKkBAYjcSgGCQGxSDGP5LG3hKHowTrJpqbm8EwzICTxZ+pOY96bRPumnATfQP3QCEhIRCLxSgoKEBeXh5GjRqFqKgoei2dgMvhIi5AhbgAFRYnzbYl3AsNpShqLENRYxlyqrvW8RRw+Yj2i0BCYDTiA6MQHxAFf5ozmQwTJVg3wLIsmpuboVQqweX2/y1638WjkPLFmEbL0nksuVyOiRMnorCwEGVlZQgJCbFr3DMZnssT7vVjZoFlWdRqGnGxqRwXG8txqakS3xQdspX3Eykw6ufycQEqxPpHUo99MiiUYN2A1WpFaGjogKuwlLdU41x9CRaPmQMRDUnwaHw+H+np6dBoNLbk2tHRAalU6uLIfAfDMAhXBCNcEYzZcZkAgA6jDiVNlShrUeNSsxoXG8tttVwACJYGINY/squjlV8Eov3CoRDJXPUUiJujBOsGuiciGMiegu8h4PJxXeK0EYiKOBvDMFAoutbvbW1tRW5uLsLDwxEfH0+9jF1EKhDbhgQBXa1LjZ0tKG2uQnlLNcpa1CioK7Z1ngIAf7ES0X7hiFKGIcovHNF+YQiRBYLD2LfcJPFe9F/sBvR6PYRCYb/X4Yoay3Cm5jwWjZlFi6p7IZlMhvDwcNTU1KCpqQkJCQkIDqaerq7GMAyCpQEIlgZgclQagP8l3fKWalS01qCitQaVrTU4U3Pe9jgBl49weTBUyjColKGIUIRCpQyFv1hBr6kPoQTrYhaLBdnZ2VCpVIiPj++zDMuy2JX3LSR8MRaPmTPCEZKRwOPxMGbMGAQHB+PixYsoLCyEv78/UlNTB7wuT0bW5Uk3U5Vqu19r6ERlWw0qW2uhbquDuq0WJ9RncaQ8x1ZGzBchQh6McEUIIhTBiJCHIEwRjGCpP9V4vRAlWBdrbW0Fy7L9rp6TV3MBxU3lWJa6ADJh/9dpiWcLCAhAZmYmKioqoNVqweF0feiyLEs1HzcnE3ZPbvG/L8pW1oqGjhZUt9VD3V6H6vY6VLc34KfKPBgtJls5HoeLUFkQwuTBCJMHIUwehFBZIEJlgZALpfTaeyhKsC7W0NDQ7/AclmXx6dl9UAhlNC2ij+ByuYiLi7MlVbPZjJMnTyI8PBwqlYpqtB6Ew3BsiXJ85Fjb/VbWisaOVtS016NW24ia9gbUaBpwsbEMp6rO9tiHhC9GiCwAobJABEsDECILRIgsACHSAPhRk7NbowTrQiaTCfX19QgKCgKfz++zTHZlHirbanFHxo3Uc9jHdH9wmkwmCIVClJaWQq1WIyoqChEREdQRyoNxGE5XkpQF4Mq1sDqNOtRpm1CraUSdtgn12ibUaZtwtvYiOky6HmX5HB4Cpf4Itv0EIFDqjyCJH4Kk/pAJJJSAXYj+Q12otrYWVqsVkZGRfW43WkzYU/A9giT+uCZ+8ghHR9yFWCxGRkYGmpqaUF5ejkuXLqGiogKpqanw8/NzdXjEwSQCsW3s7ZU6jDo0aJtR39GMem0TGjta0NDRjFpNIwrqimFlrT3KC7gCBEqUCJT4I0jqhwCJHwIlSgSIlfD/+TctaO88dGZdyN/fH9HR0VAq+54x5vOCH1CvbcLaqbfRNG4+jmEYBAUFITAwEC0tLaiqqoJM1jX+UqPRwGq1QqGg5kJvJxWIIQ2IRGxA7y/lFqsFLbp2NHW2oqGjBU0dLWjoaEGzrg112kacbyiB2Wrp9TiFUAZ/sQIBEiX8xQr4i7t++4kVXb9Fcoj5InpvDQElWBeSyWS2D8krFTdV4OsLhzAxMhWTVWkjHBlxVwzDICAgoMccxmVlZWhqarIN9QkJCbnqJQfivbgcLoKk/giS+mNMcFyv7SzLok2vRXNnK5p0bWjpbENTZytadO1o7mxFeUs1ztRc6FULBrpqwn5iOfxEcihFcviJf/4tksNPrIBCKINSJKMOWVegBOsiNTU18Pf373OKPKPFhPdPfAqZQIK7JiylNyzp15gxY1BTU4Pq6mpcvHgRxcXFCAoKwtixY229kAlhGKYrSYrlGIWoPstYWSva9Vq06NrRqtOgRdeGFl072vRatOq77qvVNKLdoO3z8RyGA7lQaku4CpEMCqEMCpEUcmHX33KhBHKhFHKhFEIv71dCCdYFOjs7ceHCBahUKiQkJPTavvvsd6jVNOD+qStpGjYyIIFAgJiYGERHR6O1tRW1tbUwm8225FpTUwM+nw9/f3/qgUz6xWE48Pu5ebg/ZqsFGr0WrXoN2vQatOu1aNVru/42aNGu16KxsxWXmtXovKJj1uWEPAHkgq5kK/s58coEEsiEUsgFEsiEEsgEEkgFEsiFXb896Zqx50TqRaqrqwGgz85NRY1l2Fd0BJNUabaZYwixR/dwL39/f7AsC6CrWbC0tBRGoxFcLhd+fn4IDAxEYGAghEKhiyMmnorH4cJforRrxSGTxQyNoePnxNsBrbED7XotNIZOaAwdP/9oUadtQklTZb8JGehKylK+GNKfE7BUIIZMIIGEL+66Ri0QQyIQQ8oXQyIQdd3HF7vkOjIl2BFmsVhQU1ODgICAXgtuN3e24d3jOyEXSrFqwlIXRUi8QfcHCcMwmDx5MpqamtDU1ITm5mY0NTXZVvQBujpJicViGvZDnILP5SFAokSAncv/ma0WdBh10Bi0P//u6PG766cTWmMn2vVa1LQ3QGvs6LMD1+UYMBDzRZDwRRDzRXhq3loIuM7tq0D/USOsrKwMFoulV+21w6jD64e2ot2gxW9n3QO5kFZVIY7B4/EQGhqK0NBQWK1WtLe3w2rt6sjCsizy8/NhMpkgk8mgVCqhUCigVCqphktcgsfhQinquoZrL5ZlYbSY0GnUocPUlYQ7jXp0mHRd9xl16DTpoTPp0GHUQ2fWg89xfvqjBDuCLBYLmpqaEBwc3KMXqNFiwptHtqGqvR73T1uJpJCBV9YhZCg4HE6vsbOJiYloaWlBe3s71Go1gK4e7pmZXUu4NTY2gsPhQCaTQSDw7k4pxDMxDAMhTwAhTwB/2FdTHgmUYEcQl8vFxIkTe8wra2Wt+Ff2xyhqLMOd45di0mWThxPibAzDIDg4GMHBwQAAs9nco4YLACUlJdDpuq6LCYVCyGQySKVSxMXFgWEYmieZkKugBDtCmpqaEBAQ0KMXp95kwHsnPsWpqgIsSboG8xKmujBCQrqaky9vXQFgWxi+o6MDWq0WWq0WnZ2dtjWMi4qK0NLSAolEArFYbPutVCqp1zLxaZRgR0B9fT0KCwsRHx+PqKiu8WfV7fV46+h21GgasHjMHCxLvc7FURLSN7FY3KtDnsXyvw4lUqkUBoMBnZ2daG5utt0/Y8YMcLlc1NXVobq6GmKxGEKhECKRCEKhEHK5nCbEIF6NEqyTtbS0oKioCGKxGBEREQCAnyrzsfnkp2DA4DfT7sBEVYqLoyRkcC6vmapUKqhUXfPmWiwW6PV66HQ6W69klmVhMpmg1Wp7JOa0tDQEBgZCq9WioKAAQqEQAoHA9qNUKm3TiBoMBvB4PKoRE49CCdZJWJZFZWUlLl26BKFQiJSUFFS21+Kzgh9wpuY8IhWh+M302xEmD3Z1qIQ4DJfLhVQqhVT6v17wYWFhCAsLA8uyMJvN0Ov1MBgMPdZAFolEMBgM0Gq1MJvNAGCbp5tlWRw/fhwsy4LL5YLP54PP50Mul2P06NEAgLq6OhiNRvD5fFsi5vF4kEql4HA4dJ2YuIRTE+z+/fuxbt06GI1GzJ49G//61796jbXrr8zjjz+O3bt3g8Ph4M9//jOWL1/uzHAdqqWlBZcuXYKfnx/kkQHYcuYz5FQXQsDl4/rRs3BTyjxafo74FIZheiTHbjKZDOPG/W/RNqvVCqPR2GOx+bi4OJhMph4/l9eGa2pq0Nra2uuYM2fOBIfDgVqtRmlpaY/ky+FwEBcXBz8/PxgMBlRWVoLL5YLL5YLD4di+LCgUXbMaaTQaMAwDDodj2979m5C+OC3BWiwWZGVl4csvv0RKSgp++ctfYtu2bbjnnnvsKrNv3z4cP34c58+fR11dHaZOnYqFCxf2+Md0JyzLQqPRQK/XIyg4CE1WDUr4DbhYcwp1F5vA5/BwXeJ0LB4zB35i93wOhLgDDofTY45uDoeD6Ojofh+TmpoKk8kEs9nc46c7+UkkEoSEhMBiscBisdi2d894ZTAYbEOULhcREWFLsHl5eTCZTD22i0QiTJ3a1TmxqKjINqTp8p/k5GSIRCK0traiqqoKHA6nR6IODg6GUqmExWJBVVUVGIaxbWcYBiKRCP7+/gCAtrY2WCyWXmW6Pxe7z8GV27uP1f18qTY/MpyWYE+cOAGVSoWUlK7ri1lZWXjrrbd6JNj+yuzevRurV68Gj8dDZGQkZs6ciX379uGWW25xVsgDYlkWJosZFtYCg9kIdX0NGtub0KRpQXVzHao09Wg1acFKuTBau/4R4/xVWJa6ADNixts9kwkhZHB4PF6/M1F1Tw95NQqFAnPmzLEl4O6fyzthJSYm2u63Wq2wWq09aq9SqRQmk8m2rfunO5kZjUa0tbXBarWCZVnb7+4e1xaLBZcuXeoz9u4Ee/HiRWi1PSfaZxgGc+bMAQBUVlaioqKi1z7GjRsHf39/tLW1ITc31/a47h+VSoW4uK4VeLKzs21xd8culUqRmto1hLCkpAStra09ZgtjGAYpKSng8/loamqyTQd7eZmIiAj4+/vDZDKhuLi4x7bu1yA8PBwAUF5ebvsy0729u8UB6BqV0d7e3usYoaGhEIlE0Ol0aGxs7HWeFAqF7QvTSHBaglWr1bYes0DX9ZQrvyH2V0atVvdIpn093ple2r8JuSVnYWVZsGBhZVmYrWbweDwolF0vUFtb28/XixjwuFzIxFLEhUYhyj8c8YFRyAhPsmuuTkKI6zEM02+iDgkJ6ffxkZGRfc4vfvnjr9xHd40SAPh8PqZNm9Yj+V6ZxBMTE2017+4ylwsMDIRAIADLsj3KdLcICIVCqFSqHjN5sSzb45q5TCbrtf3yLxrdCbV725XPw2w2o7Ozs9f27rHW3RPuXPlYq9VqS7C1tbW2sdfdeDyeLcG2tLT0mQ+6Vyjr7OxESUlJr+0xMTHekWCBns0QV74R7Cljz+M3btyIjRs32m63tLQMKdYrxQdGwaTRdzWvMF3NLHwOD1KxBCGBwRDwBOBZGShEMgTLA+AvVSJI4k9NL4QQu13+ecEwzIDTU3b3qu5ve39lxGJxnyt4Xa67RfFqusc/X033tJxXIxKJMHPmzH73MWXKlF4J+PIcEBcXh9jY2F7bur8c+fn52Zru+9o+Upx2tKioqB5NFWq12taV354yfW2bMmVKr+OsW7cO69ats91OTk52SPwr0q8H0q93yL4IIYQMzpVNyJcbqGNZd2c1V3PaasyZmZmoqqpCYWEhAGDz5s1YtmyZ3WWWLVuGf//737BYLKiursbhw4exYMECZ4VLCCGEOJTTEiyXy8WmTZuwfPlyJCQkQCKRYNWqVTh58iQWL17cbxkAuO666zBlyhSMGTMGc+bMwauvvuq2PYgJIYSQKzHs1S5ueqjk5GRbjZgQQghxpv5yjtNqsIQQQogvowRLCCGEOAElWEIIIcQJKMESQgghTkAJlhBCCHECSrCEEEKIE1CCJYQQQpyAEiwhhBDiBF430YRCoeg157G9WlpabMtCkf7RubIfnSv70bmyH50r+znzXKnVatvSeVfyugQ7HDQLlP3oXNmPzpX96FzZj86V/Vx1rqiJmBBCCHECSrCEEEKIE1CCvczl68qS/tG5sh+dK/vRubIfnSv7uepc0TVYQgghxAmoBksIIYQ4ASVYQgghxAkowf5s//79SE5ORkJCAtasWQOz2ezqkNxSZWUl5s2bh7FjxyI1NRVPPfWUq0PyCA888AB4PJ6rw3BrWq0Wd911F0aPHo2kpCS8++67rg7JbX3zzTfIyMhARkYGpk+fjnPnzrk6JLfx4IMPQqVS9fp/e/zxx5GQkIDRo0fjk08+GZFYKMECsFgsyMrKwq5du1BcXAytVott27a5Oiy3xOPx8Ne//hXnzp1DTk4ODh06hC+++MLVYbm1Q4cOoaOjw9VhuL3169cjNTUVRUVFOHfuHH7xi1+4OiS3dd999+HDDz9Ebm4uVq9ejaefftrVIbmNW2+9FadOnepx3759+3D8+HGcP38e+/fvx6OPPgqNRuP0WCjBAjhx4gRUKhVSUlIAAFlZWdi9e7eLo3JP4eHhyMzMBAAIBAKkp6ejvLzcxVG5L4PBgD/84Q/429/+5upQ3JpGo8HevXuxfv16AADDMAgJCXFxVO6LYRjb7EFtbW0IDw93cUTuY+bMmQgNDe1x3+7du7F69WrweDxERkZi5syZ2Ldvn9NjoTYrdE11FRUVZbsdHR0NtVrtwog8Q1NTEz777LMReaN6queffx5ZWVkIDg52dShu7dKlSwgNDcVvfvMb/PTTT4iKisIbb7yB2NhYV4fmlrZt24YbbrgBYrEYUqkUR44ccXVIbk2tVuOWW26x3R6pz3iqwf6MYRjb3zRyaWAGgwHLly/H+vXrMXbsWFeH45by8vKQnZ2Ne+65x9WhuD2TyYTc3FzcdNNNyMnJwY033og1a9a4Oiy3ZLFY8Je//AX79+9HZWUlHn/8cdx1112uDsvtueIznhIsgKioKFRUVNhuq9XqIS8Y4AssFgvuuOMOZGZm4tFHH3V1OG7ryJEjKCwsRFxcHGJjY2GxWBAbG4uWlhZXh+Z2oqKiEBAQgEWLFgEAbr/9duTk5Lg4Kvd0+vRptLe3Iy0tDQBw55134sCBA64Nys256jOeEiyAzMxMVFVV2SaD3rx5M5YtW+biqNzXfffdB4VCgZdfftnVobi1+++/H9XV1SgrK0NZWRm4XC7KyspoBZQ+hIaGIjU1FSdPngQAfPfdd7Y+EaSnyMhIXLhwAVVVVQC6ehRTK1L/li1bhn//+9+wWCyorq7G4cOHsWDBAqcfl67BAuByudi0aROWL18Oo9GI2bNnY9WqVa4Oyy0dOXIEmzdvRmpqKsaPHw8AWLNmDR566CEXR0Y83T//+U9kZWWho6MDfn5+eO+991wdklsKDw/HK6+8ggULFoDH40Emk+H99993dVhu49e//jW++uorWCwWqFQq3HDDDXj33Xfx3XffYcyYMWAYBq+++irkcrnTY6GpEgkhhBAnoCZiQgghxAkowRJCCCFOQAmWEEIIcQJKsIQQQogTUIIlhBBCnIASLCEezJEr9Dz77LN44YUXBixXVlaGhIQEhx2XEG9FCZYQQghxAkqwhHiJ5cuXIzMzE6mpqT2msFy9ejXuv/9+zJ8/HzExMfjoo4/wwgsvYPz48Zg0aRJqa2ttZS9cuIDZs2dj9OjReOyxx2z3f//99xg7diwmTJiAf/3rX7b7KysrMWfOHEyYMAFpaWn44IMPRubJEuIBKMES4iXeffddnDx5Enl5eSgtLcW3335r21ZVVYV9+/bhyy+/RFZWFhISEnD69GnMnTu3x8Lm2dnZ2Lt3L86ePYujR49i7969MBgMWL16NXbt2oWcnBwYjUZb+aCgIHzzzTfIycnBkSNH8Nxzz6G1tXUknzYhbosSLCFe4l//+hfGjx+PjIwMHD9+HPn5+bZtN910EzgcDtLS0qDX622LmWdkZKC0tNRW7uabb4ZCoYBAIMCtt96KgwcP4vz584iIiEBqaioA9JhG1Gw2Y926dUhLS8OsWbNQU1OD4uLiEXrGhLg3mouYEC9w8OBBfPrpp/jvf/8LuVyO3/72t9Dr9bbtQqEQQNeSXQzD2G5zOByYzear7pdhmH6X9nrttdcgFouRm5sLLpeLiRMn9jguIb6MarCEeIH29nb4+flBLpejqakJn3766ZD289lnn6G9vR1GoxE7d+7E7NmzMXbsWFRXV+Ps2bMAuhb7vvy4YWFh4HK5yM7OxpkzZxzyfAjxBpRgCfEC119/PWQyGVJSUnDnnXdizpw5Q9rP7NmzccsttyAtLQ3Tp0/HkiVLIBQKsWXLFqxYsQLTp0+HUqm0lf/Nb36DPXv2YNKkSXj77bcxadIkRz0lQjweraZDCCGEOAHVYAkhhBAnoARLCCGEOAElWEIIIcQJKMESQgghTkAJlhBCCHECSrCEEEKIE1CCJYQQQpyAEiwhhBDiBP8PeDZhvkGduqAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "posterior_lam.plot(color='C5', label='All complete',\n", " linestyle='dashed')\n", "posterior_lam2.plot(color='C2', label='Some censored')\n", "\n", "decorate(xlabel='lambda',\n", " ylabel='PDF', \n", " title='Marginal posterior distribution of lambda')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The distribution with some incomplete data is substantially wider.\n", "\n", "As an aside, notice that the posterior distribution does not come all the way to 0 on the right side.\n", "That suggests that the range of the prior distribution is not wide enough to cover the most likely values for this parameter.\n", "If I were concerned about making this distribution more accurate, I would go back and run the update again with a wider prior.\n", "\n", "Here's the posterior marginal distribution for $k$:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.139823Z", "iopub.status.busy": "2021-04-16T19:37:37.139316Z", "iopub.status.idle": "2021-04-16T19:37:37.272916Z", "shell.execute_reply": "2021-04-16T19:37:37.272485Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAABUxklEQVR4nO3deXyU1b0/8M8z+5p9JQshBIQEQqAR0aoILohafxVRaxWroFRFr3bT3upVr7etta16tdINRS3idava1utt3bAFVAwiO7IHnGxkmWSWzD7n90eYMTHbzDMzmUnyeb9evOpkznnmOwOdb855zvkeSQghQERERHGlSHYAREREYxETLBERUQIwwRIRESUAEywREVECMMESERElABMsERFRAjDB0rhkMpmwa9euZIcRV/F8T2VlZXjjjTcibl9TU4Nnn30WALB+/XqcccYZcYljoOtFG9twNm7ciOLi4rhdL1orV65EVlYWCgoK+j1XX18PSZLQ2dk58oFRzJhgKWHOOeccaLVamEwmZGZmYv78+airq4v5mv/93/8dc2wOhwMzZ86M+TqpJFXe0zXXXIMPP/xw2HbPPvssampq4na9SAyUsM466yxYLJa4XD9amzdvxquvvoqjR4+iubk5KTFQ4jDBUkI9/PDDcDgcaGpqwpw5c/DNb34zqfH4/f6Y+gshEAgE4hRN6r5mqoj17yvVHT16FKWlpUhPT092KJQATLA0InQ6HVasWIHGxka0t7ejpaUFV155JXJzc1FaWop77rkn/GXa0dGByy67DFlZWcjIyMDXvvY1HDt2DD/4wQ+wceNG3H333TCZTFi8eDGAnpHbbbfdhtLSUuTl5eG6665DV1cXgC9HLM888wwqKipQVFQEAJAkCdu3bwfQk8AeeeQRTJ48GVlZWbjwwgtx5MiRcOxlZWV46KGHMG/ePBgMBuzdu7ff+zvnnHNw991349xzz4XRaMS8efPQ0NCABx54ALm5uSguLsbrr78ebv/222+jtrYW6enpKCwsxK233gqXyzXka+7Zswfz5s2D2WzGggULcNddd+Gcc84J9+n9nh544AF84xvfwG233YaMjAyUlpbipZdeivj1h/Pkk0+ipKQE2dnZuOeee/o899WR6aOPPorS0lKYzWaUlZXhqaeewmeffYabb74Zu3btgslkgslkwvHjx/HAAw/gkksu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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "posterior_k.plot(color='C5', label='All complete',\n", " linestyle='dashed')\n", "posterior_k2.plot(color='C12', label='Some censored')\n", "\n", "decorate(xlabel='k',\n", " ylabel='PDF', \n", " title='Posterior marginal distribution of k')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example, the marginal distribution is shifted to the left when we have incomplete data, but it is not substantially wider.\n", "\n", "In summary, we have seen how to combine complete and incomplete data to estimate the parameters of a Weibull distribution, which is useful in many real-world scenarios where some of the data are censored.\n", "\n", "In general, the posterior distributions are wider when we have incomplete data, because less information leads to more uncertainty.\n", "\n", "This example is based on data I generated; in the next section we'll do a similar analysis with real data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Light Bulbs\n", "\n", "In 2007 [researchers ran an experiment](https://www.researchgate.net/publication/225450325_Renewal_Rate_of_Filament_Lamps_Theory_and_Experiment) to characterize the distribution of lifetimes for light bulbs.\n", "Here is their description of the experiment:\n", "\n", "> An assembly of 50 new Philips (India) lamps with the rating 40 W, 220 V (AC) was taken and installed in the horizontal orientation and uniformly distributed over a lab area 11 m x 7 m.\n", ">\n", "> The assembly was monitored at regular intervals of 12 h to look for failures. The instants of recorded failures were [recorded] and a total of 32 data points were obtained such that even the last bulb failed. " ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.276799Z", "iopub.status.busy": "2021-04-16T19:37:37.276346Z", "iopub.status.idle": "2021-04-16T19:37:37.278661Z", "shell.execute_reply": "2021-04-16T19:37:37.278236Z" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "download('https://gist.github.com/epogrebnyak/7933e16c0ad215742c4c104be4fbdeb1/raw/c932bc5b6aa6317770c4cbf43eb591511fec08f9/lamps.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can load the data into a `DataFrame` like this:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.282359Z", "iopub.status.busy": "2021-04-16T19:37:37.281849Z", "iopub.status.idle": "2021-04-16T19:37:37.291574Z", "shell.execute_reply": "2021-04-16T19:37:37.292000Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
hfK
i
00050
1840248
2852147
3936146
4960145
\n", "
" ], "text/plain": [ " h f K\n", "i \n", "0 0 0 50\n", "1 840 2 48\n", "2 852 1 47\n", "3 936 1 46\n", "4 960 1 45" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('lamps.csv', index_col=0)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Column `h` contains the times when bulbs failed in hours; Column `f` contains the number of bulbs that failed at each time.\n", "We can represent these values and frequencies using a `Pmf`, like this:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.296777Z", "iopub.status.busy": "2021-04-16T19:37:37.296262Z", "iopub.status.idle": "2021-04-16T19:37:37.298609Z", "shell.execute_reply": "2021-04-16T19:37:37.298966Z" } }, "outputs": [ { "data": { "text/plain": [ "50" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from empiricaldist import Pmf\n", "\n", "pmf_bulb = Pmf(df['f'].to_numpy(), df['h'])\n", "pmf_bulb.normalize()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because of the design of this experiment, we can consider the data to be a representative sample from the distribution of lifetimes, at least for light bulbs that are lit continuously." ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "The average lifetime is about 1400 h." ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.302433Z", "iopub.status.busy": "2021-04-16T19:37:37.301719Z", "iopub.status.idle": "2021-04-16T19:37:37.305072Z", "shell.execute_reply": "2021-04-16T19:37:37.304694Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "1413.84" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf_bulb.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assuming that these data are well modeled by a Weibull distribution, let's estimate the parameters that fit the data.\n", "Again, I'll start with uniform priors for $\\lambda$ and $k$:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.309226Z", "iopub.status.busy": "2021-04-16T19:37:37.308759Z", "iopub.status.idle": "2021-04-16T19:37:37.310609Z", "shell.execute_reply": "2021-04-16T19:37:37.311018Z" } }, "outputs": [], "source": [ "lams = np.linspace(1000, 2000, num=51)\n", "prior_lam = make_uniform(lams, name='lambda')" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.315203Z", "iopub.status.busy": "2021-04-16T19:37:37.314719Z", "iopub.status.idle": "2021-04-16T19:37:37.316795Z", "shell.execute_reply": "2021-04-16T19:37:37.317307Z" } }, "outputs": [], "source": [ "ks = np.linspace(1, 10, num=51)\n", "prior_k = make_uniform(ks, name='k')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For this example, there are 51 values in the prior distribution, rather than the usual 101. That's because we are going to use the posterior distributions to do some computationally-intensive calculations.\n", "They will run faster with fewer values, but the results will be less precise.\n", "\n", "As usual, we can use `make_joint` to make the prior joint distribution." ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.321446Z", "iopub.status.busy": "2021-04-16T19:37:37.320851Z", "iopub.status.idle": "2021-04-16T19:37:37.322797Z", "shell.execute_reply": "2021-04-16T19:37:37.323250Z" } }, "outputs": [], "source": [ "prior_bulb = make_joint(prior_lam, prior_k)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although we have data for 50 light bulbs, there are only 32 unique lifetimes in the dataset. For the update, it is convenient to express the data in the form of 50 lifetimes, with each lifetime repeated the given number of times.\n", "We can use `np.repeat` to transform the data." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.327777Z", "iopub.status.busy": "2021-04-16T19:37:37.327199Z", "iopub.status.idle": "2021-04-16T19:37:37.330359Z", "shell.execute_reply": "2021-04-16T19:37:37.330844Z" } }, "outputs": [ { "data": { "text/plain": [ "50" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_bulb = np.repeat(df['h'], df['f'])\n", "len(data_bulb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can use `update_weibull` to do the update." ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.334786Z", "iopub.status.busy": "2021-04-16T19:37:37.334174Z", "iopub.status.idle": "2021-04-16T19:37:37.363731Z", "shell.execute_reply": "2021-04-16T19:37:37.364153Z" } }, "outputs": [], "source": [ "posterior_bulb = update_weibull(prior_bulb, data_bulb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what the posterior joint distribution looks like:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.376746Z", "iopub.status.busy": "2021-04-16T19:37:37.372073Z", "iopub.status.idle": "2021-04-16T19:37:37.531370Z", "shell.execute_reply": "2021-04-16T19:37:37.530980Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "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LvX1wfdQKFCYV4jC3EIUPPR6MK1WaWDnZAOH+nVRz70O6rnX1X7vUL8O6tWvCwuryl3rSvRvoO+c4XnxRP9SRsZGcPVyhquXM4L6tdS+L4RAelImMpOzUFJUguLCEu3Xh7+HEKhlWQtmD70enealM0RPjr89RM8YhUIBeydb2DvxTF0iOfEmn0RERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAHZ7kXcrVs3JCcnQwgBLy8vrFy5ElZWVnKVQ0REpFeybcFu27YNFy5cwMWLF+Hu7o5vvvlGrlKIiIj0TraAtba2BgBoNBrk5+fLVQYREZEkZD0G27dvXzg4OODq1at4//335SyFiIhIr2QN2F9++QVJSUlo06YNlixZUmpeaGgolEql9pWRkSFTlURERFWnEEIIuYu4fv06Bg4ciMuXL5fbRqlUIjIyshqrIiKi54m+c0aWLdjs7GwkJiZqp7dv3w5fX185SiEiIpKELJfpZGVlYcCAASgsLIRCoUDTpk2xaNEiOUohIiKShCwB6+bmhr///luOromIiKoF7+REREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSkCVgY2Nj0bVrV3h7e8PX1xezZ8+WowwiIiLJyBKwRkZGmDdvHq5evYrw8HAcP34cv/zyixylEBERScJIjk6dnJzg5OQEADAxMUGzZs1w9+5dOUohIiKShOzHYNPS0rBr1y4EBwfLXQoREZHeyLIF+0BRUREGDRqE9957D97e3qXmhYaGIjQ0VDudkZFR3eURERE9MYUQQsjRsVqtxpAhQ9CgQQMsWLCgwvZKpRKRkZHVUBkRET2P9J0zsu0iHj9+PKysrDB//ny5SiAiIpKMLAEbFhaGlStX4u+//0aLFi3g7++P77//Xo5SiIiIJCHLMdh27dpBpj3TRERE1UL2s4iJiIieRQxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUi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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_contour(posterior_bulb)\n", "decorate(title='Joint posterior distribution, light bulbs')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To summarize this joint posterior distribution, we'll compute the posterior mean lifetime." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Posterior Means\n", "\n", "To compute the posterior mean of a joint distribution, we'll make a mesh that contains the values of $\\lambda$ and $k$." ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.534652Z", "iopub.status.busy": "2021-04-16T19:37:37.534197Z", "iopub.status.idle": "2021-04-16T19:37:37.536544Z", "shell.execute_reply": "2021-04-16T19:37:37.536146Z" } }, "outputs": [], "source": [ "lam_mesh, k_mesh = np.meshgrid(\n", " prior_bulb.columns, prior_bulb.index)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now for each pair of parameters we'll use `weibull_dist` to compute the mean." ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.540341Z", "iopub.status.busy": "2021-04-16T19:37:37.539900Z", "iopub.status.idle": "2021-04-16T19:37:37.543970Z", "shell.execute_reply": "2021-04-16T19:37:37.544466Z" } }, "outputs": [ { "data": { "text/plain": [ "(51, 51)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "means = weibull_dist(lam_mesh, k_mesh).mean()\n", "means.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is an array with the same dimensions as the joint distribution.\n", "\n", "Now we need to weight each mean with the corresponding probability from the joint posterior." ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.549477Z", "iopub.status.busy": "2021-04-16T19:37:37.548505Z", "iopub.status.idle": "2021-04-16T19:37:37.551293Z", "shell.execute_reply": "2021-04-16T19:37:37.550670Z" } }, "outputs": [], "source": [ "prod = means * posterior_bulb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we compute the sum of the weighted means." ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.556060Z", "iopub.status.busy": "2021-04-16T19:37:37.555354Z", "iopub.status.idle": "2021-04-16T19:37:37.559241Z", "shell.execute_reply": "2021-04-16T19:37:37.558666Z" } }, "outputs": [ { "data": { "text/plain": [ "1412.7242774305005" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prod.to_numpy().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Based on the posterior distribution, we think the mean lifetime is about 1413 hours.\n", "\n", "The following function encapsulates these steps:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.564528Z", "iopub.status.busy": "2021-04-16T19:37:37.563826Z", "iopub.status.idle": "2021-04-16T19:37:37.566786Z", "shell.execute_reply": "2021-04-16T19:37:37.566099Z" } }, "outputs": [], "source": [ "def joint_weibull_mean(joint):\n", " \"\"\"Compute the mean of a joint distribution of Weibulls.\"\"\"\n", " lam_mesh, k_mesh = np.meshgrid(\n", " joint.columns, joint.index)\n", " means = weibull_dist(lam_mesh, k_mesh).mean()\n", " prod = means * joint\n", " return prod.to_numpy().sum()" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "## Incomplete Information\n", "\n", "The previous update was not quite right, because it assumed each light bulb died at the instant we observed it. \n", "According to the report, the researchers only checked the bulbs every 12 hours. So if they see that a bulb has died, they know only that it died during the 12 hours since the last check.\n", "\n", "It is more strictly correct to use the following update function, which uses the CDF of the Weibull distribution to compute the probability that a bulb dies during a given 12 hour interval." ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.572709Z", "iopub.status.busy": "2021-04-16T19:37:37.572014Z", "iopub.status.idle": "2021-04-16T19:37:37.574370Z", "shell.execute_reply": "2021-04-16T19:37:37.574922Z" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "def update_weibull_between(prior, data, dt=12):\n", " \"\"\"Update the prior based on data.\"\"\"\n", " lam_mesh, k_mesh, data_mesh = np.meshgrid(\n", " prior.columns, prior.index, data)\n", " dist = weibull_dist(lam_mesh, k_mesh)\n", " cdf1 = dist.cdf(data_mesh)\n", " cdf2 = dist.cdf(data_mesh-12)\n", " likelihood = (cdf1 - cdf2).prod(axis=2)\n", "\n", " posterior = prior * likelihood\n", " normalize(posterior)\n", "\n", " return posterior" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "The probability that a value falls in an interval is the difference between the CDF at the beginning and end of the interval.\n", "\n", "Here's how we run the update." ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.580024Z", "iopub.status.busy": "2021-04-16T19:37:37.579225Z", "iopub.status.idle": "2021-04-16T19:37:37.617913Z", "shell.execute_reply": "2021-04-16T19:37:37.617496Z" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "posterior_bulb2 = update_weibull_between(prior_bulb, data_bulb)" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "And here are the results." ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.637793Z", "iopub.status.busy": "2021-04-16T19:37:37.634750Z", "iopub.status.idle": "2021-04-16T19:37:37.784827Z", "shell.execute_reply": "2021-04-16T19:37:37.785224Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_contour(posterior_bulb2)\n", "decorate(title='Joint posterior distribution, light bulbs')" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "Visually this result is almost identical to what we got using the PDF.\n", "And that's good news, because it suggests that using the PDF can be a good approximation even if it's not strictly correct.\n", "\n", "To see whether it makes any difference at all, let's check the posterior means." ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.789388Z", "iopub.status.busy": "2021-04-16T19:37:37.788691Z", "iopub.status.idle": "2021-04-16T19:37:37.793773Z", "shell.execute_reply": "2021-04-16T19:37:37.794199Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "1412.7242774305005" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "joint_weibull_mean(posterior_bulb)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.799345Z", "iopub.status.busy": "2021-04-16T19:37:37.798512Z", "iopub.status.idle": "2021-04-16T19:37:37.803590Z", "shell.execute_reply": "2021-04-16T19:37:37.804088Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "1406.8171982320873" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "joint_weibull_mean(posterior_bulb2)" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "When we take into account the 12-hour interval between observations, the posterior mean is about 6 hours less.\n", "And that makes sense: if we assume that a bulb is equally likely to expire at any point in the interval, the average would be the midpoint of the interval." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Posterior Predictive Distribution\n", "\n", "Suppose you install 100 light bulbs of the kind in the previous section, and you come back to check on them after 1000 hours. Based on the posterior distribution we just computed, what is the distribution of the number of bulbs you find dead?\n", "\n", "If we knew the parameters of the Weibull distribution for sure, the answer would be a binomial distribution.\n", "\n", "For example, if we know that $\\lambda=1550$ and $k=4.25$, we can use `weibull_dist` to compute the probability that a bulb dies before you return:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.810920Z", "iopub.status.busy": "2021-04-16T19:37:37.810150Z", "iopub.status.idle": "2021-04-16T19:37:37.814082Z", "shell.execute_reply": "2021-04-16T19:37:37.813392Z" } }, "outputs": [ { "data": { "text/plain": [ "0.14381685899960547" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lam = 1550\n", "k = 4.25\n", "t = 1000\n", "\n", "prob_dead = weibull_dist(lam, k).cdf(t)\n", "prob_dead" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If there are 100 bulbs and each has this probability of dying, the number of dead bulbs follows a binomial distribution." ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.818684Z", "iopub.status.busy": "2021-04-16T19:37:37.818078Z", "iopub.status.idle": "2021-04-16T19:37:37.820328Z", "shell.execute_reply": "2021-04-16T19:37:37.819814Z" } }, "outputs": [], "source": [ "from utils import make_binomial\n", "\n", "n = 100\n", "p = prob_dead\n", "dist_num_dead = make_binomial(n, p)" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "And here's what it looks like." ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:37.902574Z", "iopub.status.busy": "2021-04-16T19:37:37.892613Z", "iopub.status.idle": "2021-04-16T19:37:38.033693Z", "shell.execute_reply": "2021-04-16T19:37:38.034038Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAABG50lEQVR4nO3deXhTVf4G8DdL93Rnb0pZSoW00AJlkaWlgAvIJoK4UIRWBUVxQcWf4wguo+My6owyo8MMIogj4rAooiLSsgrDqkgFZS1pqUC3JF2SJjm/P0quLV1I26RZ+n6ep8/TJHf55qbt23PuuefKhBACRERE5FByVxdARETkjRiwRERETsCAJSIicgIGLBERkRMwYImIiJyAAUtEROQEDFiy29tvv41Ro0ZJj1UqFY4ePdqsbc2bNw+LFi1yUGWNc2Td9am5vSVLlmDKlCkO2zYAxMfHY9OmTQ7dZlNd6/PKzs5GWFiY3dtbsWIFkpKSWl4YkRtTuroAcpxRo0bh+++/h4+PD3x8fNCvXz+88cYbGDRokFP2ZzAY7FpuyZIlOHLkCDZs2CA999577zmlJnvYW7dMJsPhw4evGQT2bs8eo0aNwpQpU/Doo49Kzx07dsxh22+ump/X2bNn0b17dxQXFzcpVMm1+Lm1PrZgvcyrr74Kg8GACxcuYMCAAQ22psxmc+sW5oV4DKm5hBCwWCyuLqPJ+DPfNAxYL+Xv74/MzEzk5+ejsLAQs2fPRmZmJm6//XaEhITgH//4B6qqqvDcc8+hZ8+eiIyMxKRJk5Cfny9t49ixYxg6dCiCg4ORlpZW6zWguoV35MgR6fF//vMfJCYmIiQkBDExMVixYgU2bNiAl19+GZs2bYJKpYJKpQIAzJ49W2qlTZo0CS+88EKtbT/wwAOYN28eAFyzzqs1pe5Dhw5h6NChCAkJQbt27TBx4kQAwODBgwEAw4YNg0qlwssvv4yzZ89CJpPhgw8+QGxsLKKiouo9DmazGZmZmQgJCUGvXr2wfv166bVRo0bh7bfflh4fOXIEMpkMALBw4ULs3LkTixYtgkqlwrhx4wAA3bp1q9X6/+ijj9CnTx+EhYVhxIgROHz4cK3t/9///R9uuukmqFQqDBgwoMHu8E8++QRDhw6VHt92223o3Lmz9HjhwoVYsGABgNqfl+3YqNVqqFQqrF69WlrnX//6F6KjoxEZGYmnnnqq3v3W57333kOPHj1w/Phx6TivWrUKsbGxCAsLw+zZs1FVVSUtv2XLFvTv3x+hoaEYMGAAtm7dCgAoKCiAr6+v1KvwzjvvQCaT4fjx4wCAL774Av369QPwezf1iy++iA4dOqBjx461PpurLVmyBBMmTGjws92yZQuSk5MRGhqKzp0748EHH0RFRYX0erdu3fDKK69g6NChCAwMRE5ODlavXo2EhAQEBweja9eu+OMf/4iak+vJZDIsXboUGo0GQUFBSE9PR1FREWbMmIGQkBD0799fem9AdW/KQw89hK5du6JDhw6YNWsWSktLG/3cDh06hLS0NERERCA2NhbLli2r854feOABREREYNGiRThz5gzGjh2L0NBQREREYPjw4SgvL7f7s25TBHmN1NRU8dZbbwkhhCgrKxOPPPKIiImJEUIIcc8994iAgADx9ddfC4vFIsrKysSTTz4pRo8eLfLz84XRaBQLFy4UI0eOFEIIUVVVJXr06CGeeeYZYTQaxZ49e0R4eLhITU2V9gdAHD58WAghxOeffy4iIiLEd999JywWi/jtt9/EoUOHhBBCLF68WEyePLlWrffcc4945JFHhBBCrF27VsTGxkqvGY1GERERIXbt2iWEEI3WebWm1n399deLl156SVgsFlFZWSm2b99e73JCCHHmzBkBQEyZMkUUFxeLsrKyOsstXrxYKBQK8d5774mqqirx+eefCz8/P3Hy5Mk6n5EQQhw+fFjU/DW8+nUhhIiJiRHr168XQgixY8cOoVKpxPbt24XJZBJvvfWWaN++vSgpKZHW79Klizh06JCoqqoS9913X633XlNBQYFQKpVCp9MJq9UqOnToILp16yZycnKEEEIkJSWJdevWCSFqf16241BcXCxtKysrS8jlcrFgwQJRUVEhcnJyRGBgoMjKyqp33x988IFITEwUQgjx3HPPiYSEBKHVamttf8aMGaK0tFTk5eWJqKgo8cEHHwghhDh58qTw9/cX//3vf0VVVZVYu3atCAgIEKdPnxZCCNGnTx+xefNmIYQQU6ZMET179hR///vfhRBCPProo2LBggVSDUqlUrz22mvCZDKJrKwsoVAopM/qatf6bHfs2CEOHTokzGazOHXqlOjdu7d46aWXan2OcXFx4vjx48JsNguj0Sg2b94sTpw4IaxWqzh8+LDo0KGD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dist_num_dead.plot(label='known parameters')\n", "\n", "decorate(xlabel='Number of dead bulbs',\n", " ylabel='PMF',\n", " title='Predictive distribution with known parameters')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But that's based on the assumption that we know $\\lambda$ and $k$, and we don't.\n", "Instead, we have a posterior distribution that contains possible values of these parameters and their probabilities.\n", "\n", "So the posterior predictive distribution is not a single binomial; instead it is a mixture of binomials, weighted with the posterior probabilities.\n", "\n", "We can use `make_mixture` to compute the posterior predictive distribution. \n", "It doesn't work with joint distributions, but we can convert the `DataFrame` that represents a joint distribution to a `Series`, like this:" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:38.037138Z", "iopub.status.busy": "2021-04-16T19:37:38.036652Z", "iopub.status.idle": "2021-04-16T19:37:38.042709Z", "shell.execute_reply": "2021-04-16T19:37:38.042213Z" } }, "outputs": [ { "data": { "text/plain": [ "k lambda\n", "1.0 1000.0 8.146763e-25\n", " 1020.0 1.210486e-24\n", " 1040.0 1.738327e-24\n", " 1060.0 2.418201e-24\n", " 1080.0 3.265549e-24\n", "dtype: float64" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "posterior_series = posterior_bulb.stack()\n", "posterior_series.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is a `Series` with a `MultiIndex` that contains two \"levels\": the first level contains the values of `k`; the second contains the values of `lam`.\n", "\n", "With the posterior in this form, we can iterate through the possible parameters and compute a predictive distribution for each pair." ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:38.059067Z", "iopub.status.busy": "2021-04-16T19:37:38.056752Z", "iopub.status.idle": "2021-04-16T19:37:40.599814Z", "shell.execute_reply": "2021-04-16T19:37:40.600201Z" } }, "outputs": [], "source": [ "pmf_seq = []\n", "for (k, lam) in posterior_series.index:\n", " prob_dead = weibull_dist(lam, k).cdf(t)\n", " pmf = make_binomial(n, prob_dead)\n", " pmf_seq.append(pmf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can use `make_mixture`, passing as parameters the posterior probabilities in `posterior_series` and the sequence of binomial distributions in `pmf_seq`." ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:40.673531Z", "iopub.status.busy": "2021-04-16T19:37:40.638022Z", "iopub.status.idle": "2021-04-16T19:37:40.898812Z", "shell.execute_reply": "2021-04-16T19:37:40.899237Z" } }, "outputs": [], "source": [ "from utils import make_mixture\n", "\n", "post_pred = make_mixture(posterior_series, pmf_seq)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what the posterior predictive distribution looks like, compared to the binomial distribution we computed with known parameters." ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:40.938328Z", "iopub.status.busy": "2021-04-16T19:37:40.915391Z", "iopub.status.idle": "2021-04-16T19:37:41.080448Z", "shell.execute_reply": "2021-04-16T19:37:41.080783Z" }, "scrolled": true, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAABWtUlEQVR4nO3deXhU5d3/8feZmez7BoEsbCFAFggQwyKEgFiLogiiWAVEYvVpUariVvVRXKqitdqnpRu/Kha1KhbXUotLUHBBQBEEBFkCTALZl5lsk5m5f38MMyRkIYFMZhK+r+vKJXPmnDPfnGA+3Ofci6aUUgghhBCiS+k8XYAQQgjRG0nACiGEEG4gASuEEEK4gQSsEEII4QYSsEIIIYQbSMAKIYQQbiABK0Q7goOD2bVrl6fL6JQrr7yS5cuXA7Bp0ybi4+PP+lypqam8//77XVRZ+7qy7tOdfr6cnByef/75Ljv/0aNHCQ4OpqqqqsvOKXo+CVjhcTk5Ofj5+REcHExERARTpkxh69at53zOrvgFajabSU9PP+fzeMrkyZMxGo0d2re1a7Z7925mzpzphsra19G6N27cSHh4eJedr6M0TWPHjh2u14mJiZjNZsLCwrrsM0TPJwErvMKKFSswm80cP36cMWPGcOWVV3q0HqvVek7HK6Ww2WweP4c495+lEGdLAlZ4FX9/f3JzcyksLKSsrIyioiKuueYaYmJiSExM5IEHHnD9wiwvL2f27NlERkYSHh7O2LFjOXLkCMuWLWPTpk3ce++9BAcHM2PGDMDRGr311ltJTEykT58+LFy40HVLLz8/H03TePHFF0lKSiIuLg5o3lJRSvHss88yZMgQIiMj+elPf8qhQ4dctQ8cOJAnn3yS8ePHExgYyJ49e1p8fzk5Odx9993k5OQQEhLChAkT2Lt3b7vnKC4u5vrrr6d///7079+f22+/nYaGBtcx//rXv0hKSiIsLIyf//znzQLl9BaexWLhoYceYsiQIYSEhJCens4333zT5jUbOHAgb7/9No2NjcTExPDZZ581+35SUlJ47bXXAM5Y5+k6U/crr7zC0KFDCQkJIS4ujscee4yysjJmzJhBVVUVwcHBBAcHs2nTJlavXk1GRgYPP/wwsbGxzJs3r9WWbkFBQZs/h9NbqM8//zw5OTkAZGVlATBx4kSCg4N54oknXH9/KisrAWhsbOTXv/41iYmJxMTEMG/ePEpKSpqd/y9/+QtpaWmEhoZyxRVXyO3l3kgJ4WFTpkxRzz33nFJKqZqaGvWrX/1KDRgwQCml1LRp09R1112nTCaTys/PVykpKeo3v/mNUkqpX//612rmzJmqpqZGWa1W9e2336qysrIW53S6+uqr1c9+9jNVUVGhzGazuvbaa9X8+fOVUkodPnxYAerKK69UFRUVqqamRimlFKC+/fZbpZRSL730kurfv7/auXOnqqurU3feeacaMWKEamxsVEopNWDAAJWcnKx++OEHZbVaVUNDQ6vfa0REhPriiy9UQ0ODuv/++9XQoUPbPEd9fb0aN26cuvPOO1VNTY0qLS1VOTk56sEHH1RKKbV//37l6+ur3n33XdXY2Kj+/Oc/K71erx5++GGllFJ5eXkqLCzM9fl33HGHGjt2rNq/f7+y2+3qhx9+UPn5+W1eswEDBqi33npLKaXUkiVL1E033eR6b+vWrSo0NFTV1tYqu93ebp2n60zdZrNZGQwG9emnnyqllKqoqFBff/11q9+fUkq9+OKLSq/Xq0cffVQ1NDSompqaFvud6efQ9OeulFLPPfecmjJliuv16e87//5UVFQopZR65JFHVFpamjpy5IgymUxq3rx56uKLL252fE5Ojjpx4oSqqKhQo0ePdn3voveQgBUeN2XKFOXv76/CwsJU37591SWXXKK+++47ZTQaFaCOHz/u2veVV15RQ4cOVUop9dBDD6kJEyaoHTt2tHrOpmFRXFysdDqdK4CVcvyS9/HxUVar1fULsukvTaWa/yKdPn26euqpp1zv1dfXq5CQEPX5558rpRxhdHpAtVbXL37xC9dri8WiQkND1aZNm1o9x9dff60iIyOVzWZzbduwYYMaPHiwUkqpRx99VM2YMaPZZwwfPrzVoLLb7SowMNAVVK3V1l7AbtmyRYWFham6ujqllFJLly5Vixcv7lCdp+tM3WazWQUEBKi//OUvqqqqqtkxbQXs6bW0FrDt/RzONWCTkpLUa6+95nq/oKBAAaqgoMB1/H/+8x/X+48//riaOXNmywslejSDJ1rNQpzuySef5Pbbb2+2bcuWLfj7+xMbG+vaNnjwYFdnlbvvvpv6+nquueYaqqqqmDdvHk899RQBAQEtzp+fn4/dbmfw4MHNtut0Ok6cOOF6nZiY2GaNRqORgQMHul77+fnRv3//Zp1n2jveacCAAa4/+/j40K9fPwoKClo9R35+PpWVlURGRrq2qSbPZgsLC5ud7/TzN1VSUkJtbS1Dhw49Y42tycrKIjY2lnfffZc5c+bw2muv8cYbb3SoztN1pu6goCDee+89nn32We655x7S09N57LHHmDp1apu1xsXFodO1/wTsTD+Hc3H635X+/fvj5+eH0Wikf//+AM3+XgcFBWEymbrks4X3kGewwmvFx8dTX19PUVGRa9vhw4ddwy2Cg4NZsWIF+/bt48svv+Tjjz/mT3/6E0CLX64JCQnodDoKCwuprKx0fdXX17uet7Z23On15Ofnu15bLBYKCwubDf840y91gCNHjrj+3NjYyPHjx9usISEhgT59+jSruaqqCrPZDDh+cTc9HziGjLQmJiaGwMBADhw40Or7Hal9wYIFrFmzhg8++ICAgACys7M7VOfpOlM3wEUXXcT69espLS3l6quvZvbs2djt9jZrPtefQ1BQELW1ta73jx8/3uxYTdPaPffpf1dOnDhBQ0NDlw49Et5PAlZ4rbi4OKZOncpdd91FTU0NR48e5YknnuCGG24A4P3332f//v3Y7XZCQ0Px8fHBYHDclOnbty8HDx50nSs2NpYrr7ySW2+9ldLSUsDxS++tt97qcD3z58/nj3/8I3v27KGhoYEHH3yQuLg4V6eXjnr99dfZsmULFouFRx99lJiYGMaPH9/qvhdccAGJiYk8+OCDmEwmlFIcOXKE//znPwBcc801fPzxx/z73//GarWyatUq9u/f3+q5NE3j5z//OcuWLePAgQMopdi3b58raE6/Zq1ZsGABGzZs4LnnnmP+/PmuoDlTnafrTN1FRUW89dZbmEwmDAYDoaGh6PV6V80mk6lZB6KOau/nMGbMGNasWYPVamXHjh2sWbOm2bFnulbz58/niSee4NixY5jNZu68806mT5/uar2K84MErPBqr776KnV1dQwYMIALL7yQyy67jHvuuQeAAwcO8NOf/pSQkBBSUlKYMGECv/jFLwC4/fbb+eijjwgPD3eN41y9ejXh4eFccMEFhIaGMnnyZLZv397hWhYuXMhtt93GzJkziY2N5bvvvuO9995zhXpHLV68mHvvvZfIyEg+/PBD3n777TbPodfree+99ygoKGDEiBGEhYVx2WWXuVqhw4YNY82aNSxdupSoqCi2bNnCT3/60zY/e8WKFVx00UVMnz6d0NBQrr76asrLy4HWr9npEhMTmThxIp988gkLFizocJ2n60zddrud3//+9yQkJBAWFsbKlSt588030el0DBs2jNzcXEaMGEF4eDibN29u83s/XXs/hz/84Q98+eWXhIeHc++997r+Uef02GOPsXTpUiIiInjqqadanPvXv/41l1xyCRMmTGDgwIE0Njby8ssvd7g20TtoSsmC60J0l5ycHK688soWz5uFEL2PtGCFEEIIN5CAFUIIIdxAbhELIYQQbiAtWCGEEMINJGCFEEIIN+h1MzmFhobKYG4hhBDdwmg0Ul1d3ep7vS5g4+PjW13FRAghhOhqKSkpbb4nt4iFEEIIN5CAFUIIIdyg190iFkKIpmQkougKZ1rgoTUSsEKIXslut3Ps2LFmq+IIcbYCAwNdq3J1lASsEKJXKikpQdM0kpOTO/VLUYjT2e12CgoKKCkpoW/fvh0+TgJWCNErVVVVMWDAANfSdkKcLb1eT9++fTly5EinAlb+WSeE6HWUUthsNnx8fDxdiuglfHx8sNlsnXqmLwErhOi1zqZjihCtOZu/SxKwQgjhRs5F3EXH5efn849//MPTZZwzCVghhBCdYrPZ3Hr+sw1Yd9fVWRKw5wmlFLsOFcuYQCE8pLa2lksvvZTf//73AAwcOJCHH36YCy64gOTkZL744gvXvg899BBpaWmkpaXx6KOPAvDWW29x4403AvD++++j1+upqKgAYOjQoZSUlLB69WpmzZrFFVdcQXJyMgsXLmy1luXLl7NgwQKys7NJTk7mrrvucr132223ccEFF5Cens78+fNpaGhwHZObm8uMGTO46KKLqKur4+KLL2bs2LGkpaXxzDPPuM6Rk5PDnXfeydSpUxk0aBCffPIJt912G+np6UyfPt01dKq8vJxrr72WrKwsRo0axZtvvgnAHXfcwZYtW8jIyOC+++4DYO3atYwbN47Ro0dz1VVXUVVV5fqsBx54gJycHO666y4+//xzxo4dS0ZGBmlpaWzZsuUcf3JnT+5dnCe+2F3A717/iltnZzJ1zEBPlyNEt1r51jaOFbc+Ifu5SOgTypLZmWfcr7KykiuuuILFixezaNEi1/bAwEC2bt3K2rVrefjhh/nwww959913+eijj9i2bRsA2dnZZGVlMWXKFFcQfvrp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lJJr1Yaf//znasWKFUoppex2uyoqKpJr1YaEhAS1Z88epZRSf/3rX9XcuXPlWp20adMmdeLECdf/b0q1///cz372M/XXv/5VKaXUypUr1cKFC7usFmnBnmbr1q3Ex8eTmpoKQG5uLuvWrfNwVd6jX79+ZGZmAuDr68vIkSM5cuQI69atY9GiRRgMBuLi4pg0aRIbNmzwcLWe19DQwH333cdvf/tb1za5Vi2ZTCbef/997rzzTgA0TaNPnz5yrdqgaZpr9qCqqir69esn1+qkSZMm0bdv32bb2ro2SinWr1/PwoULAbjhhht49913u6wWCdjTGI1GEhISXK8TExMxGo0erMh7lZWV8fbbbzN9+nS5bm149NFHyc3NJSYmxrVNrlVLhw4dom/fvtx6662MGTOGWbNmkZ+fL9eqDWvWrOGyyy4jISGBv//97zz88MNyrdrR1rUpKysjKCgIf39/AIKCgvD19aWqqqpLPlcCthWaprn+rGQUU6saGhqYO3cud955JyNGjADkup1u586dbNmyhRtvvLHFe3KtmmtsbGTHjh3MmjWLb775hssvv5zFixcDcq1OZ7PZePLJJ8nLy+PYsWPcc889rhaYXKu2tXVtmm4//b1zJQF7moSEBI4ePep6bTQau2zxgN7CZrNx/fXXk5mZyR133AHIdWvN559/zp49exg0aBADBw7EZrMxcOBAuVatSEhIIDIykhkzZgBw3XXX8c0338i1asW3335LdXU16enpAMyfP5+NGzfKtWpHW9cmKioKs9lMfX09ALW1tTQ2NhIWFtY1H9xlT3N7CavVqgYPHqx2796tlFJq3rx50snpNIsXL1Y33nijstvtrm0bNmxQ2dnZymq1qoKCApWQkHBedrBoj7PThVyr1mVnZ7s60L399ttq4sSJcq1aUVhYqKKiopTRaFRKKfXOO++osWPHyrU6TdNOTu1dm+uuu0797W9/U0op9ac//alLOzlJwLbi448/ViNGjFBDhgxRN954o2psbPR0SV5j8+bNClBpaWlq1KhRatSoUer3v/+9Ukqpu+++Ww0ZMkQlJSWpN954w8OVep+m/8PLtWpp9+7davz48So9PV1NnjzZ1UtWrlVLL7zwgkpJSVEjR45UEydOVDt27FBKybVSSqmbb75ZxcXFKUDFxcWpm2++WSnV9rU5evSomjRpkho6dKia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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dist_num_dead.plot(label='known parameters')\n", "post_pred.plot(label='unknown parameters')\n", "decorate(xlabel='Number of dead bulbs',\n", " ylabel='PMF',\n", " title='Posterior predictive distribution')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The posterior predictive distribution is wider because it represents our uncertainty about the parameters as well as our uncertainty about the number of dead bulbs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "This chapter introduces survival analysis, which is used to answer questions about the time until an event, and the Weibull distribution, which is a good model for \"lifetimes\" (broadly interpreted) in a number of domains.\n", "\n", "We used joint distributions to represent prior probabilities for the parameters of the Weibull distribution, and we updated them three ways: knowing the exact duration of a lifetime, knowing a lower bound, and knowing that a lifetime fell in a given interval.\n", "\n", "These examples demonstrate a feature of Bayesian methods: they can be adapted to handle incomplete, or \"censored\", data with only small changes. As an exercise, you'll have a chance to work with one more type of censored data, when we are given an upper bound on a lifetime.\n", "\n", "The methods in this chapter work with any distribution with two parameters.\n", "In the exercises, you'll have a chance to estimate the parameters of a two-parameter gamma distribution, which is used to describe a variety of natural phenomena.\n", "\n", "And in the next chapter we'll move on to models with three parameters!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "**Exercise:** Using data about the lifetimes of light bulbs, we computed the posterior distribution from the parameters of a Weibull distribution, $\\lambda$ and $k$, and the posterior predictive distribution for the number of dead bulbs, out of 100, after 1000 hours.\n", "\n", "Now suppose you do the experiment: You install 100 light bulbs, come back after 1000 hours, and find 20 dead light bulbs.\n", "Update the posterior distribution based on this data.\n", "How much does it change the posterior mean?" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "tags": [ "hide-cell" ] }, "source": [ "Suggestions:\n", "\n", "1. Use a mesh grid to compute the probability of finding a bulb dead after 1000 hours for each pair of parameters.\n", "\n", "2. For each of those probabilities, compute the likelihood of finding 20 dead bulbs out of 100.\n", "\n", "3. Use those likelihoods to update the posterior distribution." ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.085218Z", "iopub.status.busy": "2021-04-16T19:37:41.084757Z", "iopub.status.idle": "2021-04-16T19:37:41.088304Z", "shell.execute_reply": "2021-04-16T19:37:41.088622Z" } }, "outputs": [ { "data": { "text/plain": [ "(51, 51)" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "t = 1000\n", "\n", "lam_mesh, k_mesh = np.meshgrid(\n", " prior_bulb.columns, prior_bulb.index)\n", "prob_dead = weibull_dist(lam_mesh, k_mesh).cdf(t)\n", "prob_dead.shape" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.093414Z", "iopub.status.busy": "2021-04-16T19:37:41.092096Z", "iopub.status.idle": "2021-04-16T19:37:41.095793Z", "shell.execute_reply": "2021-04-16T19:37:41.096159Z" } }, "outputs": [ { "data": { "text/plain": [ "(51, 51)" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "from scipy.stats import binom\n", "\n", "k = 20\n", "n = 100\n", "likelihood = binom(n, prob_dead).pmf(k)\n", "likelihood.shape" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.117695Z", "iopub.status.busy": "2021-04-16T19:37:41.112432Z", "iopub.status.idle": "2021-04-16T19:37:41.236742Z", "shell.execute_reply": "2021-04-16T19:37:41.237307Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAAA2B0lEQVR4nO3dd1gU1/4G8HfpvapIR0GUBRSxgqBirIkmxl6i0Vi56k1imteYxGsSE1NMxfZLLLEm1qi5iSWiIkaiEkTBYEWpFqRJWZbd8/vD616RBVF3GMX38zz7wO6cnfOdI/JyZnZmFEIIASIiIjIoI7kLICIiaogYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMDSA5s6dSreeustucuoN/WxvSEhIVi5ciUAYO3atQgPDzfYuu9en4+PD7Zt22aw9cfFxcHDw8Ng63tQNjY2OHnyZI3Lx40bh1deeaXO6+vevTu+/PLLhy+MnjgMWKqmrr9QlixZggULFtRpnfv374eDg8PDFfaAVq5ciZCQkIdez/1sryGMHj0ahw8fvme7um5fXddXF+np6VAoFCgoKNC9FhkZiczMTIOs/2HcvHkTwcHBAIC5c+di4MCB8hYEQKVSYdKkSWjWrBlsbW3RqlUrLF++vEobtVqN6dOnw8nJCU5OTpgxYwYqKytlqpgMgQFLVAcP+4tO7l+Ucvf/pKusrISrqyv27t2LoqIirFy5Eq+99hp2796ta/PBBx/g0KFDSElJQUpKCuLi4jB//nwZq6aHxYClWu3evRtt27aFvb09QkNDsXfvXt2yO3e13Z7RrF69Gn5+fnBwcMC4ceOgVquRl5eHfv36obCwEDY2NrCxsUFcXFy1vm7PxGbPng1nZ2d4eXlh0aJFuuVCCHz++efw9fWFk5MT+vbtiwsXLuiWL1y4EF5eXrC1tYWPjw++++47/PXXX5g6dSpOnjyp6/vy5csAgA0bNqB169ZwcHBAhw4dqszuunfvjjfffBO9e/eGtbU1fv3112q7Fo8dO4YuXbrAwcEBSqUS69ev1y2bO3cu+vfvj+joaDg5OdW4a/nbb7+Fp6cnnJ2d8fbbb+sdjwfZPn3965vppqSkIDQ0FHZ2dujTpw+ys7Or/HveOUN95ZVXMG7cOABAx44dAQAeHh6wsbHB2rVrq+2lKC4uxuTJk+Hq6gpXV1dMnToVJSUlVdav7+dFn759+2LJkiUAgMLCQhgbG2PWrFkAbv1cNG7cGImJiQAAhUKBpKQkbNu2DfPnz8fOnTt1Y3NbSUkJRowYAVtbW7Rs2RL79+/X2+/dbt68iT59+mD06NE11qqPtbU15s2bB19fXygUCnTu3BlRUVE4dOiQrs3y5csxZ84c3Xi9/fbb+P777+vcBz2CBNFdunXrJr744gtx7tw5YWFhITZv3izUarXYuHGjsLS0FBcuXBBCCPHiiy+Kl19+WQghxMWLFwUAMXz4cFFYWCiysrKEu7u7WLFihRBCiNjYWGFvb19rvytWrBDGxsZi9uzZQqVSicOHDwtbW1tx4MABIYQQq1atEm5ubiI5OVmUlZWJmTNnioCAAKFWq0VaWpqwtLQUp0+fFkIIkZubK06cOKFbb5s2bar09csvvwh3d3dx/PhxodFoxObNm4WTk5O4fv26bgwaN24sEhIShFarFaWlpVW2Nz8/Xzg7O4uvv/5aVFRUiP379wtra2tx6NAhIYQQ7733njA2NhYrVqwQarValJSUVNve33//XdjZ2YnDhw8LlUolZs+erXvP3XXf7/bp6//udt7e3sLHx0ecPn1alJSUiLFjx4ru3btX+ffMz8/XtX/55ZfFiy++WOPyu/+Nx48fL6KiosT169fFtWvXRLdu3cSkSZOqvL+mn5e7LViwQAwbNkwIIcS2bduEr6+v6NixoxBCiKSkJOHo6Cg0Go0QQggA4q+//tKNw3PPPVdlXS+++KKwsbERv//+u6isrBTvv/++8Pb21tuvEP/7/3D16lXRvn178eqrrwqtViuEECIuLk7Y29vX+IiOjta7zrKyMuHu7i42btwohBDixo0bAoA4e/asrs2ZM2cEAFFQUFBjbfRo4wyWarRhwwZ0794dgwYNgomJCYYMGYKIiIgqM7W7zZ07F3Z2dnBzc0O/fv1w/Pjx++rT2toac+fOhZmZGcLCwjB69Gj88MMPAIDVq1fjn//8J4KDg2FhYYH58+cjMzMTf/75J4yNjSGEQEpKCsrKyuDi4oLWrVvX2E9MTAzeeOMNhIaGwsjICIMGDUKrVq3wn//8R9dm1KhR6NixIxQKBSwtLau8/5dffkHjxo0xY8YMmJqaolu3bhg1ahRWrVqlaxMUFIRx48bBxMQEVlZW1WpYu3YtRo8ejbCwMJiZmWHu3LmwtrbWW+/9bl9d+geA6OhotGrVClZWVvjkk0+wf/9+gxxH1Wq1WLduHT766CM4OzujUaNGmD9/Pn744QdotVpdu7r+vERFRelmmfv27cPLL7+M8+fPo6ioCPv27UO3bt1gZFT3X2fPPPMMevToAWNjY4wfPx6XLl1CXl5eje0vXLiALl26YOjQoVi4cCEUCgUAICIiAgUFBTU+7twDc5sQAhMnTkSLFi0waNAgALdmxgCq7AG4/X1xcXGdt4seLQxYqlFmZiZ8fHyqvNa8efNafwE3bdpU9721tfV9/3Jwc3ODqamp7rm3tzeysrL01mNubg43NzdkZmbC19cXq1atwrfffgsXFxf07t0bSUlJNfaTnp6O2bNnw8HBQfdISkrS9QUAXl5eNb6/LmNT2/sBIDs7G97e3rrnpqamcHV11dv2frevLv0DqNK/i4sLzM3Nq4zBg7p27RpUKlWVMWrevDlUKhWuX7+ue62uPy+hoaFQqVRISUnBvn370LNnT0RERCAuLg779u1Djx497qu+u/sFag+yn376CUZGRoiOjr6vfu4mhEB0dDTS0tKwbds23R8Ft3dfFxYW6tre/t7W1vah+iT5MGCpRh4eHkhPT6/y2sWLFx/oVIy6zi6ys7OrHNu6fPky3N3d9dZTUVGB7OxsXT3Dhg1DbGwsrly5gjZt2mDMmDE19u3p6YnPP/+8ymyjpKREd1zvXjXXZWzutc1ubm64dOmS7rlarUZOTk6N7e9n++rSP4Aq/V+9ehUqlQru7u66X/ilpaW65XfWdq91N27cGGZmZlXG6OLFizA3N0ejRo3uWdfdjI2NERkZiR9//BF5eXkICAhAjx49sGfPHhw8eBBRUVF633c/s9ravPnmmwgLC0OfPn1QVFSkez0uLk53fFffY+rUqbq2QghMmzYNf/75J3bv3g17e3vdMkdHR3h4eFT5oykpKQmenp5V2tHjhQFLNRo+fDj279+Pn3/+GRqNBlu2bEFcXBxGjBhx3+tycXFBcXExrl27Vmu7kpISvP/++6ioqEBCQoJuNyoAvPDCC/j222+RmpoKlUqFOXPmwN3dHR07dkRaWhr27NmDsrIymJmZwcbGBiYmJrq+c3JyUFZWputn+vTp+PTTT3H8+HEIIVBaWoq9e/fWeffo008/jatXr2LRokWorKxEXFwc1q1bh7Fjx9Z5TEaOHIm1a9ciISEBFRUVmDdvnu5DQHe73+2rq6VLlyItLQ1lZWV466230LVrV3h4eKBRo0bw8vLCqlWroNVqERsbW2X3eePGjWFkZITz58/rXa+RkRFGjRqFt99+Gzdu3EBeXh7efvttjBkz5oFDLyoqCl999RW6d+8OAOjRowdWrFgBCwsLBAUF6X2Pi4sLLl26BI1G80B93mZkZITly5cjMDAQvXr10s0uIyMjcfPmzRoftz+YBdz6mYuPj8eePXvg6OhYrY/x48fjww8/RG5uLnJzczF//nxMnDjxoeomeTFgSS+FQgE/Pz9s2bIF7733HhwdHTFv3jxs3boVzZs3v+/1tWzZEhMmTEBAQAAcHByqfHryTkFBQbpTGoYMGYIPP/xQNzsZO3YsZsyYgf79+6Np06Y4ceIEduzYARMTE1RUVOCdd96Bi4sLnJ2dsW/fPt0FG3r06IHOnTvD3d0dDg4OuHz5Mvr374+PP/4YkyZNgqOjI5o1a4avvvqqyvHB2jg6OuLXX3/FmjVr4OzsjMmTJ2Px4sWIiIio85j07NkT77//PgYPHgxXV1dotdoag+J+t6+uXnrpJYwcORIuLi7IysrC2rVrdcuWL1+OFStWwN7eHkuXLq3yh5WlpSXee+899OvXDw4ODli3bl21dX/11Vfw8fGBUqlEYGAg/Pz8sHDhwjrXdreoqCgUFRXpdgcHBQXB0tKyxtkrAAwdOhR2dnZo1KjRQ5+HrVAosGzZMrRt2xY9e/ZEfn5+nd976dIlLFq0CGlpafD29tY7w33nnXcQFhaGgIAABAQEIDw8HLNnz36omkleCiF4w3WqKjQ0FK+99ppu5lhfVq5ciS+//PKexxaJiB4HnMFSFcnJyUhJSUH79u3lLoWI6LHGgCWdKVOm4Omnn8aCBQvQsmVLucshInqsSbqLeMaMGdi6dStyc3OrXKrtzTffxJYtW2BkZIT58+djyJAhUpVAREQkC0lnsMOHD6924vju3btx5MgR/P3334iNjcWrr77KE6mJiKjBkTRgIyIi4OLiUuW1LVu26K4u4+7ujoiIiCoXvCYiImoITOq7w8zMTAwePFj33MvLS++5hzExMYiJidE9v3DhwgOdHkJERFQXmZmZVS4k8rDqPWAB6K7jCdy6uok+06ZNw7Rp03TPlUolUlNTJa+NiIieTEql0qDrq/dPEXt6elY5ET4zM/OBLr1HRET0KKv3gB00aBBWrVoFjUaD7OxsHDp0CL17967vMoiIiCQlacBOmTIFHh4e0Gg08PDwwJQpU9CrVy906tQJLVu2RLdu3fD555/zbhFERNTgPDaXSuQxWCIikpKhc4ZXciIiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgnIFrBLlixBUFAQAgMDMXXqVGg0GrlKISIiMjhZAjYlJQWfffYZ4uPjkZKSAnNzc6xZs0aOUoiIiCQhS8CmpqaiU6dOsLe3BwD06dMHP/30kxylEBERSUKWgG3Tpg3i4+ORnZ0NjUaDjRs3IiMjo0qbmJgYKJVK3SM/P1+OUomIiB6IQggh5Oh4/fr1+OKLL2BiYoJevXphx44dSExMrLG9UqlEampqPVZIRERPEkPnjGwfcho5ciT+/PNPHD58GCEhIWjZsqVcpRARERmcbAF75coVAEBRUREWLFiAGTNmyFUKERGRwZnI1fGIESNw5coVCCHwxhtvIDw8XK5SiIiIDE62gI2NjZWrayIiIsnxSk5EREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQB2QL2t99+Q0hICEJCQhAeHo7Tp0/LVQoREZHByRawkydPxvr165GUlIRx48bh3XfflasUIiIig5MtYBUKBYqKigAAhYWFcHV1lasUIiIigzORq+PVq1fjmWeegaWlJaytrREfHy9XKURERAYnywxWo9Hgo48+QmxsLDIyMvDmm29i7NixVdrExMRAqVTqHvn5+XKUSkRE9EAUQghR350eO3YML7/8sm7WWlFRAUdHR5SUlNT4HqVSidTU1PoqkYiInjCGzhlZZrDu7u5IS0tDVlYWgFufKA4ICJCjFCIiIknIcgzW1dUVn376KXr37g0TExPY2Njg+++/l6MUIiIiSciyi/hBcBcxERFJqUHsIiYiImroGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUnARI5Os7Oz8fTTT+ue5+bmIiwsDFu3bpWjHCIiIoOTJWDd3NyQlJSke96zZ08MHTpUjlKIiIgkIUvA3ik7OxvHjh3D9u3b5S6FiIjIYGQ/Brt27VoMHDgQVlZWcpdCRERkMLIH7Jo1a/DCCy9Uez0mJgZKpVL3yM/Pl6E6IiKiB6MQQgi5Oj958iT69u2LjIwMGBnVnvVKpRKpqan1VBkRET1pDJ0zss5gV69ejdGjR98zXImIiB43sn3ISavVYv369fjll1/kKoGIiEgysgWskZERMjIy5OqeiIhIUtw3S0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSUC2gL158ybGjh0Lf39/tGrVCkuXLpWrFCIiIoMzkavjmTNnIigoCD/88AOEELh27ZpcpRARERmcLAFbXFyMnTt34vLlywAAhUKBJk2ayFEKERGRJGTZRXzhwgW4uLhg+vTpCA0NxXPPPYf09PQqbWJiYqBUKnWP/Px8OUolIiJ6ILIErFqtRlJSEp577jkkJiZiwIABeOmll6q0mTZtGlJTU3UPR0dHOUolIiJ6ILIErKenJ5ycnNCvXz8AwKhRo5CYmChHKURERJKQJWBdXFwQFBSEY8eOAQD27NmDwMBAOUohIiKShGyfIl68eDEmTJiAkpISODg44LvvvpOrFCIiIoOTLWCVSiX++OMPubonIiKSFK/kREREJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBOoUsN98802116ZMmWLwYoiIiBqKOgXsb7/9htWrVwMAhBCYOHEitFqtpIURERE9zup0sf+NGzeiX79+sLGxwY4dO2BmZoYlS5ZIXRsREdFjq04Ba2Vlhe3bt6N79+6IiIjQu8uYiIiI/qfWgDU1NYVCodA912q1OHXqFJYsWQKFQoGKigrJCyQiInoc1RqwarW6vuogIiJqUHiaDhERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJoE5XcpKCj48PrK2tYWpqCgBYt24dlEqlXOUQEREZlGwBCwC7du2Ch4eHnCUQERFJgruIiYiIJCBrwA4YMABt2rTBnDlzUFlZWWVZTEwMlEql7pGfny9TlURERPdPIYQQcnScmZkJDw8PFBcX44UXXkB4eDjeeuutGtsrlUqkpqbWY4VERPQkMXTOyDaDvX3s1dbWFpMmTcKRI0fkKoWIiMjgZAnYkpISFBUVAQAqKyuxefNmtG7dWo5SiIiIJCHLp4ivXLmCQYMGQavVQqPRoEuXLpg1a5YcpRAREUlCloBt3rw5kpKS5OiaiIioXvA0HSIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlegIJISDTVVKJnhiy3q6OiAxLq9XiQvIlJB9IRc75KygpKkVJof6HEAKOLvZwdHGAY1MHOLrYw8nFQffcxbsRWnbwg7GJsdybRfRYYsASPcY0Gg3OJ6Uj+UAqkg+m4uTB07CwNkeb7oHwbOUOj5ZusLa30vtQKBQouFqIG7kFyL9SiPzcAtzIzcfFU5eR+HsyMtKyUZxXjI7PhCKsf3u07xsCazsruTeZ6LEh29107hfvpkN0S4VKjd0r9+PIzmM4dehvWNtboU33QLTuqkTrbkq4NneBQqEwSF8ZaVk4suM4/thxDGlHzyEoMgBh/duj84B2aOrTxCB9ED0qDJ0zDFiix4RGo8G+tYew6r0f0cSrEfqMj0Kb7oH1FnRFecVI+E8i/thxDMd3nUDT5k0w4q3n0W1YGIyM+HEOevwxYImeMEIIHP75KFa+swHGpsaYMH8U2vcJua9ZqhACJaUVyC8sxY3CEhQUlgIAmns1hntTBxgZ3d+Mt0KlRsLO41j13o8wNTfFS/NHoX3vNgabORPJwdA5w2OwRI+w1D/SsOS1VSjKu4lx84aj69DaZ4tarUDq2Rwc/PMsLly6jvyiUuQXlCK/sBRarRYO9lZw/O9DqxU4f+kaylVqNPdqDF/vRvDxcIaPhzO8PZzh0si2xsA0MzdF5ODOCB/YAb+vicOXU5bCtbkLpn01Hs2CvaUaDqLHCmewRI+g/CsF+O5fa3Fkx3GMmzcc/SY+BRNT/X8Pq9Ua/JWSgYMJZxF39BxMTYzRtVMLBPq7wsnBWheottYW1WaqQgjkFZTgfPo1nL90DelZN5CekYdLWXkwNTHGgJ6t8XzfEDRxtq213oryCmz75lesm78Fz03ri9FzBsPMwsxg40FUH7iLmKiBO7orCQvGfI2IQZ3x0ocjYacn3MrKK/BnUjoOJpxD/PHzaOJsi64d/dC1Uwu0aNbkoXfVCiFw9uJVbPr1L8QeTkN4O18M7R+KIH+3Wt+Xc/EKvv7H/yHnwlW8smQyQqKCHqoOovrEgCVqoIQQ2PDxNmxauAOzVs9Ah75t9bbZc+hvfLMiFu5NHXSh6uHqWKWdVgjklZYiv7wMBeXluFFWhvyyMtwou/U8v7wMJkZGCGnaFG2buqGFszOMagjl/MJS/LznBLb+loQmjWwx9Jl2iOrsD1NT/efHCiEQuyEei19diadGRWDighdqnH0TPUoYsEQNUGlxGT57KQaZZ3Iwd8sbcPNtWq1N7tVCfLZsLzJy8vHm1N5oF+xVrU12cTF+SjmJjSmnkF9eDidLSzhZWsLRwhKOlpZwtLD471dLlFdW4q/cHCTmZKNMXYmQpk0R6uqGUFdXtGnqCjtz8yrrVqs1iD1yBht/OY6r14sxuF9bDOvfDhbmpnq36UZuPj4Y8QW0Gi3mbHgVjdydDTNYRBJhwBI1MJlnsjF30Kdo1tobM/9vKiytLaos12i02PzrX1j+42E817sNXhoWBvM7Qq1Sq8WB9ItYf+okEjIz0NfPHyODg9G2qWuddhULIZBdXIzEnOz/PnKQlncd/s6NMCm0HZ5u4Q/juz5YdepMNlb+9Acyc/Lxr2l90UbpoXfdmkoNlr+9Hnt+2I/Z617hLmN6pDFgiRqQS6kZeLXruxj5r0EYMrN/tUAsV6nx+gebUa5S463oPmjR7H/nvAoh8MvZM/go7gBszc0xKrg1BrYKgJ25xd3d3LcytRqx6Rfx7Z9HUKnVIubpAWjhXHUGKoTA7oOn8fWKWIwa2AGjB3ascX3x2/7E5xMXY8a3ExE1ostD10ckBZ6mQ9RACCEQ8/IKDH61P4a+NkDv8o9ifoONtTm+nDsMJsb/m0VeKynBu7G/I/XaNXzcsw8ivLyqhbNWaFGgLsR1Vd7/HhXXdd+bGpmia+Mu6NKoM2xMbKq819LUFE+38EdfvxZYfSIJwzf9iK/6Po1Ibx9dG4VCgT7dlAhu5Yaps9ehsbMtekcG6N3WLgM7wqGJPd4Z8BGUYf5w8W78ECNH9HhgwBLJ5NCWBFxJv4qhr83Su3zV5iNIz8jD4vmjqoRrVlERhm38ET2bN8dnvfvC2qzq6TD5FQVYmb4GyQWnYKIwQSNzZ93DxcIFgXZKNDJ3QqG6CAeuHsLGjK1o79gW3Zt0RUvbFlWC2kihwIshbeHj4ICXf/sPZoZ1wQut21Tpz83FAR/Peh4z39+EJk42CAn01Ls9geEtMSC6Dz4dH4NP9r7Lqz9Rg8ddxEQyKC9VYYLyFUz/ZgLCBrSvtvzAkTP4bNleLPt4NFyb2Otev1pyE8M3/ojBykBM79i5ynuEEIi/fgRrL/+IiEZheNbtadiY2NzzOOyNinwcvBaPA1fjYGpkiqgmXRHRKAy2plVPDzqTdx0Tt29Dz+a+mB3ZDSZ3BeTBhLP4ZMluLPpgJLzcnfT2pa5Q459hb+Op0ZEYMrP6rJ1ITjwGS9QArP73RpxOOIMPf5ldLQDPX7qGae9swIJZz1f58NCNsjKM2vwTuvs0w1tdIqu8r6CiECsurkZmWRYm+76ElrYt7rsmrdDiVGEqYq8exMnCFHRwaoex3iNhaWKpa3O9tBTRO7fDxswMX/d7BrZ3fdL4p53Hsek/iVj60Wg42uu/886l1Ay83GUOvoh7H82Cqn8Smkguhs4Z2ffR/OMf/4CJCfdU05MjIy0Lm77YgegvxlUL16Kb5fjXgm2YOjqySrgWqVQYt20LOrp7VAlXIQQOX0/Av06+h0bmzvgweO4DhSsAGCmM0NohCC/7/wOftZkPrdBgbsp85JZf0bVpZGWFNYOGwMHCAkM3bsC1kpIq6xjWvx3C2/li1sdboVKp9fbjrfTE2PeG4eMxX0Ndob8NUUMga8DGxcWh5K7/oEQN3eKZqzDirefh2dK92rI1WxIQ6O+G53pXPc75TcIReNjZYW73HlVCOaXoNNZc2oB/tojGGJ+RsDA2v3uVD8TBzB5TfScirFEnLEz7psoycxMTLOzTDx3dPfDvA7HV3jtjXHfYWJtj/fZjNa5/4D/7wdrOCv/5v98NUi/Ro0i2gFWpVJg1axY+++wzuUogksX5pHR0eV7/KS03CksQ3Mqt2sy2QlOJ1i4u1a62ZGVsCWsTKwTYtTR4nQqFAu0cQ6AWlXqX9fVrgcyiwmrLjI2N0CO8Jc5evFrjuo2MjNB/am8c3PSHQWsmepTIFrDz5s3DhAkT0Lix/o/rx8TEQKlU6h75+fn1XCGR4ZUUlaLwWhFcm+u/h2t5uRqWeq6MZGlqijJ19aBzs3TF1fJrqNBKs6u1XKOChZH+WbGjhSXyy8r1LvNyc8Ll7Bu1rrvTM6E4c/Q88q8UPGyZRI8kWQI2OTkZCQkJGD9+fI1tpk2bhtTUVN3D0dGxxrZEj4vMMzlo2qwJTM30X16wtFwNC4vqyyxMTFBeWT1ELYwt4GTmiJyyXIPXCgDl2nJYGOu/cIWzlSXyy8v0LvNyd0JWbgE0Gm2N67a2s0LbnsE4tPVPg9RK9KiRJWDj4+ORmpqKZs2awcfHBxqNBj4+PpylUoOXmZYNz5Y135GmXKXWe21fSxNTlFVWn8ECgLuVG7LKsg1W451UtcxgHSwscbOiAio9ddnbWsLC3BRXrhfVuv7IwZ0Rt/mIQWoletTIErDR0dHIzs5Geno60tPTYWxsjPT0dM5SqcHLSMuqPWBr3EVsoncXMQC4W7ohsyzLYDVWqUejqvGDU2bGxrA1M69xFuvt4YyLGXm1rj9sQHukHk5DwbXqx3KJHneyn6ZD9CTRVGpRcK3mWZ2DvRUSktKrve7r6IzY9As4mlU9SIPtA7Endx9WXlyDPFXtxz3vR0rhaWzJ+hne1vrPVY29eAEAYGpU/bZ1qopKFBSVoryGU3Vus7KzhK2TDXIu1PyBKKLH1SMRsJU17PoiamgGv/oMjuw8jrSj5/Qufyu6N37ZdxL7/zhT5fUuXl54P+opTNqxDdvT/q6yLMheiQWt5wFQYFbyu1h5cS1uPEDQllSW4OiN41h5cQ1eT5qNReeWYbjnYDzn1r9KO1VlJRb+EY9Xd/2Kxf0HwNmq+gUlvl4RC4+mDogKq/3Tzcd2nYCFtTladvC973qJHnW8wgNRPXJobI+xc4fh238ux9eHP6x2Oo5LIzu8//qzmPXxNjg5WqN1q/+dK9uvhT9cbW0xecfPyCgsxD86dNS938ncCeOajcYAt37Ynv0L3kp+Fy1sfeFk5ggnM0c4/vfr7YeVsRUqRSXOFp/HqaJUpBSmIqM0E81tmiHQTonJvi/B16YZjBVVZ6fxly9jzr698Hawx/aRo+Fl71BtG/fEncYfiRew4rOxMDKq/TKNOxbvwoDoPrwuMTVIvFQiUT3TVGowKXgmxn84CpGDOultc+DIGXy8eDc+eP3ZajdWzygsxKQd22BmbIyX2rbDMy38YWpcNQjzVDdw7uYF3Ki4gfyKAtyoyEd+Rf6tr+oCXXA2MW+MQPsABNkr0crWv8ZPDOeVlmJ+3AHEXb6Ed7p2R3//lnqvcXw56wamzF6HT/71PIJbVb+Qxp1yLl7B1JA3sPbSYtg4WNfalqg+8HZ1RI85YxNjvDhvBFa+sx7hz7WHsXH1Y5jdOvvDzNQEb3/6M9575RmEhTbXLfO0t8fOUWPw27mz+C7xGD6Jj8OY1iEYGRwMB4tb1w12NneCs7n+C+5rhRZF6mIoFArYm9rVWqsQAptSU7AgPg59fP2wZ8w42FvoD+FylRrvfLYdYwZ1ume4AsB/lu1F1IguDFdqsLhfhkgGkYM7wczCrNZLBYa1a44PXn8W//7yF/y2PwV37mwyMTJCf/+W2Dp8FL7u9wySr+Si64rv8W7s7/grJxvaWnZMGSmM4GBmX2u4FqtUOJKZgVGbN+K7xONY/Myz+PCpXjWGq0qlxqdL96BpE3uMfLb63YHuVl6qwp7VB9Bv4lP3bEv0uOIuYiKZpP6RhvcGfoLIIWGYtGA0LG0s9bZL/jsLH8fsgpmZMcYNCUPXTi30Htu8VFCA1clJ2HXuHMorKxHs4gJnSys4W1nCydISzpZWt75aWcHZ0goKhQIZhQW4VFiIjMJCXCosQEZhIS4XFqC4ogI+Dg4YFKDES23bwUzPLBsAKtSV2LEnGT9sSUAzz0aYN7M/7Gz1b4duu4+cwScvfgvfEB/M2fDqPW+nR1RfeLs6ogYk/2ohvopehgsnLuGNFdMQHBmgt51Go8W+w2lYtekPGBkZ4cUhndGtUwuYmFQPPiEE0vKu42xeHm6UlSGvrBR5pWW4UVaKvLJbX2+UlUGjFfCyt4envT287O3hZe8AL3t7eNs7wNXWttr9Xu90La8YB/88h7Vb/4Sbiz0mjOiCtjXcaP02dYUaa+Ztwo7FuzDl8xfR+8XuDFd6pDBgiRoYIQRi1x9CzMsr0GtMV4z/cCTMLfVf3EGrFYj9Iw2rtyQgMycfQS3dEaL0QBulB5R+TWGu5yIVhnCzRIWk1AwcS76EY8mXcOV6MUKUHhg+oD3aBXvdMygvnrqMBWO/gY2DNd5YMQ0u3vqvQU4kJwYsUQN1PfsGvpi8BDnnr+CNldMR0Kn2+7peyyvGidNZSErNwInUTGTlFqCVX1OEKD0RovSAt4cTbK0tYGlhWueZohACpWUVKCwuQ+61IiSevIxjJy/jzIUr8G/ugvbBXmjf2huB/m4wNdW/2/hOGo0GmxfuxLr5WzD2vWEY+M9+PCWHHlkMWKIGTAiBXStisfT1H+DfwRd9XuyO8IEdYWF17/u8FhSVIvl0Fk6kZuKv1ExkXylASakKxsZGsLEyh62NBWytLWBrYw5bawuYmBihqLgcxTfLUXSzHIXFZSi+WQ4BwM7GAs4O1mgb5In2rb0RovSEjfX93Ws258IVfDo+BuWlKry1ajq8lbXvQiaSGwOW6AlQUlSKgxv/wJ4fDuD8iXR0GxqO3uO6IzBc//mnNdFotCgpq0DxzXIUl5Sj+Kbqv1/LUanRws7GAnY2FrC3tYStjQXsbC1gbWl+zwtE1KTsZhkSfklE7IZ4JO5NxpCZAzB6zmCYmPKMQHr0MWCJnjDZ53Oxe9V+7F19EMamxuj9Ynf0GtMVTbwejeOYJUWlOLLjOOI2/4Hju5PRon1zdB0chh6jImDnbCt3eUR1xoAlekJptVokH0jF7lX7cWhLAhp7OqNFaHP4tW32368+sLaX/qINJUWlyDyTg4vJlxD/859I+v0UWnXyQ+TgMHR5viOcXXlXLHo8MWCJCOWlKpxPSsfZxAs4l3gRZ/+6gMupmWji1Qh+oc3Rom0zuPo2hY2DFWwcrGHtYK37vqbdtUIIqFVqVJSroSqrQElhKbLO5iAzLRuZZ7KRcSYbWWdyUHi9GE2bNYFnKzd0erodugzsAEcXh/odACIJ8FKJRAQLK3MEhrdEYPj/7lZTUV6Bi6cycPb4BZxLvIDkg6m4WVCCmwWlKCkowc2CElSUq2FhZQ4bR2uYmpuiorwCFWUVqCi/FaxCCBibGMPc0gyWthZw82sKT383ePi7ofOA9vDwd4VrcxceUyWqA/4vIWogzCzM0LK9L1q2r/nWbxXlt2amt8PW3NIMZhamMLM0++/3ZjDWc/EKIrp/DFiiJ4iZxa0Q5S5dIunxjG8iIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikoBs58H26tULV69ehRAC/v7+WL58Oezs7OQqh4iIyKBkm8Fu2rQJJ06cQHJyMry8vPDFF1/IVQoREZHByRaw9vb2AG7dIaS0tFSuMoiIiCQh6zHYZ599Fi4uLjh9+jRee+01OUshIiIyKFkDdvv27cjNzUXnzp2xaNGiKstiYmKgVCp1j/z8fJmqJCIiun+PxP1g09LSMHjwYJw6darGNrwfLBERScnQOSPLDLaoqAg5OTm655s3b0ZQUJAcpRAREUlCltN0CgsLMWjQIJSXl0OhUKBVq1b45ptv5CiFiIhIErIErKenJ44ePSpH10RERPWCV3IiIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgkwIAlIiKSAAOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJyBKwGRkZeOqppxAQEICgoCDMmTNHjjKIiIgkI0vAmpiYYMGCBTh9+jQSExMRFxeH7du3y1EKERGRJEzk6NTV1RWurq4AADMzM7Ru3RqXLl2SoxQiIiJJyH4MNi8vD9u2bUPPnj3lLoWIiMhgZJnB3qZSqTBkyBDMnDkTAQEBVZbFxMQgJiZG9zw/P7++yyMiInpgCiGEkKNjjUaD4cOHo1mzZvj000/v2V6pVCI1NbUeKiMioieRoXNGtl3EkydPhp2dHT755BO5SiAiIpKMLAEbHx+P5cuX4+jRo2jbti1CQkLw9ddfy1EKERGRJGQ5BtulSxfItGeaiIioXsj+KWIiIqKGiAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSYMASERFJgAFLREQkAQYsERGRBBiwREREEmDAEhERSYABS0REJAEGLBERkQQYsERERBJgwBIREUmAAUtERCQBBiwREZEEGLBEREQSkCVgZ8yYAQ8PD5iYmMjRPRERkeRkCdjhw4fj+PHjcnRNRERUL2SZQkZERMjRLRERUb15ZPfRxsTEICYmRvf87NmzUCqVMlbUMOTn58PR0VHuMh57HEfD4DgaBsfRMC5cuGDQ9SmEEMKga7wPJiYmqKysrFNbpVKJ1NRUiStq+DiOhsFxNAyOo2FwHA3D0OPITxETERFJgAFLREQkAVkCdsqUKfDw8IBGo4GHhwemTJlyz/dMmzatHipr+DiOhsFxNAyOo2FwHA3D0OMo6zFYIiKihoq7iImIiCTAgCUiIpKAbAFb0+US33zzTfj5+cHf3x+bNm3SvZ6RkYHIyEj4+/ujW7duyM7O1i3bsGED/P394evri9mzZ9fbNjwK9I3j2rVr0aZNG7Ru3RodOnTA/v37dcs4jvrVdvnOgoICuLm5YeLEibrXOI761TSOR44cQceOHREYGIjAwEDdeHEc9dM3jkIIvPLKKwgMDIRSqUR0dDQ0Gg0AjqM+GRkZeOqppxAQEICgoCDMmTNHt6zeckbIJC4uTuTm5gpjY2Pda7t27RKRkZFCrVaLzMxM4eHhIYqKioQQQowcOVIsXbpUCCFETEyMGDt2rBBCiPz8fOHh4SGys7OFWq0WYWFhYt++ffW/QTLRN47x8fEiLy9PCCHEqVOnhIuLi9BoNEIIjmNN9I3jbZMmTRIvvPCCmDBhgu41jqN++saxqKhItGjRQqSmpgohhCgoKBClpaVCCI5jTfSN4++//y7Cw8NFZWWlqKysFBEREWLnzp1CCI6jPtnZ2eLo0aNCCCFUKpXo2rWr+Pnnn+s1Z2QL2Nvu/AGaMmWK+P7773XPR4wYITZt2iS0Wq2wt7cXZWVlQgghbt68KRwcHIQQQqxfv16MGTNG954lS5aI6dOn11P1jw59wSCE0I1dYWEhx7EO7h7Hffv2ibFjx4oVK1boApbjeG93juPixYvFK6+8Uq0Nx/He7hzHffv2idDQUFFaWipKS0tFhw4dxNGjRzmOdTR9+nTx9ddf12vOPFLHYDMzM+Hp6al77uXlhczMTOTl5cHa2hoWFhYAAGtra5iZmaGwsLDG99At69atQ2BgIOzs7DiO96msrAyzZs3CZ599VuV1juP9SUtLg0qlwlNPPYW2bdtizpw5EEJwHO9TVFQUoqKi4OrqCldXV0RGRqJ9+/YcxzrIy8vDtm3b0LNnz3rNmUcqYAFAoVDovhd3nEF05+u1LRM860gnMTERc+bMwcqVK3WvcRzrbu7cuZgyZQoaN25cbRnHse7UajX279+Pn376CYcPH0ZCQgJWr14NgON4P44dO4bLly8jJycHOTk5SElJwcaNGwFwHGujUqkwZMgQzJw5EwEBAQDqL2ceqYD19PTE5cuXdc8zMzPh4eEBZ2dn3Lx5E+Xl5QCA0tJSqNVq2Nvb1/ieJ92ZM2cwdOhQbNiwAS1atAAAjuN9Onz4MObNmwcfHx+8/vrr+PHHHzFhwgSO433y8vJCv3794OzsDEtLSzz//PNITEzkON6nlStXolevXrC0tISlpSUGDRqE2NhYjmMtNBoNRo8ejfbt2+PVV18FUM8587D7tR/WnccYdu/eLbp27SoqKytFVlaW8PT01B18HjVqlFi2bJkQQohFixbpDj4XFBQIT09PkZOTI9RqtejSpcsTcxD/TneOY0ZGhvDz8xO7d++u1o7jWLuajmXfeQxWCI7jvdw5jmfPnhUdO3YUZWVlQqPRiMGDB+vGjuNYuzvH8ZNPPhHDhg0TGo1GVFZWiiFDhohvvvlGCMFxrMlLL70kxo8fL7Rare61+swZ2QJ28uTJwt3dXQAQ7u7uYvLkyUIIId544w3h6+sr/Pz8xE8//aRrf/nyZRERESFatGghIiMjRWZmpm7Z+vXrhZ+fn2jevLmYNWtWvW+LnPSN48SJE4WdnZ1o06aN7nHx4kUhBMexJjX9PN52d8ByHPWraRy//fZbERAQIAIDA0V0dLSorKwUQnAca6JvHEtKSsSoUaNEQECAUCqVYsKECaKiokIIwXHU59ChQwKACAoK0v0e/Oqrr4QQ9ZczvFQiERGRBB6pY7BEREQNBQOWiIhIAgxYIiIiCTBgiYiIJMCAJSIikgADlugRou9uPg9q7ty5+OCDD+7ZLj09HX5+fgbrl4huYcASERFJgAFL9IgaMmQI2rdvj6CgIN1l3gBg3LhxiI6ORs+ePeHt7Y0NGzbggw8+QNu2bdGhQwfk5ubq2qalpaFr167w9/fH66+/rnt97969CAgIQGhoKJYtW6Z7PSMjA926dUNoaCiCg4OxZs2a+tlYogaIAUv0iFq6dCmOHTuG5ORkXLx4Ebt27dIty8rKwu7du7Fjxw5MmDABfn5++OuvvxAVFYWlS5fq2iUkJGDnzp04deoUDh8+jJ07d0KlUmHcuHHYuHEjEhMTUVFRoWvfqFEj/Pbbb0hMTER8fDz+/e9/o6CgoD43m6jBYMASPaKWLVuGtm3bIiQkBEeOHMHJkyd1y5577jkYGRkhODgY5eXleP755wEAISEhuHjxoq7dwIEDYWdnBzMzMwwfPhwHDhzA33//DTc3NwQFBQEAxowZo2tfWVmJadOmITg4GJGRkcjJycG5c+fqaYuJGhbDfaKCiAzmwIED2Lx5Mw4ePAhbW1u89tprurt8AIC5uTmAW7fQUigUuudGRkaorKyscb0KhaLWW20tXLgQlpaWSEpKgrGxMdq1a1elXyKqO85giR5BRUVFcHBwgK2tLfLy8rB58+YHWs+2bdtQVFSEiooK/Pjjj+jatSsCAgKQnZ2NU6dOAYDu3qy3+23atCmMjY2RkJCAEydOGGR7iJ5EDFiiR1Dfvn1hY2ODwMBAvPDCC+jWrdsDradr164YPHgwgoODER4ejv79+8Pc3BwrVqzA0KFDER4eDnt7e1376dOnY+vWrejQoQMWLVqEDh06GGqTiJ44vJsOERGRBDiDJSIikgADloiISAIMWCIiIgkwYImIiCTAgCUiIpIAA5aIiEgCDFgiIiIJMGCJiIgk8P+Rvk7aYqYugwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "posterior_bulb3 = posterior_bulb * likelihood\n", "normalize(posterior_bulb3)\n", "plot_contour(posterior_bulb3)\n", "decorate(title='Joint posterior distribution with k=20')" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.241318Z", "iopub.status.busy": "2021-04-16T19:37:41.240598Z", "iopub.status.idle": "2021-04-16T19:37:41.246161Z", "shell.execute_reply": "2021-04-16T19:37:41.246507Z" } }, "outputs": [ { "data": { "text/plain": [ "1378.3949572816407" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# Since there were more dead bulbs than expected,\n", "# the posterior mean is a bit less after the update.\n", "\n", "joint_weibull_mean(posterior_bulb3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise:** In this exercise, we'll use one month of data to estimate the parameters of a distribution that describes daily rainfall in Seattle.\n", "Then we'll compute the posterior predictive distribution for daily rainfall and use it to estimate the probability of a rare event, like more than 1.5 inches of rain in a day.\n", "\n", "According to hydrologists, the distribution of total daily rainfall (for days with rain) is well modeled by a two-parameter\n", "gamma distribution.\n", "\n", "When we worked with the one-parameter gamma distribution in <<_TheGammaDistribution>>, we used the Greek letter $\\alpha$ for the parameter.\n", "\n", "For the two-parameter gamma distribution, we will use $k$ for the \"shape parameter\", which determines the shape of the distribution, and the Greek letter $\\theta$ or `theta` for the \"scale parameter\". " ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "The following function takes these parameters and returns a `gamma` object from SciPy." ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.250070Z", "iopub.status.busy": "2021-04-16T19:37:41.249652Z", "iopub.status.idle": "2021-04-16T19:37:41.252217Z", "shell.execute_reply": "2021-04-16T19:37:41.252548Z" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "import scipy.stats\n", "\n", "def gamma_dist(k, theta):\n", " \"\"\"Makes a gamma object.\n", " \n", " k: shape parameter\n", " theta: scale parameter\n", " \n", " returns: gamma object\n", " \"\"\"\n", " return scipy.stats.gamma(k, scale=theta)" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "Now we need some data.\n", "The following cell downloads data I collected from the National Oceanic and Atmospheric Administration ([NOAA](http://www.ncdc.noaa.gov/cdo-web/search)) for Seattle, Washington in May 2020." ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.256571Z", "iopub.status.busy": "2021-04-16T19:37:41.256055Z", "iopub.status.idle": "2021-04-16T19:37:41.258114Z", "shell.execute_reply": "2021-04-16T19:37:41.257746Z" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "# Load the data file\n", "\n", "download('https://github.com/AllenDowney/ThinkBayes2/raw/master/data/2203951.csv')" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "Now we can load it into a `DataFrame`:" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.261365Z", "iopub.status.busy": "2021-04-16T19:37:41.260827Z", "iopub.status.idle": "2021-04-16T19:37:41.274723Z", "shell.execute_reply": "2021-04-16T19:37:41.274264Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
STATIONNAMEDATEAWNDPRCPTMAXTMINWT01WT03WT08
0USW00024233SEATTLE TACOMA AIRPORT, WA US2020-05-014.470.006643NaNNaNNaN
1USW00024233SEATTLE TACOMA AIRPORT, WA US2020-05-029.400.2458471.0NaNNaN
2USW00024233SEATTLE TACOMA AIRPORT, WA US2020-05-0311.630.0657441.0NaNNaN
3USW00024233SEATTLE TACOMA AIRPORT, WA US2020-05-044.470.006539NaNNaNNaN
4USW00024233SEATTLE TACOMA AIRPORT, WA US2020-05-057.830.007149NaNNaNNaN
\n", "
" ], "text/plain": [ " STATION NAME DATE AWND PRCP TMAX \\\n", "0 USW00024233 SEATTLE TACOMA AIRPORT, WA US 2020-05-01 4.47 0.00 66 \n", "1 USW00024233 SEATTLE TACOMA AIRPORT, WA US 2020-05-02 9.40 0.24 58 \n", "2 USW00024233 SEATTLE TACOMA AIRPORT, WA US 2020-05-03 11.63 0.06 57 \n", "3 USW00024233 SEATTLE TACOMA AIRPORT, WA US 2020-05-04 4.47 0.00 65 \n", "4 USW00024233 SEATTLE TACOMA AIRPORT, WA US 2020-05-05 7.83 0.00 71 \n", "\n", " TMIN WT01 WT03 WT08 \n", "0 43 NaN NaN NaN \n", "1 47 1.0 NaN NaN \n", "2 44 1.0 NaN NaN \n", "3 39 NaN NaN NaN \n", "4 49 NaN NaN NaN " ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "weather = pd.read_csv('2203951.csv')\n", "weather.head()" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "I'll make a Boolean Series to indicate which days it rained." ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.278994Z", "iopub.status.busy": "2021-04-16T19:37:41.278485Z", "iopub.status.idle": "2021-04-16T19:37:41.280829Z", "shell.execute_reply": "2021-04-16T19:37:41.281256Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rained = weather['PRCP'] > 0\n", "rained.sum()" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "And select the total rainfall on the days it rained." ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.288529Z", "iopub.status.busy": "2021-04-16T19:37:41.287802Z", "iopub.status.idle": "2021-04-16T19:37:41.291569Z", "shell.execute_reply": "2021-04-16T19:37:41.291072Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "count 14.000000\n", "mean 0.222857\n", "std 0.301060\n", "min 0.010000\n", "25% 0.052500\n", "50% 0.110000\n", "75% 0.225000\n", "max 1.140000\n", "Name: PRCP, dtype: float64" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prcp = weather.loc[rained, 'PRCP']\n", "prcp.describe()" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "Here's what the CDF of the data looks like." ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.327363Z", "iopub.status.busy": "2021-04-16T19:37:41.311942Z", "iopub.status.idle": "2021-04-16T19:37:41.416224Z", "shell.execute_reply": "2021-04-16T19:37:41.416543Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAFgCAYAAAAYQGiBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAAuJAAALiQE3ycutAAAwF0lEQVR4nO3deXQUZb7/8U9IgIQsZJEEshEgItlYJHoFFRRxFDeuiINXWYRcuSoyvyueOy7juDHH7Y476KAOLuA4DIh6dRgVxzhsDosYEMIgW0g6gbAlJA0h6/P7A9KSvRNS3Un3+3UO53Slnq7+9tNtfaynnq7yMcYYAQCAdtXF3QUAAOCJCFgAACxAwAIAYAECFgAACxCwAABYgIAFAMACBCzaZPXq1YqNjbVse1dccYVefvnldtt+bm6ugoKCdPz48XbbZms8+eSTioyMVFBQkI4ePXrO22vt+zl16pRuvvlmhYaG6uKLL26x/RNPPKF///d/dyz7+PgoKyurjdWem5dffllXXHGFS1/zgw8+0MiRIy19Dau/k+7oN9RFwKKBK664Qt27d1dwcLB69uyp1NRUPfDAAzp8+LCjzeWXXy6bzdbitr799luFhoa22M7Z7TmrfiDEx8fLbrerZ8+e7fYazrLZbJo7d642btwou92uiIiIc95ma9/PRx99pJ07d6qwsFAbNmw459f3dHfccYfWrVvnWE5ISNAnn3zSrq/hzu8kXIOARaOee+45lZaWqri4WH/5y1+Un5+v4cOHq7CwsN1fq6qqqt232ZHk5OQoKChIffv2dap9dXW12vv6L/v27dPAgQPVvXv3dt0uGmfFZ4jOh4BFs3x8fJScnKzFixerZ8+eevHFFyU1PDL94IMPdP755ys4OFgxMTGaO3eujh49qnHjxun48eMKCgpSUFCQVq9erXfffVdDhw7V448/rt69e2vSpEmNHunm5+friiuuUHBwsEaMGKEdO3bUqevsI9Szh8Nqh0BHjhypoKAgPf3008rJyZGPj4+Ki4slSZWVlXr44YcVHx+vXr16adKkSXWO0H18fPSHP/xBqampCgkJ0U033dTsUN6mTZt06aWXKjQ0VMnJyfrwww8lSZ988omuvvpqRx+MGTOmyX6eN2+eUlNT1aNHD9ntdr344ouOPh0wYIDmzZvnaF///dx555266667dNtttyk4OFgXXHCBvv32W0nSAw88oKeeekqff/65goKC9Pjjj8tut2v8+PGKjIxUz549NWrUKG3ZsqXJ99ccY4xeeOEFDRgwQOHh4br22mu1d+9ex/qEhAQ9//zzuuSSSxQcHKzRo0crLy+vye1t377d0fbKK69UQUFBnfW//vWv1bdvXwUHBys5OVlLly51rBs2bJjee++9Ou2vueYaPf/885KkF198UfHx8QoODlZCQoLefvvtRmuo/Y5K0q233qrc3Fz9x3/8h4KCgnT33Xc3+hwrP0Pp9Hf2scce04ABAxQREaGbbrqpTt+01G9wAwPUM3r0aPPSSy81+PtvfvMbc/HFFxtjjMnMzDQ9e/Y0xhhjt9uNn5+f+cc//mGMMaaoqMhs2LChQbta77zzjvH19TVPPfWUKS8vNydOnGjQbvTo0SYsLMysW7fOlJeXm0ceecScf/75prKy0hhjjCTzww8/ONq/9NJLZvTo0Y7l+uv37dtnJJmioiJjjDFPPvmkSU1NNfv37zelpaVm0qRJ5uqrr67z/CuuuMIcPHjQFBUVmWHDhpnHH3+80f4qKioyERER5tVXXzUVFRXm22+/NYGBgWbNmjVN9kF9ksyIESNMfn6+OXXqlKmurjbLli0zubm5pqamxnzzzTfG39/fsc3672fatGkmKCjI/P3vfzdVVVVm7ty5pm/fvo7tP/7442b8+PGO5ePHj5s///nPxm63m7KyMvOrX/3KDBw40NTU1DTavn5/nu29994z0dHRZuvWraasrMzMmTPHJCUlOT6rvn37mpSUFLNnzx5TVlZmxo0bZ6ZNm9botiorK03//v3NI488YsrLy826detMWFhYnc928eLFprCw0FRVVZkPP/zQdO/e3ezdu9cYY8xrr71Wp63NZjPdunUzBQUFZufOnSYgIMDs2LHDGGPMwYMHzZYtWxqt45133jFDhgxxLPft29d8/PHHjbY9u4+s/Az/53/+x4wZM8YUFBSY8vJy88ADD5jLL7/c6X6D6xGwaKCpgH399ddNYmKiMaZhwAYEBJg//OEP5vjx43We01TAhoeHm+rq6ibbjR492txzzz2O5YqKChMSEmJWr15tjDn3gE1MTDR//vOfHevz8/ONJJOfn+94/t/+9jfH+t/97nfmhhtuaNAnxpze4Q8aNKjO3+666y5z1113NdkH9UlqcQc+fvx487vf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jx6tCy+8UGlpaa0+il62bJmuvfZaR7g6U0NtP7z77rutei2gI/HYu+kAHcmTTz6p6OhoLVmyRDk5ORo5cqRGjBihl156ST/++KOysrIcbRcsWKCIiAjV1NRowoQJ+vLLL3XNNdc0u/3Vq1frxx9/VO/evVu1jX379ikzM1MHDx5USkqKZs6cqXfeeUeZmZn68ssvFRsbq7KyMn3xxRcKCAhQSUmJhg8frhtuuEGhoaFOvffVq1fr2muvbXJ9YzV07dpVQ4YM0ebNm9vtqBxwNY5gARf49ttv9Z//+Z+STg+rXnzxxdqwYUOjbd98800NGzZMQ4cO1T//+U/9+OOPLW7/qquucoRra7Zx8803y9fXVzExMQoLC1NhYWGDNlVVVZo1a5bS0tJ0+eWX68CBA04NadcqKCho9v6xTdXg5+enwMBAHTt2zOnXAjoSjmABF2hsqkNj5yP/8Y9/6KOPPtKqVasUHBysBx54QKdOnWpx+0FBQW3aRvfu3R2PfX19G51U9OKLLyogIEBZWVny9fXV8OHDnaqpVkBAgMrLy5tc31wNZWVlCggIcPq1gI6EI1jABa688krHRKecnBxt2LBBF110kUJCQlRaWupoV1JSotDQUAUHB+vo0aP66KOPWv1a7bGN+tvr3bu3fH19tX79em3ZsqVVz09JSdGuXbta/bqHDx9WSEhInf95ADoTAhZwgccff1wFBQVKS0vT+PHjtWDBAp133nmO+6wOGTJE06dP17XXXqugoCClpKRo8uTJGj16dKtfqz22cbb77rtPH3/8sS666CK9/vrruuiii1r1/Jtuuklff/11q1/366+/1o033tjq5wEdBT/TAWC5UaNG6cMPP1RMTIzTzxk3bpxefvllXXDBBRZWBliHI1gAlnvttde0f/9+p9vb7XbdfvvthCs6NY5gAQCwAEewAABYgIAFAMACBCwAABYgYAEAsAABCwCABQhYAAAs8P8B8SfAkf8L9VQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cdf_data = Cdf.from_seq(prcp)\n", "cdf_data.plot()\n", "decorate(xlabel='Total rainfall (in)',\n", " ylabel='CDF',\n", " title='Distribution of rainfall on days it rained')" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide-cell" ] }, "source": [ "The maximum is 1.14 inches of rain is one day.\n", "To estimate the probability of more than 1.5 inches, we need to extrapolate from the data we have, so our estimate will depend on whether the gamma distribution is really a good model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I suggest you proceed in the following steps:\n", "\n", "1. Construct a prior distribution for the parameters of the gamma distribution. Note that $k$ and $\\theta$ must be greater than 0.\n", "\n", "2. Use the observed rainfalls to update the distribution of parameters.\n", "\n", "3. Compute the posterior predictive distribution of rainfall, and use it to estimate the probability of getting more than 1.5 inches of rain in one day." ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.420568Z", "iopub.status.busy": "2021-04-16T19:37:41.420152Z", "iopub.status.idle": "2021-04-16T19:37:41.424495Z", "shell.execute_reply": "2021-04-16T19:37:41.424149Z" }, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "(0.8898876017525283, 0.25043291132301665)" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# I'll use the MLE parameters of the gamma distribution\n", "# to help me choose priors\n", "\n", "k_est, _, theta_est = scipy.stats.gamma.fit(prcp, floc=0)\n", "k_est, theta_est" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.428911Z", "iopub.status.busy": "2021-04-16T19:37:41.428490Z", "iopub.status.idle": "2021-04-16T19:37:41.431090Z", "shell.execute_reply": "2021-04-16T19:37:41.431568Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "# I'll use uniform priors for the parameters.\n", "# I chose the upper bounds by trial and error.\n", "\n", "ks = np.linspace(0.01, 2, num=51)\n", "prior_k = make_uniform(ks, name='k')" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.435824Z", "iopub.status.busy": "2021-04-16T19:37:41.435397Z", "iopub.status.idle": "2021-04-16T19:37:41.438583Z", "shell.execute_reply": "2021-04-16T19:37:41.438240Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "thetas = np.linspace(0.01, 1.5, num=51)\n", "prior_theta = make_uniform(thetas, name='theta')" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.441827Z", "iopub.status.busy": "2021-04-16T19:37:41.441245Z", "iopub.status.idle": "2021-04-16T19:37:41.444095Z", "shell.execute_reply": "2021-04-16T19:37:41.444570Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "# Here's the joint prior\n", "\n", "prior = make_joint(prior_k, prior_theta)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.448288Z", "iopub.status.busy": "2021-04-16T19:37:41.447637Z", "iopub.status.idle": "2021-04-16T19:37:41.450859Z", "shell.execute_reply": "2021-04-16T19:37:41.450497Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "# I'll use a grid to compute the densities\n", "\n", "k_mesh, theta_mesh, data_mesh = np.meshgrid(\n", " prior.columns, prior.index, prcp)" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.455536Z", "iopub.status.busy": "2021-04-16T19:37:41.454731Z", "iopub.status.idle": "2021-04-16T19:37:41.462470Z", "shell.execute_reply": "2021-04-16T19:37:41.462038Z" } }, "outputs": [ { "data": { "text/plain": [ "(51, 51, 14)" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# Here's the 3-D array of densities\n", "\n", "densities = gamma_dist(k_mesh, theta_mesh).pdf(data_mesh) \n", "densities.shape" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.466277Z", "iopub.status.busy": "2021-04-16T19:37:41.465631Z", "iopub.status.idle": "2021-04-16T19:37:41.468004Z", "shell.execute_reply": "2021-04-16T19:37:41.468364Z" } }, "outputs": [ { "data": { "text/plain": [ "150287.91980136465" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# Which we reduce by multiplying along axis 2\n", "\n", "likelihood = densities.prod(axis=2)\n", "likelihood.sum()" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.472830Z", "iopub.status.busy": "2021-04-16T19:37:41.472258Z", "iopub.status.idle": "2021-04-16T19:37:41.475159Z", "shell.execute_reply": "2021-04-16T19:37:41.474721Z" } }, "outputs": [ { "data": { "text/plain": [ "57.780822684107896" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# Now we can do the update in the usual way\n", "\n", "posterior = prior * likelihood\n", "normalize(posterior)" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.492554Z", "iopub.status.busy": "2021-04-16T19:37:41.488649Z", "iopub.status.idle": "2021-04-16T19:37:41.647173Z", "shell.execute_reply": "2021-04-16T19:37:41.646742Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "# And here's what the posterior looks like\n", "\n", "plot_contour(posterior)\n", "\n", "decorate(title='Posterior distribution, parameters of a gamma distribution')" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.651740Z", "iopub.status.busy": "2021-04-16T19:37:41.651267Z", "iopub.status.idle": "2021-04-16T19:37:41.653711Z", "shell.execute_reply": "2021-04-16T19:37:41.653349Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "# I'll check the marginal distributions to make sure the\n", "# range of the priors is wide enough\n", "\n", "from utils import marginal\n", "\n", "posterior_k = marginal(posterior, 0)\n", "posterior_theta = marginal(posterior, 1)" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.689643Z", "iopub.status.busy": "2021-04-16T19:37:41.675794Z", "iopub.status.idle": "2021-04-16T19:37:41.824132Z", "shell.execute_reply": "2021-04-16T19:37:41.824491Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "# The marginal distribution for k is close to 0 at both ends\n", "\n", "posterior_k.plot(color='C4')\n", "decorate(xlabel='k',\n", " ylabel='PDF', \n", " title='Posterior marginal distribution of k')" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.831274Z", "iopub.status.busy": "2021-04-16T19:37:41.830519Z", "iopub.status.idle": "2021-04-16T19:37:41.834487Z", "shell.execute_reply": "2021-04-16T19:37:41.835136Z" } }, "outputs": [ { "data": { "text/plain": [ "(0.8437218523899558, array([0.4478, 1.3632]))" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "posterior_k.mean(), posterior_k.credible_interval(0.9)" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:41.855628Z", "iopub.status.busy": "2021-04-16T19:37:41.854320Z", "iopub.status.idle": "2021-04-16T19:37:42.012073Z", "shell.execute_reply": "2021-04-16T19:37:42.011701Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "# Same with the marginal distribution of theta\n", "\n", "posterior_theta.plot(color='C2')\n", "decorate(xlabel='theta',\n", " ylabel='PDF', \n", " title='Posterior marginal distribution of theta')" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:42.016693Z", "iopub.status.busy": "2021-04-16T19:37:42.016116Z", "iopub.status.idle": "2021-04-16T19:37:42.018530Z", "shell.execute_reply": "2021-04-16T19:37:42.018903Z" } }, "outputs": [ { "data": { "text/plain": [ "(0.367761307460383, array([0.159 , 0.7848]))" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "posterior_theta.mean(), posterior_theta.credible_interval(0.9)" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:42.022546Z", "iopub.status.busy": "2021-04-16T19:37:42.021767Z", "iopub.status.idle": "2021-04-16T19:37:42.027862Z", "shell.execute_reply": "2021-04-16T19:37:42.027491Z" } }, "outputs": [ { "data": { "text/plain": [ "theta k \n", "0.01 0.0100 4.306265e-156\n", " 0.0498 1.304069e-145\n", " 0.0896 2.463890e-141\n", " 0.1294 2.077828e-138\n", " 0.1692 4.227218e-136\n", "dtype: float64" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "# To compute the posterior predictive distribution,\n", "# I'll stack the joint posterior to make a Series\n", "# with a MultiIndex\n", "\n", "posterior_series = posterior.stack()\n", "posterior_series.head()" ] }, { "cell_type": "code", "execution_count": 97, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:42.030840Z", "iopub.status.busy": "2021-04-16T19:37:42.030357Z", "iopub.status.idle": "2021-04-16T19:37:42.033846Z", "shell.execute_reply": "2021-04-16T19:37:42.033353Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "# I'll extend the predictive distribution up to 2 inches\n", "\n", "low, high = 0.01, 2" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:42.064699Z", "iopub.status.busy": "2021-04-16T19:37:42.052712Z", "iopub.status.idle": "2021-04-16T19:37:45.138382Z", "shell.execute_reply": "2021-04-16T19:37:45.137916Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "# Now we can iterate through `posterior_series`\n", "# and make a sequence of predictive Pmfs, one\n", "# for each possible pair of parameters\n", "\n", "from utils import pmf_from_dist\n", "\n", "qs = np.linspace(low, high, num=101)\n", "pmf_seq = []\n", "for (theta, k) in posterior_series.index:\n", " dist = gamma_dist(k, theta)\n", " pmf = pmf_from_dist(dist, qs)\n", " pmf_seq.append(pmf)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:45.155754Z", "iopub.status.busy": "2021-04-16T19:37:45.150818Z", "iopub.status.idle": "2021-04-16T19:37:45.515419Z", "shell.execute_reply": "2021-04-16T19:37:45.514852Z" } }, "outputs": [], "source": [ "# Solution\n", "\n", "# And we can use `make_mixture` to make the posterior predictive\n", "# distribution\n", "\n", "post_pred = make_mixture(posterior_series, pmf_seq)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:45.537004Z", "iopub.status.busy": "2021-04-16T19:37:45.534520Z", "iopub.status.idle": "2021-04-16T19:37:45.659852Z", "shell.execute_reply": "2021-04-16T19:37:45.659355Z" } }, "outputs": [ { "data": { "image/png": "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1Oa1Mpmsy77bryvFxcVoamrq1alH7fsC2v47sFTrZZKXl4e7774bf/nLX1BaWoqqqirMnTvXaoOfXnnlFRw7dgz79+9HTU2NuX5r9U89x4ClNsLCwnDjjTfiv//7v1FXV4e8vDy88MILuPvuuwEAu3btQmZmJkwmE5RKJZydnaFQKAAAwcHBuHjxormvkJAQLFiwAPfff7/5f9HFxcXYuXOnxfUsXboUb775JjIyMtDU1IR169YhLCzMovP+Wvvkk09w+PBh6HQ6PPvsswgMDMT111/fYdtx48YhIiIC69atQ21tLYQQyM3Nxddffw0AuP322/HDDz/gq6++gsFgwLvvvovMzMwO+5LJZFi1ahUeeeQRZGVlQQiB8+fPm4Om/TLryLJly7Bnzx68+uqrWLp0qTlouquzvZ7UXVJSgp07d6K2thYKhQJKpRJyudxcc21tbZsBRJbq6u8wZswYbN68GQaDASdPnsTmzZvbvLa7ZbV06VK88MILyM/Ph1arxdq1azFz5kyEhob2uM65c+fi8uXLeOutt2AwGLBv3z58+OGH5r0HvaHVaiGEQFBQEJycnLB7927s2bOn1/21V1NTAzc3N/j5+UGr1eLJJ5+0Wt/UOwxYusqHH36IhoYGREZGYtKkSbj55pvx2GOPAQCysrIwe/ZseHt7Q61WY8KECbjvvvsAAA899BC+//57+Pr6ms/j/OCDD8y7hpVKJW644QYcO3bM4lqWL1+OBx54APPmzUNISAjS09Px5ZdfmkPdUitXrsTjjz8Of39/fPfdd/jss8867UMul+PLL79EQUEBYmNj4ePjg5tvvtm8FTpixAhs3rwZDz74IAICAnD48GHMnj270/d++eWXMWPGDMycORNKpRK33XYbKioqAHS8zNqLiIjAxIkT8eOPP2LZsmUW19leT+o2mUz4+9//jvDwcPj4+GDDhg349NNP4eTkhBEjRiAlJQWxsbHw9fXF/v37O/3s7XX1d3jjjTdw8OBB+Pr64vHHHzf/p67Fc889hwcffBB+fn546aWXrur7iSeewKxZszBhwgRERUVBr9djy5YtFtfWmp+fH77++mts2bIFAQEBWL16NTZu3IjJkyf3qj+gefT3U089henTpyMgIACffPIJbr311l73197atWshl8sRHByM+Ph4TJgwwWp9U+/IBPcfkIObNm0aFixYgIceesjWpRDRAMItWCIiIgkwYImIiCTAXcREREQS4BYsERGRBBiwREREEujZuQ52RKlUWvXelURERD2l0WhQU1PT4bx+G7AqlarDO6cQERH1FbVa3ek87iImIiKSAAOWiIhIAv12F3FXeOZR57q7YDoREVmHQwWsyWRCfn5+mztyUFseHh7mu9wQEZF0HCpgS0tLIZPJMHz4cAZIB0wmEwoKClBaWorg4GBbl0NE5NAcKmCrq6sRGRlpvq0WtdVyp43c3FwGLBGRxBxmM08IAaPRCGdnZ1uXYtecnZ1hNBp5nJqISGIOE7AtOIina1w+RER9Q9KAfeCBB6BSqbq8OXZqairUajViYmKwcuVKGAwGKUuyK0ePHsW9997bbbvMzEwkJSVh9OjR+OWXXzpt98wzz+D555+/6jEREfU9SQN2yZIlOHbsWKfzjUYjUlJSsG3bNmRlZUGr1WLz5s1SltTnjEZjp/OSk5Pxj3/8o9s+du7ciVmzZuHEiROYOHGiNcsjIiKJSDrIafLkyV3OT0tLg0qlQlxcHAAgJSUFb775Ju655x4py5KcQqHAc889h127dmHNmjVoamrCxo0bodfr4ePjg/fffx9DhgzB3r178fzzz+P777/H3r178dRTT2HIkCE4duwYhgwZgh07duDrr7/Gq6++CplMhm+//RZHjhzBI488gkOHDqGxsRGJiYl477334OrqauuPTURkVUIIGE0CRqMJBqMJJiFgMAoYTSaYTAIGowlGk4DJ1PxcS1uj6crrTFfPN5kEfL3cMGpokOT123QUsUajQXh4uHk6IiICGo2mw7YbNmzAhg0bzNOVlZVd9r1h51HkX+74AszXIjxIiTULk7tsYzQaERQUhAMHDgAAysvLzf9p2LFjB5588kl89NFHV73u5MmT2Lx5M6KjozFv3jxs374dd911F9LT06FQKLBu3ToAzbt/AwICAAAPPvggPvjgA/z+97+35sckIgdmMgnoDUbojSboDSbzY0Orxy3PG4wm6I0mGK881zLdMs9w5TmDyQSDsTn0Wn6MrR63zDOamvtpHZzGK69t/v2feSaJBmMmxQQ7fsACbQfddDWydc2aNVizZo15uqsLLNuDu+66y/z4/PnzeOqpp1BWVgaj0djpObpjxoxBdHQ0AGDcuHHIzs7usN3nn3+OjRs3orGxEdXV1TCZTNb/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "# Here's what it looks like.\n", "\n", "post_pred.make_cdf().plot(label='rainfall')\n", "decorate(xlabel='Total rainfall (in)',\n", " ylabel='CDF',\n", " title='Posterior predictive distribution of rainfall')" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:45.664168Z", "iopub.status.busy": "2021-04-16T19:37:45.663749Z", "iopub.status.idle": "2021-04-16T19:37:45.667926Z", "shell.execute_reply": "2021-04-16T19:37:45.668412Z" } }, "outputs": [ { "data": { "text/plain": [ "0.00900003598887611" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution \n", "\n", "# The probability of more than 1.5 inches of rain is small\n", "\n", "cdf = post_pred.make_cdf()\n", "p_gt = 1 - cdf(1.5)\n", "p_gt" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "execution": { "iopub.execute_input": "2021-04-16T19:37:45.671553Z", "iopub.status.busy": "2021-04-16T19:37:45.671143Z", "iopub.status.idle": "2021-04-16T19:37:45.675804Z", "shell.execute_reply": "2021-04-16T19:37:45.675337Z" } }, "outputs": [ { "data": { "text/plain": [ "111.11066680577532" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution \n", "\n", "# So it's easier to interpret as the number of rainy\n", "# days between events, on average\n", "\n", "1 / p_gt" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "remove-print" ] }, "source": [ "*Think Bayes*, Second Edition\n", "\n", "Copyright 2020 Allen B. Downey\n", "\n", "License: [Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)](https://creativecommons.org/licenses/by-nc-sa/4.0/)" ] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "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.11.11" } }, "nbformat": 4, "nbformat_minor": 1 }