{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Comparisons"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"remove-cell"
]
},
"source": [
"This notebook is part of [Bite Size Bayes](https://allendowney.github.io/BiteSizeBayes/), an introduction to probability and Bayesian statistics using Python.\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/)"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"remove-cell"
]
},
"source": [
"The following cell downloads `utils.py`, which contains some utility function we'll need."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"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/BiteSizeBayes/raw/master/utils.py')"
]
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"remove-cell"
]
},
"source": [
"If everything we need is installed, the following cell should run with no error messages."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Review\n",
"\n",
"[The previous notebook](https://colab.research.google.com/github/AllenDowney/BiteSizeBayes/blob/master/10_joint.ipynb) I introduced cross tabulation, joint distributions, conditional disrtribution, and marginal distributions.\n",
"\n",
"In this notebook, we'll apply these ideas to Bayesian inference.\n",
"\n",
"But first I want to introduce a computational tool we will need, outer operations."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Outer operations\n",
"\n",
"Suppose you have two sequences, like `t1` and `t2`:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"t1 = [1,3,5]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"t2 = [2,4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Many useful operations can be expressed in the form of an \"outer operation\" of these sequences.\n",
"\n",
"The most common outer operation is the outer product, which computes the product of every pair of values, one from each sequence.\n",
"\n",
"For example, here is the outer product of `t1` and `t2`:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 2, 4],\n",
" [ 6, 12],\n",
" [10, 20]])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = np.multiply.outer(t1, t2)\n",
"a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can understand this result more easily if we put it in a DataFrame:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
2
\n",
"
4
\n",
"
\n",
" \n",
" \n",
"
\n",
"
1
\n",
"
2
\n",
"
4
\n",
"
\n",
"
\n",
"
3
\n",
"
6
\n",
"
12
\n",
"
\n",
"
\n",
"
5
\n",
"
10
\n",
"
20
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 2 4\n",
"1 2 4\n",
"3 6 12\n",
"5 10 20"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(a, index=t1, columns=t2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The values from `t1` appear along the rows of the result; the values from `t2` appear along the columns. \n",
"\n",
"Each element of the result is the product of an element from `t1` and an element from `t2`.\n",
"\n",
"The outer sum is similar, except that each element is the *sum* of an element from `t1` and an element from `t2`."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([[3, 5],\n",
" [5, 7],\n",
" [7, 9]])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = np.add.outer(t1, t2)\n",
"a"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
2
\n",
"
4
\n",
"
\n",
" \n",
" \n",
"
\n",
"
1
\n",
"
3
\n",
"
5
\n",
"
\n",
"
\n",
"
3
\n",
"
5
\n",
"
7
\n",
"
\n",
"
\n",
"
5
\n",
"
7
\n",
"
9
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 2 4\n",
"1 3 5\n",
"3 5 7\n",
"5 7 9"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(a, index=t1, columns=t2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can do the same thing with almost any operation. For example, the \"outer greater than\" operation compares each element from `t1` to each element of `t2`; the result is an array of Boolean values."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([[False, False],\n",
" [ True, False],\n",
" [ True, True]])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = np.greater.outer(t1, t2)\n",
"a"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
2
\n",
"
4
\n",
"
\n",
" \n",
" \n",
"
\n",
"
1
\n",
"
False
\n",
"
False
\n",
"
\n",
"
\n",
"
3
\n",
"
True
\n",
"
False
\n",
"
\n",
"
\n",
"
5
\n",
"
True
\n",
"
True
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 2 4\n",
"1 False False\n",
"3 True False\n",
"5 True True"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(a, index=t1, columns=t2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"These outer operations work with Python lists and tuples, and NumPy arrays, but not Pandas Series.\n",
"\n",
"However, the following function works with Pandas Series, and puts the result into a DataFrame."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def outer_product(s1, s2):\n",
" \"\"\"Compute the outer product of two Series.\n",
" \n",
" First Series goes down the rows;\n",
" second goes across the columns.\n",
" \n",
" s1: Series\n",
" s2: Series\n",
" \n",
" return: DataFrame\n",
" \"\"\"\n",
" a = np.multiply.outer(s1.to_numpy(), s2.to_numpy())\n",
" return pd.DataFrame(a, index=s1.index, columns=s2.index)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It might not be obvious yet why these operations are useful, but we'll see some examples soon.\n",
"\n",
"With that, we are ready to take on a new Bayesian problem."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## How tall is A?\n",
"\n",
"Suppose I choose two people from the population of adult males in the U.S.; I'll call them A and B. If we see that A taller than B, how tall is A?\n",
"\n",
"To answer this question:\n",
"\n",
"1. I'll use background information about the height of men in the U.S. to form a prior distribution of height,\n",
"\n",
"2. I'll construct a joint distribution of height for A and B, and update it with the information that A is taller, and \n",
"\n",
"3. I'll extract from the posterior joint distribution the posterior distribution of height for A."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the U.S. the average height of male adults in 178 cm and the standard deviation is 7.7 cm. The distribution is not exactly normal, because nothing in the real world is, but the normal distribution is a pretty good model of the actual distribution, so we can use it as a prior distribution for A and B.\n",
"\n",
"Here's an array of equally-spaced values from roughly 3 standard deviations below the mean to 3 standard deviations above."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"mean = 178\n",
"std = 7.7\n",
"\n",
"xs = np.arange(mean-24, mean+24, 0.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"SciPy provides a function called `norm` that represents a normal distribution with a given mean and standard deviation, and provides `pdf`, which evaluates the probability distribution function (PDF), which we will use as the prior probabilities."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"from scipy.stats import norm\n",
"\n",
"ps = norm(mean, std).pdf(xs)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'll store the `xs` and `ps` in a Series that represents the prior PMF."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"prior = pd.Series(ps, index=xs)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And normalize it:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"prior /= prior.sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And here's what it looks like."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"prior.plot()\n",
"\n",
"plt.xlabel('Height in cm')\n",
"plt.ylabel('Probability')\n",
"plt.title('Distribution of height for men in U.S.');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can think of this prior distribution as the marginal distribution for A and B, but what we want is the joint probability of their heights."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Joint distribution\n",
"\n",
"As we saw in the previous notebook, it is not *generally* possible to construct a joint distribution if we only have the marginals, because the marginals don't contain information about correlations between the variables.\n",
"\n",
"However, in the special case where there are no correlations, or they are small enough to ignore, it *is* possible to construct the joint distribution."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To see how, let's consider one element of the joint distribution,\n",
"\n",
"$P(A_y~\\mathrm{and}~B_x)$\n",
"\n",
"which is the probability that `A` is $y$ cm tall and `B` is $x$ cm tall. We can rewrite this conjuction in terms of conditional probability:\n",
"\n",
"$P(A_y)~P(B_x~|~A_y)$\n",
"\n",
"We can compute $P(A_y)$ from the marginal distribution, but how should we compute the conditional probability, $P(B_x~|~A_y)$?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this case, the heights of `A` and `B` are \"independent\", which means that knowing the height of `A` provides no additional information about the height of `B`.\n",
"\n",
"And that means that the conditional probability, $P(B_x~|~A_y)$, is just the marginal probability $P(B_y)$.\n",
"\n",
"Which means that in this case, the joint probability is just the product of the marginal probabilities.\n",
"\n",
"$P(A_y~\\mathrm{and}~B_x) = P(A_y)~P(B_x)$\n",
"\n",
"Now, to compute the joint distribution, we have to compute this product for all values of $x$ and $y$. And we can do that by computing the outer product of the marginal distributions, like this:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(96, 96)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joint = outer_product(prior, prior)\n",
"joint.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If the prior is normalized, the joint prior should also be normalized."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joint.to_numpy().sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following function uses `pcolormesh` to plot the joint distribution.\n",
"\n",
"Recall that `outer_product` puts the values of `A` along the rows and the values of `B` across the columns."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"def plot_joint(joint):\n",
" \"\"\"Plot a joint distribution.\n",
" \n",
" joint: DataFrame representing a joint PMF\n",
" \"\"\"\n",
" plt.pcolormesh(joint.index, joint.index, joint) \n",
" plt.ylabel('A height in cm')\n",
" plt.xlabel('B height in cm')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"And here's what the result looks like."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/downey/anaconda3/envs/BiteSizeBayes/lib/python3.7/site-packages/ipykernel_launcher.py:6: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3. Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading']. This will become an error two minor releases later.\n",
" \n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_joint(joint)\n",
"plt.colorbar()\n",
"plt.title('Joint prior distribution of height for A and B');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you might expect, the probability is highest near the mean and drops off away from the mean.\n",
"\n",
"Another way to visualize the joint distribution is a contour plot."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"def plot_contour(joint):\n",
" \"\"\"Plot a joint distribution.\n",
" \n",
" joint: DataFrame representing a joint PMF\n",
" \"\"\"\n",
" plt.contour(joint.index, joint.index, joint)\n",
" plt.ylabel('A height in cm')\n",
" plt.xlabel('B height in cm')"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_contour(joint)\n",
"plt.title('Joint prior distribution of height for A and B');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each circle represents a level of equal probability. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Likelihood\n",
"\n",
"Now that we have a joint PMF that represents the prior distribution, we can update it with the data, which is that `A` is taller than `B`.\n",
"\n",
"Each element in the joint distribution represents a hypothesis about the heights of `A` and `B`; for example:\n",
"\n",
"* The element `(180, 170)` represents the hypothesis that `A` is 180 cm tall and `B` is 170 cm tall. Under this hypothesis, the probability that `A` is taller than `B` is 1.\n",
"\n",
"* The element `(170, 180)` represents the hypothesis that `A` is 170 cm tall and `B` is 180 cm tall. Under this hypothesis, the probability that `A` is taller than `B` is 0.\n",
"\n",
"To compute the likelihood of every pair of values, we can extract the values from the prior, like this:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"Y = prior.index.to_numpy()\n",
"X = prior.index.to_numpy()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And then apply the `outer` version of `np.greater`, which compares every element of `Y` (height of `A`) to every element of `X` (height of `B`)."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"a = np.greater.outer(Y, X)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result is an array, which we can put in a DataFrame with the corresponding `index` and `columns`."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"likelihood = pd.DataFrame(a, index=Y, columns=X)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's what it looks like:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/downey/anaconda3/envs/BiteSizeBayes/lib/python3.7/site-packages/ipykernel_launcher.py:6: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3. Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading']. This will become an error two minor releases later.\n",
" \n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_joint(likelihood)\n",
"plt.title('Likelihood of A>B');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The likelihood of the data is 1 where `Y>X` and 0 otherwise."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The update\n",
"\n",
"We have a prior, we have a likelihood, and we are ready for the update. As usual, the unnormalized posterior is the product of the prior and the likelihood."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"unnorm_posterior = joint * likelihood"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And we can get the normalized posterior by dividing through by the total."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.49080747821526977"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total = unnorm_posterior.to_numpy().sum()\n",
"joint_posterior = unnorm_posterior / total\n",
"total"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The total probability of the data is a little less than $1/2$.\n",
"\n",
"Here's what the normalized posterior looks like."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/downey/anaconda3/envs/BiteSizeBayes/lib/python3.7/site-packages/ipykernel_launcher.py:6: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3. Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading']. This will become an error two minor releases later.\n",
" \n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_joint(joint_posterior)\n",
"plt.colorbar()\n",
"\n",
"plt.title('Joint posterior distribution of height for A and B');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It looks like a sunrise as seen from the deck of a [heeling sailboat](https://en.wikipedia.org/wiki/Sailing#Heeling)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The marginals\n",
"\n",
"From the posterior joint distribution we can extract the posterior marginal distribution of `A` and `B`."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"def marginal(joint, axis):\n",
" \"\"\"Compute a marginal distribution.\n",
" \n",
" axis=0 returns the marginal distribution of the second variable\n",
" axis=1 returns the marginal distribution of the first variable\n",
" \n",
" joint: DataFrame representing a joint PMF\n",
" axis: int axis to sum along\n",
" \n",
" returns: Series representing a marginal PMF\n",
" \"\"\"\n",
" return joint.sum(axis=axis)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"marginal_A = marginal(joint_posterior, axis=1)\n",
"marginal_B = marginal(joint_posterior, axis=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's what they look like."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"prior.plot(label='Prior')\n",
"marginal_A.plot(label='Posterior for A')\n",
"marginal_B.plot(label='Posterior for B')\n",
"\n",
"plt.xlabel('Height in cm')\n",
"plt.ylabel('Probability')\n",
"plt.title('Prior and posterior distributions for A and B')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you might expect, the posterior distribution for `A` is shifted to the right and the posterior distribution for `B` is shifted to the left.\n",
"\n",
"We can summarize the results by computing the posterior means:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def pmf_mean(pmf):\n",
" \"\"\"Compute the mean of a PMF.\n",
" \n",
" pmf: Series representing a PMF\n",
" \n",
" return: float\n",
" \"\"\"\n",
" return np.sum(pmf.index * pmf)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"177.99516026921506"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pmf_mean(prior)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(182.38728123421686, 173.60286000233387)"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pmf_mean(marginal_A), pmf_mean(marginal_B)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Based on the observation that `A` is taller than `B`, we are inclined to believe that `A` is a little taller than average, and `B` is a little shorter."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that the posterior distribution are a little taller and narrower than the prior. We can quantify that my computing their standard deviations."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"def pmf_std(pmf):\n",
" \"\"\"Compute the standard deviation of a PMF.\n",
" \n",
" pmf: Series representing a PMF\n",
" \n",
" return: float\n",
" \"\"\"\n",
" deviation = pmf.index - pmf_mean(pmf)\n",
" var = np.sum(deviation**2 * pmf)\n",
" return np.sqrt(var)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7.624924796641578, 6.27046117764547)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pmf_std(prior), pmf_std(marginal_A)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The standard deviation of the posterior distributions are a little smaller, which means we are a little more certain about the heights of `A` and `B` after we compare them."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Conditional posteriors\n",
"\n",
"Now suppose we measure `B` and find that he is 185 cm tall. What does that tell us about `A`?\n",
"\n",
"We can answer that question by extracting the conditional posterior distribution for `A`, conditioned on `B=185`.\n",
"\n",
"Possible heights for `A` run down the rows of the joint PMF, so each row is an unnormalized posterior distribution conditioned on `A`.\n",
"\n",
"And possible heights for `B` run across the columns, so each column is an unnormalized posterior distribution conditioned on `B`.\n",
"\n",
"So we can condition on `B` by selecting a column and normalizing it."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"cond_A = joint_posterior[185].copy()\n",
"cond_A /= cond_A.sum()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"prior.plot(label='Prior')\n",
"marginal_A.plot(label='Posterior for A')\n",
"cond_A.plot(label='Posterior for A given B=185', color='C4')\n",
"\n",
"plt.xlabel('Height in cm')\n",
"plt.ylabel('Probability')\n",
"plt.title('Prior, posterior and conditional distribution for A')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The posterior conditional distribution is cut off at 185 cm, because we have established that `A` is taller than `B` and `B` is 185 cm.\n",
"\n",
"And the posterior conditional is substantially different from the unconditional posterior; that is, for each value of $y$\n",
"\n",
"$P(A_y | B_x) \\ne P(A_y)$\n",
"\n",
"which means that in the posterior distribution, `A` and `B` are not independent."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Elo rating\n",
"\n",
"[The Elo rating system](https://en.wikipedia.org/wiki/Elo_rating_system) is a way to quantify the skill level of players for games like chess.\n",
"\n",
"It is based on a model of the relationship between the ratings of players and the outcome of a game. Specifically, if $R_A$ is the rating of player $A$ and $R_B$ is the rating of player $B$, the probability that $A$ beats $B$ is given by the [logistic function](https://en.wikipedia.org/wiki/Logistic_function):\n",
"\n",
"$P(A~\\mathrm{wins}) = 1 / (1 + 10^{(R_B-R_A)/400})$\n",
"\n",
"The parameters $10$ and $400$ are arbitrary choices that determine the range of the ratings. In chess, values range from 100 to 2800.\n",
"\n",
"Notice that the probability of winning depends only on the difference in rankings. As an example, if $R_A$ exceeds $R_B$ by 100 points, the probability that $A$ wins is"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.6400649998028851"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1 / (1 + 10**(-100/400))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Exercise:** Suppose `A` has a current rating of 1600, but we are not sure it is accurate. We could describe their true rating with a normal distribution with mean 1600 and standard deviation 100, to indicate our uncertainty.\n",
"\n",
"And suppose `B` has a current rating of 1800, with the same level of uncertaintly.\n",
"\n",
"Finally, `A` and `B` play and `A` wins. How should we update their ratings?\n",
"\n",
"To answer this question:\n",
"\n",
"1. Construct prior distributions for `A` and `B`.\n",
"\n",
"2. Use them to construct a joint distribution, assuming that the prior distributions are independent.\n",
"\n",
"3. Use the logistic function above to compute the likelihood of the outcome under each joint hypothesis. Hint: use `np.subtract.outer`.\n",
"\n",
"4. Use the joint prior and likelihood to compute the joint posterior. \n",
"\n",
"5. Extract and plot the marginal posteriors for `A` and `B`.\n",
"\n",
"6. Compute the posterior means for `A` and `B`. How much should their ratings change based on this outcome?"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"# Solution\n",
"\n",
"xs = np.arange(1300, 2100, 10)\n",
"\n",
"ps = norm(1600, 100).pdf(xs)\n",
"prior_A = pd.Series(ps, index=xs)\n",
"prior_A /= prior_A.sum()\n",
"\n",
"ps = norm(1800, 100).pdf(xs)\n",
"prior_B = pd.Series(ps, index=xs)\n",
"prior_B /= prior_B.sum()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEWCAYAAABIVsEJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABVGElEQVR4nO2dd3wVVfr/3086CYRQAoSEEukh9IigAoqKwIqA2LCXXZdVV7forv62qFu+uu66xXXXtvaGqKioFBFsKL2FhFBCTwgQWkJJv8/vj5noJaRMwr2Ze5Pzfr3mdefOnDPnc+cm95nznHOeR1QVg8FgMBjqS4jbAgwGg8EQnBgDYjAYDIYGYQyIwWAwGBqEMSAGg8FgaBDGgBgMBoOhQRgDYjAYDIYGYQyIwaeIyHEROctP175ARHK83meKyAU+uvb1IvKp13sVkZ6+uLZ9Pb/dlxraExF5SUSOiMiKxmrXX4jIyyLyJ7d1GE7FGBBDrYjIThEpsn8A99s/Si1rKq+qLVV1e2NoU9X+qvpFbWVEpLttDMLquNYbqjrOF7pE5AsR+WGV6zfafbE5H7gESFLV4b66qIjE2H8Lc311zTNFRG4RkQpb13ER2S4iP3FbV3PAGBCDEyapaktgKHA28NuqBer6ga6LM60frG37kW7ATlU9Ud+KddyPK4ESYJyIJDRUnB9YahvpllgaHxeRIW6LauoYA2JwjKrmAvOAVPjOzXOXiGwFtnod62nvtxaRV0UkX0R2ichvRSTEPneLiHwjIv8QkcPAw1XbE5EWtuviiIhsxDJe3ud3isjF9v5wEVklIoV2T+nvdrGv7Nej9tPpyOrato8tqSJhov00e1BE/uql/WERed1Lx3e9HBH5MzAKeMpu76kG3JclIvI3+3PvEJEJXm3dYms6Zp+7vpr7djvwP2CkreER+/iPRCRbRA6LyBwR6exV57TvsgZuBp4B0oHT2q6i418issf+TlaLyCivcw+LyCz7PhwTyx2Z5nV+iIissc+9DUTV1pY3qroGyAL6Oa1jaBjGgBgcIyJdgInAWq/DU4BzgJRqqvwbaA2cBYwBbgJu9Tp/DrAd6AD8uZr6DwE97O1SrB+vmvgX8C9VjbXLz7KPj7Zf4+wn1KUO2waYCqRh9bwmA7fV0j4Aqvob4Gvgbru9u6sp5uS+bAbaA48DL4hFDPAkMEFVWwHnAuuq0fACMIPvn8ofEpGxwKPA1UACsAuYWaXqFGr+LhGRrsAFwBv2dlNt9wJYCQwG2gJvAu+IiLchuNzWEAfMASqNbQTwAfCaXfcdYFodbXnrPBvoDaxyWsfQQFTVbGarcQN2AseBo1g/Ov8FWtjnFBhbpbwCPYFQLFdHite5HwNf2Pu3ALvraHs7MN7r/R1AThVtF9v7XwGPAO2rXKO7rSnM69hpbdvHllT5HN5t3wkssvcfBl6vqQ3gC+CHZ3Bfsr3ORdt1OwEx9vcwrfI7qOXeVf08LwCPe71vCZQB3Wv6Lqu55m+BdfZ+Z6ACGFKPv6UjwCCve/iZ17kUoMjeHw3sBcTr/LfAn2r5rOX2vTluf5Z/e9c3m3820wMxOGGKqsapajdVvVNVi7zO7amhTnsgAsvoVLILSHRQt5LOVcrsqqkgcDvWU+cmEVkpIpfVce262q5aZpet50xxcl/2Ve6o6kl7t6Va4xnXYPUu8kTkExHp67Ddzt5tqupx4BD1+z5uwup5oKp7gS+ppVcoIr8UkSwRKRCRo1i9rvZeRfZ57Z8Eouzxl85ArtrWwaa27x5gmf032hLL2PYH/q+OOoYzxBgQw5lSUzjng1hPuN28jnUFch3UrSQP6FKlfvUiVLeq6nQsl9RfgHdtl09NbTgJQ1217b32/gmsnkElnepxbSf3pUZUdYGqXoLlhtoEPO+kHpb279q07007HH4fInIu0At4UET2icg+LHfX9OoG3e3xjl9juczaqGocUACIA615QKKIeJet8buviqruB94DJjmtY2gYxoAY/IKqVmCNQ/xZRFqJSDfgF8Drtdc8hVlYP1htRCQJ+GlNBUXkBhGJV1UPlisDLBdLPuDBGm+oL/fbbXcB7gXeto+vA0aLSFcRaQ08WKXe/praO5P7IiIdReRy+8e/BMtdU+Hws7wJ3Coig0UkEuvpfLmq7nRY/2ZgIZarabC9pWIZ0gnVlG+F5VbKB8JE5PdArMO2ltp177EnJlwBOJ6KLCLtsMavMp3WMTQMY0AM/uSnWE/r24ElWD9iL9aj/iNYrosdwKdYg6o1MR7IFJHjWAPq16pqse0C+jPwjYgcFZER9Wj/Q2A1lsH4BGscAVVdiGVM0u3zH1ep9y/gSnsW1ZPVXLeh9yUE+CVWb+Iw1gD8nU4+iKouAn6H9WSehzXR4Fonde2B76uBf6vqPq9tB9Z3Up0bawHWjL0tWN9hMc7chqhqKXAF1tjGESy33ew6qlXOODuONQMrn1oeOAy+QU51MxoMBoPB4AzTAzEYDAZDgzAGxGAwGAwNwhgQg8FgMDQIY0AMBoPB0CCaYhC502jfvr12797dbRkGg8EQVKxevfqgqsbXdL5ZGJDu3buzapUJi2MwGAz1QURqjQBgXFgGg8FgaBDGgBgMBoOhQRgDYjAYDIYG0SzGQAwGQ9OhrKyMnJwciouL3ZbSZIiKiiIpKYnw8PB61TMGxGAwBBU5OTm0atWK7t27c2rAXkNDUFUOHTpETk4OycnJ9arrVxeWiIwXkc12Gs0HqjkvIvKkfT5dRIZWOR8qImtF5GOvY21FZKGIbLVf2/jzMxgMhsCiuLiYdu3aGePhI0SEdu3aNahH5zcDIiKhwH+wQj2nYOUNqJoqcwJWjoFeWNnmnq5y/l6syJrePICVGa4XsMh+bzAYmhHGePiWht5Pf/ZAhmOl5txuh2eeiZVX2pvJwKtqsQyIE5EEADv/ww+A/1VT5xV7/xWsPM4GQ63sOXySD9bm8u22gxSXOU2h0YzxVMDetbD0v5A+Cwrz3FZkCED8OQaSyKnx/3OwMpjVVSYRK1/BP4FfYSWm8aajquYBqGqeiHSornERuQOrV0PXro6TmRmaEF9uyeeT9L18u+0QOUe+z8IbERbCsK5tOK9nO24Y0Y246AgXVQYYme9D+juwawkUF5x6rl0vSB4N5/4U2tbPV97UCA0NZcCAAZSXl9OvXz9eeeUVoqOjTyt37rnn8u233za4nXfeeYff//73dOrUic8//7zB13n//fe54ooryMrKom9fp1mQ68afPZDq+kRVk49UW8bOZ31AVVc3tHFVfU5V01Q1LT6+xpX4hiZIabmHh+dkcvOLK1iQuZ/+nWN55PL+zL1nFC/cnMZNI7pRUFTGEwu38IMnl7Buz1G3JbtP6Un48C545xbYtwFSJsMV/4Ofb4Q7voRL/mgZjfVvwbNjIOsjtxW7SosWLVi3bh0ZGRlERETwzDPPnHK+osLq5dbHeFTW8eaFF17gv//9r2PjUV5eXu3xt956i/PPP5+ZM2c61uMIVfXLBowEFni9fxB4sEqZZ4HpXu83Y+V6fhSrN7IT2AecBF73LmPvJwCb69IybNgwNTQP9hw+oZc/tUS7/fpjfWROppaUVdRYdt3uI3ruo4u05//7RF9asl09Hk8jKg0g8req/mek6kOxqov+qFpRXnPZwztVn73AKjv//6mWlzaeTpuNGzc2eptViYmJ+W7/6aef1p/85Cf6+eef6wUXXKDTp0/Xfv36nVLO4/Hofffdp/3799fU1FSdOXOmqmq1dSp55JFHNCYmRnv37q333XefFhUV6S233KKpqak6ePBgXbx4saqqvvTSS3rllVfqZZddphdeeOFpWo8dO6adO3fWzZs3a58+fWr8TNXdV2CV1vLb6k8X1kqgl4gkA7lY6TOvq1JmDnC3iMzEcm8VqOWeetDeEJELgPtU9QavOjcDj9mvH/rxMxiCiK+35nP3m2vxeJRnbhjK+NSEWssP6hLHJ/eczy9nrefhjzaycucRnrh6EFHhoY2kOADYsgDevR1Cw+H696DXxbWXb9MNbpsPn/4Wlj4FOSth+kyIbts4eqvwyEeZbNxb6NNrpnSO5aFJ/R2VLS8vZ968eYwfPx6AFStWkJGRcdp02NmzZ7Nu3TrWr1/PwYMHOfvssxk9enStdX7/+9+zePFi/va3v5GWlsYTTzwBwIYNG9i0aRPjxo1jy5YtACxdupT09HTatj39e/jggw8YP348vXv3pm3btqxZs4ahQ4eeVq4h+M2FparlwN1YuZGzgFmqmikiM0Rkhl1sLlZe6GzgeZzld34MuEREtgKX2O8NzZxN+wr58WurSWgdxUc/Pb9O41FJXHQEz9+UxgMT+vLJhjx+835GZW+46bNvA8y6Gdr1gBlf1208KgmLhIl/hStftAba37kFKqp3nTRVioqKGDx4MGlpaXTt2pXbb78dgOHDh1e7lmLJkiVMnz6d0NBQOnbsyJgxY1i5cmWtdaq7xo033ghA37596dat23cG5JJLLqnWeIDlvrr22msBuPbaa3nrrbfq/4FrwK8LCVV1LpaR8D72jNe+AnfVcY0vgC+83h8CLvKlTkNwc/RkKT96dRUtI8N49bbhdIiNqlf9kBBhxpgeFJdV8M/PtpKaGMut5zXxQeITh2DmddCiDVw3C1p1rP81UqdBWZE1dvLZQ3Dpn32vsw6c9hR8TeUYSFViYmKqLV/bQ0lNdXxxjUOHDrF48WIyMjIQESoqKhARHn/8cZ9MhTaxsAxBTXmFh7vfXMv+ghKeuXFYvY2HN/eM7cUlKR350ydZfLvtoA9VBhgV5fDuLXBsP1z7esOMRyVDboDhP7bcWevf9pnEpsbo0aN5++23qaioID8/n6+++orhw4fX+xpvvPEGAFu2bGH37t306dOn1jrvvvsuN910E7t27WLnzp3s2bOH5ORklixZ0uDP4o0xIIag5i/zN7Ek+yB/mpLK0K5nFpQgJET4+9WDSG4fw11vrGHP4ZM+UhlgLPwd7PgKJv0LEoed+fUu/TN0Ox8+usdyaRlOY+rUqQwcOJBBgwYxduxYHn/8cTp16lSva9x5551UVFQwYMAArrnmGl5++WUiIyNrrfPWW28xderUU45NmzaNN998s96foTqkOfh709LS1CSUanp8nL6Xu99cy80ju/HI5FSfXXfHwRNc/tQSurSJ5oO7ziMirAk9Z2W8B+/eBuf8BCb4cPjwxEF47gJQhZ98Ay3ifHftKmRlZdGvXz+/Xb+5Ut19FZHVqppWU50m9J9haE4UFpfx8JxMBnWJ47eXVY2Qc2Ykt4/h71cPZmNeIS99s8On13aV4gKY94DV6xj3R99eO6Y9XPUKFObCF2ZeS3PBGBBDUPKvz7Zy6EQpf56SSnio7/+ML0npyMX9OvLkoq3sK2giYcO/fBxO5MPEv1nTdn1N0jBIuxVWPAf7M31/fUPAYQyIIejYsv8YL3+7k+nDu5Ka2Npv7fz+shTKPMqj86rG8wxCDmTBsqdh6E2Q6Js1ANUy9ncQFQtzf2W5swxNGmNADEGFqvLQh5m0igrj/nG1z0A5U7q2i2bGmB58uG4vy7cf8mtbfkUV5v0KIlvBRQ/5t63otpYR2bUEMmf7ty2D6xgDYggqPtmQx9Lth7hvXB/axPg/COJPxvQgMa4FD83JpLzC4/f2/MLGD6xZV2N/CzHt/N/esFug00BY8FsoOe7/9gyuYQyIIWg4UVLOnz/Jon/nWKYPb5wIyy0iQvndZSls2neMN5bvbpQ2fUrpCVjwG+g0ANJua5w2Q0KtcZZje+HrvzVOmwZXMAbEEDS8uGQHeQXF/GFyf0JDGi+h0KX9OzKqV3v+vnALx0uCLGTH8mesmVET/mr9sDcWXc+BQdNh6X+gcG/jtdtIhIaGMnjwYFJTU7nqqqs4ebL6NUPnnnvuGbXzzjvv0K9fPy688MIGX6NS66BBgxg6dOgZhZevijEghqDgREk5L3yzg4v6dmBYt8YN3Cci3H9pHwqKynh92a5GbfuMKD1pJYTqcRF0G9n47Y/5tZWY6tunGr9tPxNM4dwrta5fv55HH32UBx980LGmujAGxBAUvLViN0dPlnHX2J6utD8wKY5Rvdrzv693BE9GwzWvwsmDMPo+d9pvmwwDroTVL1mxt5ooo0aNIjs7my+++IILL7yQ6667jgEDBgDQsmVLwJr8cf/995OamsqAAQN4+20r7Et1dSr5wx/+wJIlS5gxYwb3338/xcXF3HrrrQwYMIAhQ4Z8Z1RefvllrrrqKiZNmsS4ceNq1VpYWEibNmcWscEbvwZTNBh8QXFZBc99tZ2RZ7U743AlZ8JdF/bk2ueW8fbKPdx8bnfXdDiivBS+fRK6ngvdzsyNckac/wtIfxuW/Rcu+p3vrz/vASuqsC/pNMDxKv1gCOdeGTm4uLiYvLw8Fi9eXL/7UQumB2IIeN5dncOBYyXc7VLvo5JzktuS1q0Nz365jdLyAJ+Rtf4ta+xj9C/d1dGhL/SbBCuePz1FbhATTOHcK11YmzZtYv78+dx0000+S1lgeiCGgKaswsMzX25jcJc4zu3RCFNQa0FEuGtsT259aSUfrM3l6rO7uKqnRirKYck/IGGwNf7hNqN+aaXAXfk/a9+X+DKeVz0IlnDuVRk5ciQHDx4kPz+fDh06OKpTG6YHYgho5qzbS86RIu6+sKdP8hecKRf0jic1MZanv9xGhSdAV1pnvg9Hdlg/1gFwz+g8BHpebA3olzbRCMd14FY496ps2rSJiooK2rXzzcOYXw2IiIwXkc0iki0iD1RzXkTkSft8uogMtY9HicgKEVkvIpki8ohXnYdFJFdE1tnbRH9+BoN7eDzKf7/Ipm+nVlzU78yflnyBiHDXBT3ZcfAEn2zIc1vO6Xg8sOTvEN8X+l7mtprvGXWfNaC/5hW3lbiCW+Hc4Xt32+DBg7nmmmt45ZVXCA310ZTu2hKmn8kGhALbgLOACGA9kFKlzERgHiDACGC5fVyAlvZ+OLAcGGG/fxgrR7pjLcOGDasxkbwhcFmQkafdfv2xfrgu120pp1BR4dGxf/tcJ/7rK/V4PG7LOZUtn6o+FKu67i23lZzOixNUn0hRrSg/o8ts3LjRR4IM3lR3X4FVWstvqz97IMOBbFXdrqqlwExgcpUyk4FXba3LgDgRSbDfV8ZACLe3APUXGPzFa8t20Sk2iomp9XtS8zchIcKt5yWTubeQtXuOui3nVFb+D2I6QP8r3FZyOufMgMIc2LLAbSUGH+FPA5II7PF6n2Mfc1RGREJFZB1wAFioqsu9yt1tu7xeFJFq53WKyB0iskpEVuXn55/hRzE0NjsPnuDrrQeZPrwrYX4I136mTBmSSExEaGAtLDyyy/pxHnoThPk/Tli96TMRWiXAqhfcVmLwEf78z6xu9K5qL6LGMqpaoaqDgSRguIhUppx7GugBDAbygCeqa1xVn1PVNFVNi4+Pr796g6u8sXwXYSHCtcMDc6ZTy8gwrhiaxMfpeRw5Ueq2HIvVL1uD5sNucVtJ9YSGWdqyP4PD28/oUmpCxfuUht5PfxqQHMD7vz8JqBoUp84yqnoU+AIYb7/fbxsXD/A8lqvM0IQoLqtg1qocLu3fiY6xUW7LqZEbRnSjtNzDO6v31F3Y35SXWCvPe0+AuMA0ugAMvRkkFFa92OBLREVFcejQIWNEfISqcujQIaKi6v+/5s91ICuBXiKSDOQC1wLXVSkzB8sdNRM4ByhQ1TwRiQfKVPWoiLQALgb+AmCPkVROf5kKZPjxMxhc4KP1eykoKuP6EY0Tcbeh9OnUiuHd2/L6st388PyzCGnEAI+nsXGONcvp7EaKuNtQYhOg7w9g7etw4W8gvEW9L5GUlEROTg7GNe07oqKiSEpKqnc9vxkQVS0XkbuBBVgzsl5U1UwRmWGffwaYizUTKxs4CdxqV08AXhGRUKxe0ixV/dg+97iIDMZyde0Efuyvz2Bwh9eX76ZHfAwjz3J34aATbhjZjXveWstXW/O5oI+LU41XvQBtkuGsse5pcMrZP4SsOZD5AQyeXu/q4eHhjlZuG/yPX1eiq+pcLCPhfewZr30F7qqmXjowpIZr3uhjmYYAIj3nKOv3HOXhSSkBsXCwLsb370T7lhG8vmy3ewZkXwbsXgrj/gQhgTfh4DSSR0O7XpbRa4ABMQQOQfDXZmhOvL5sFy3CQ7liWP27024QERbCtWd3ZfGm/eQccWmV9aoXICwKBl/vTvv1RcTqheSshLz1bqsxnAHGgBgChoKiMuas38uUIZ2JjQp3W45jpp9jjdXMXOHCYHrJcUifZa37iG7cPClnxKBrITwaVpopvcGMMSCGgOHj9L0Ul3kaLV2tr0iMa8GY3vG8tyan8eNjbfwQSo/DsJsbt90zpUUcpEyx4naVFbmtxtBAjAExBAzvrc6hV4eWDEhs7baUejNtWBJ5BcUs3dbIiZPWvwVtz4Iu5zRuu75g8HQoKYRNn7itxNBAjAExBATb84+zZvdRpg1LCorB86pc3K8jsVFhvLcmp/EaPbILdn5t5R4PwntGt/OhdVdY96bbSgwNxBgQQ0Awe00uIQJTh1SNdhMcRIWHctmgzszP2MfxktPzUvuF9FnW68BrGqc9XxMSAoOuge2fQ2EARjY21IkxIAbX8XiU99fmcn6v+IBeeV4X04YmUVRWwdzGCPOuarmvuo+CNt38356/GDQd1GOlvTUEHcaAGFxn2fZD5B4tYtrQ4Ox9VDK0axzJ7WN4b3UjuLH2rIDD26wf4GCmXQ9IGm4ZQxOaJOgwBsTgOu+uyaFVZBiX9g+ssO31RUSYNjSR5TsOs+ewn9eErH/Tmgabcrl/22kMBk+H/E2wd63bSgz1xBgQg6ucKClnfsY+Jg5IICrcR1nSXGSKPYYze02u/xopK4KM96Hf5RDZyn/tNBb9r4DQSKsXYggqjAExuMr8jH2cLK1gWpCsPK+LpDbRjDyrHbPX5vgvWuzmuVBS0HTCgLSIg74TYcO7UB4gofENjjAGxOAq763JoWvbaM7uXm1esKBk2rAkdh06yapdR/zTwLq3IDYJuo/2z/XdYNB1UHQYtppshcGEMSAG19hXUMzS7YeYOiQxKNd+1MSE1E60CA/l/bV+cGOdOAjbFsPAq4MjcKJTeoy1UvFWTk02BAVN6C/QEGx8nL4XVbh8cGe3pfiUmMgwLk7pyLwNeZRVeHx78Y0fgFbAgCt9e123CQ2D/lNg66dQXOi2GoNDjAExuMZH6Xn07xxLj/iWbkvxOZMGJnDkZBnfZB/07YUzZkN8X+iQ4tvrBgKp06C8GDbPc1uJwSF+NSAiMl5ENotItog8UM15EZEn7fPpIjLUPh4lIitEZL2IZIrII1512orIQhHZar82Hed5M2L3oZOs33OUywc1rd5HJWP6xNMqKoyP1vtwUWFBLuz61vqhbUIuv+9IGm6N7WS857YSg0P8ZkDsbIL/ASYAKcB0Ean62DQB6GVvdwBP28dLgLGqOggYDIwXkRH2uQeARaraC1hkvzcEGR+l7wXgBwMTXFbiHyLDQhnfvxOfZu6juKzCNxfNfB9Qy4A0RUJCIPUK2LYITh52W43BAf7sgQwHslV1u6qWAjOByVXKTAZeVYtlQJyd81xV9bhdJtze1KvOK/b+K8AUP34Gg5/4aP1ehnVrQ1KbaLel+I1JgzpzrKScLzb7KHd3xnuQMNhavd1USZ0GnnLI+shtJQYH+NOAJALeGXZy7GOOyohIqIisAw4AC1V1uV2mo6rmAdivLiaiNjSELfuPsWnfsSbrvqrk3B7taBsT8V1v64w4vB32rmm6vY9KEgZB2x6Q8a7bSgwO8KcBqc5JW3VlVY1lVLVCVQcDScBwEUmtV+Mid4jIKhFZlZ/voydAg0/4eP1eQgQmDAju0CV1ERYawsQBnViUtZ8TZxqht3JcoP/UMxcWyIhYRnLH13Bsn9tqDHXgTwOSA3Txep8EVH0Uq7OMqh4FvgDG24f2i0gCgP16oLrGVfU5VU1T1bT4+PgGfgSDr1FVPkrPY2SPdnRoFbyRd51y+aBEiss8fJa1/8wulDEbuoyAuC51lw12UqcBamVbNAQ0/jQgK4FeIpIsIhHAtcCcKmXmADfZs7FGAAWqmici8SISByAiLYCLgU1edSrzd94MmL+yICIjt5AdB080efdVJWnd2tApNoqP1p+BG2v/Rjiwsemt/aiJDn2hY6qZjRUE+M2AqGo5cDewAMgCZqlqpojMEJEZdrG5wHYgG3geuNM+ngB8LiLpWIZooap+bJ97DLhERLYCl9jvDUHCR+l7CQ+VoI+865SQEOGygQl8uSWfgpNlDbtI5myQEEipOgelCZN6BexZDkd3u63EUAth/ry4qs7FMhLex57x2lfgrmrqpQNDarjmIeAi3yo1NAaqyifpeYzuFU9cdITbchqNSYM6878lO1iQuY+rz66nC0rVcl91HwUtm9F8kf5XwKI/WFOXz7vXbTWGGjAr0Q2NxvqcAnKPFjXZtR81MTCpNUltWjAvowGLCvdnWImjmvrgeVXaJltTls04SEBjDIih0Zi7IY/wUOGifh3dltKoiAgTBySwJPsgBUX1dGNt/NByX/W9zD/iApmUyZC72rixAhhjQAyNgqoyd0Me5/dsT+sW4W7LaXQmpHairEL5bGM9ZmOpQuYH0O08aNkMZxJWjvmYRYUBizEghkZhQ24BOUeKmDCgebmvKhncJY7OraOYu6EebqwDWXBoqxWltjnSrgd0GmAZUUNAYgyIoVGYu2EfYSHCuJTm5b6qRESYMCCBr7cepLDYoRtr44eAQN9JftUW0KRMhpwVViBJQ8BhDIjB76gq8zLyOLdn+2Y1+6oqEwd0orTCw+Ksate+ns7GD6HbudCqeRpdAFLsyQPGjRWQGANi8DuZewvZdegkE1Obx9qPmhjSxVpU+IkTN1b+ZsjPal5rP6qjfU/o0N9KpGUIOIwBMfideRl5hIYI45rJ4sGaCAkRxqd24sst+RyvKzZW5fTVfpf7X1igkzIZdi+DQh/mVjH4BGNADH7Fmn21j5FnWZFpmzs/GJhAabmHxZvqcGNt/NCKfRXbPCcdnEL/KYDCpo/rKmloZIwBMfiVTfuOsePgiSYfedcpw7q2oUOrSOam1/I0fTDbWkDY3N1XlcT3sdL4mtlYAYcxIAa/Mm9DHiFCs4l9VReVbqzPNx+oOcR7pb8/xbivviNlMuz6Bo6dYVRjg08xBsTgV+Zm7GN4clvat4x0W0rAMCE1gZJyD19uqSFPTdYcSEyD1kmNKyyQSZkMKGz+xG0lBi+MATH4jewDx8g+cJwJqcaP783w5La0i4lgXkY1CZOO7IS89ab3UZUOKVamwo1VM0IY3MQYEIPfmG//QBr31alYM9I6sjhrP8VlFaeezLIHivs148WD1SFi3ZOdX8PJw26rMdgYA2LwG/Mz9zGkaxydWjf9zIP15dL+nThRWsE32QdPPZE1BzoOgLZnuSMskEm5HDzlsGW+20oMNsaAGPzCnsMnycgtZEIzXzxYE+f2aE+rqLBT3VjH9llJlIz7qno6D4XYJLMqPYDwqwERkfEisllEskXkgWrOi4g8aZ9PF5Gh9vEuIvK5iGSJSKaI3OtV52ERyRWRdfY20Z+fwdAwKt1X4/ub8Y/qiAgL4eJ+Hfksaz9lFR7rYOUPo3FfVU+lGyt7EZQcc1uNAT8aEBEJBf4DTABSgOkiklKl2ASgl73dATxtHy8Hfqmq/YARwF1V6v5DVQfb2ykZDw2BwfzMfaQkxNK1XbTbUgKW8amdOHqyjOXbbZ9+1kfQrpe15sFQPf0mQUUJbF3othID/u2BDAeyVXW7qpYCM4GqK6MmA6+qxTIgTkQSVDVPVdcAqOoxrJzqiX7UavAh+wuLWb3rCOON+6pWRveKp0V4KPMz86yB4Z1LLPeViNvSApeuIyAm3horMriOPw1IIrDH630OpxuBOsuISHes/OjLvQ7fbbu8XhSRNtU1LiJ3iMgqEVmVn1/DfHuDX1iQabmvzPhH7bSICOXCvvEsyNyPZ9MnoBXGfVUXIaHQ9wew5VMoK3ZbTbPHkQERkctEpL7GprrHKK1PGRFpCbwH/ExVC+3DTwM9gMFAHvBEdY2r6nOqmqaqafHxzTCbm4vMz9hHj/gYenVs5baUgGd8agL5x0ooXDMbWne18oAbaqff5VB2ArYtdltJs8epUbgW2Coij4tIP4d1coAuXu+TgL1Oy4hIOJbxeENVZ1cWUNX9qlqhqh7geSxXmSFAOHyilOU7Dhv3lUMu7BNPm9BiWuZ+bfU+jPuqbpJHQ1RrMxsrAHBkQFT1Biw30jbgJRFZaruIanvEXAn0EpFkEYnAMkJVHZdzgJvs2VgjgAJVzRMRAV4AslT1794VRMR7Ws9UIMPJZzA0Dp9t3E+FR83qc4e0igpnRkI2YVqGGveVM0LDoc9E2DwXKhxmdzT4BcduKduF9B7WYHgC1o/3GhH5aQ3ly4G7gQVYg+CzVDVTRGaIyAy72FxgO5CN1Zu40z5+HnAjMLaa6bqPi8gGEUkHLgR+7vzjGvzNvIw8EuNa0L9zrNtSgoaJ4as4oHFkhJjZV47pdzkUH7VWphtcI8xJIRG5HLgVa+zhNWC4qh4QkWgs4/Dv6urZU2znVjn2jNe+AndVU28J1Y+PoKo3OtFsaHwKi8v4JvsQN43shhhXjDNKT5J0cAlveM5lb+Z+BnSpdk6IoSo9LoTwGCs2Vo+xbqtptjjtgVyJtfZioKr+VVUPAKjqSeA2v6kzBBWfbzpAaYXH5P6oD9sWI2Un2d3xYuZn7MN6pjLUSXgL6D0ONn0Cnoq6yxv8glMDkqeqX3kfEJG/AKjqIp+rMgQl8zbso0OrSIaYp2jnZM2BFm3oOvQSth88wdYDx91WFDz0mwQnDljhXwyu4NSAXFLNsQm+FGIIbopKK/hiywEu7d+JkBDjvnJEeSlsng99fsC41CRELCNscEivcRAaaWZjuUitBkREfiIiG4C+9sK9ym0HkN44Eg3BwJdbDlBc5jHTd+vDjq+gpAD6TaJDbBTDurZhfqYxII6JbGWNf2R9BMb15wp19UDeBCYBH9qvldswe2qvwQBYiwfbRIdzTnJbt6UED1lzIKIVnHUBYMXGysorZNehE+7qCiZSLoeCPbB3rdtKmiV1GRBV1Z1YM6WOeW2IiPmlMABQUl7BoqwDXJLSkbBQkyHAEZ4KawC49zgIt/KlVCbeml9dpkJD9fQeDyFhJjaWSzjpgQCsBlbZr6u93hsMfLvtEMdKyo37qj7sXgonD1rrGWy6tI0mNTG2+lS3huqJbgvdR1nTeY0bq9Gp1YCo6mX2a7KqnmW/Vm4mZZoBgPkb9tEyMozzerZ3W0rwsHEOhEVBz4tPOTwhNYF1e46SV1DkkrAgpN8kOLwNDmS5raTZUdcg+tDatsYSaQhcyis8LMzaz9i+HYgMC3VbTnDg8VgDvz0vhsiWp5yq7MUtML0Q5/S9DBAzG8sF6lqJXm2kWxsFzBLQZs6KnYc5fKLUhG6vD3vXwLG90O+h0071iG9Jrw4tmZexj1vOS3ZBXBDSqqOVJyRrDlzwa7fVNCtqNSCqemFjCTEEJ/Mz9hEVHsKYPiZkvmM2fggh4dYAcDVMSO3EU59nk3+shPhWkY0sLkjpdzkseBAObYN2PdxW02yoy4U11n69orqtcSQaApUKjzIvYx8X9ulAdISjsGoGVcuA9LgQWsRVW2TCgAQ8Cp9uNG4sx6TYkxE2fuiujmZGXbOwxtivk6rZLvOjLkMQsHrXEfKPlTBhgAnd7pi8dXB0F6RUze78PX07tSK5fYxZlV4fWidB0tmw8QO3lTQr6nJhPWS/3to4cgzBxNwNeUSGhTC2bwe3pQQPGz+01i30mVhjERFh4oBOPPPldg6fKKVtTEQjCgxiUibDp7+FwzugrRk/agycprRtJyJPisgaEVktIv8SkXb+FmcIXDweZX7GPsb0jqdlpHFfOaLSfZU82lq/UAsTUhOo8CifmtAmzqlcU2MWFTYaTpcNzwTygWlYod3zgbf9JcoQ+Kzdc5R9hcVMNO4r5+zPgMPba3VfVdK/cyxd20Yz10zndU6bbtB5iBkHaUScGpC2qvpHVd1hb38C4uqqJCLjRWSziGSLyAPVnBe7Z5NtB2kcah/vIiKfi0iWiGSKyL1eddqKyEIR2Wq/mtjhLjBvQx4RoSGM7WfcV47Z+CFIiL1uoXZEhAkDOvFt9kGOnixtBHFNhJTJkLsaju52W0mzwKkB+VxErhWREHu7GviktgoiEgr8ByvsewowXURSqhSbAPSytzuAp+3j5cAvVbUfMAK4y6vuA8AiVe0FLLLfGxoRVWv21ahe7YmNCndbTnCgCpkfQPfzIcbZiv2JqQmUe5SFG/f7V1tT4js3lllU2BjUNY33mIgUAj/GiotVam8zqTsX+XAgW1W3q2plnap998nAq2qxDIgTkQRVzVPVNQCqegwrbW6iV51X7P1XgCl1f0yDL1mfU0Du0SIz+6o+5G+CQ1sdua8qGZjUmsS4FiY2Vn1o1wM6DTBurEairlhYrVQ11n4NUdUwewtR1dg6rp0I7PF6n8P3RsBxGRHpDgwBKtOOdVTVPFtfHlCtD0VE7hCRVSKyKj8/vw6phvowb0Me4aHCJf06ui0leMj8ABDoO8lxlcrZWF9vzaewuMxv0pocKZOtLIUFuW4rafI4jr0tIm1EZLiIjK7c6qpSzbGq4TJrLSMiLYH3gJ+paqFTrQCq+pyqpqlqWny8WSXtK1SVuRl5nNezPa2jjfvKMRs/hG7nWWE36sGEAQmUVSiLsowbyzEpU61X48byO06n8f4Q+ApYADxivz5cR7UcoIvX+yRgr9MyIhKOZTzeUNXZXmX2i0iCXSYBOODkMxh8Q0ZuIXsOF5nYV/UhfzPkZ32/WroeDE6KI6F1FJ+kGzeWY9r3hA79zaLCRsBpD+Re4Gxglx0fawjWVN7aWAn0EpFkEYkArgWqTtCeA9xkz8YaARSoap6ICPACkKWqf6+mzs32/s1Y2RINjcTH6XsJC5Hvkh8ZHJAxG5BTcn84JSREmJCawFdb8ikoMm4sx/SfYuVcMW4sv+LUgBSrajGAiESq6iagT20VVLUcuBurt5IFzFLVTBGZISIz7GJzge1ANvA8cKd9/DzgRmCsiKyzt8qlu48Bl4jIVuAS+72hEVBVPk7PY1Sv9sRFm9XRjlCFzNmW+yq2YZMOJg1KoLTCY2Zj1Yf+dqg+0wvxK06XEOeISBzwAbBQRI5wujvqNFR1LpaR8D72jNe+YqXLrVpvCdWPj6Cqh4CLHOo2+JC1e46Se7SIX1zS220pwcP+TDi4Bc6ZUXfZGhjcJY6kNi34aP1erhyW5ENxTZj2PaHTQKv3N/K0nxiDj3DUA1HVqap6VFUfBn6H5V6a4kddhgDko/V7iQgN4ZL+ZvaVYzJng4TWa/puVUSEHwxM4Jvsgxw5YRYVOib1CshdBUd2uq2kyVKfWVhDReQeYCCQY6/tMDQTPB5l7oY8LugTbxYPOkXVegJOHu148WBNTBrYmXKPMt/ExnJOf3s2Vub77upowjidhfV7rEV77YD2wEsi8lt/CjMEFit3HmZ/YQmXDerstpTgIW8dHNlhPQmfIf07x5LcPoaP1tfpOTZU0qY7JA6zJzEY/IHTHsh04GxVfcgO8T4CuN5/sgyBxsfpeUSFh3CRCd3unIz3rNDtDmJf1YWIcNnABJZtP0T+sRIfiGsm9L8C9qXDwWy3lTRJnBqQnUCU1/tIYJvP1RgCkvIKD3M35HFR347EmNDtzqiMfdXjojpDtzvlsoGd8SjMy8jzyfWaBd+5sUwvxB/UFQvr3yLyJFACZIrIyyLyEpABHG8MgQb3Wbb9MIdOlDJpkIl95ZiclVCwxyfuq0r6dGpF744tjRurPrROhK4jjRvLT9T1OLnKfl0NeI9EfeEXNYaA5OP0vcREhHJBH+O+ckzGbAiNrDXzYEO4bGBn/r5wC3kFRSS0buHTazdZ+l8B8+6HA1nQoZ/bapoUdQVTfKVyA97CMiSrgTftY4YmTmm5h/mZ+7gkpSNR4aFuywkOPBXWArZel0BUXTFH68dlA61e4Cfpxo3lmJTJVh6WjPfcVtLkcDoL6wJgK1Z+j/8CWxwEUzQ0Ab7aks/Rk2VMMrOvnLNzCRzL86n7qpKz4luSmhjLh+uMG8sxrTpC91Gw4R1rbMrgM5wOoj8BjFPVMao6GrgU+If/ZBkChffX5dI2JoLRvU1EY8ekz4KIVj53X1UyZXAiG3ILyD5wzC/Xb5IMvMZaUJiz0m0lTQqnBiRcVTdXvlHVLYBZTdbEKSwu47ON+5k0MIHwUMdrTps3ZUVW6PaUyRDunzGKywd1JkTgg7WmF+KYfpMgLArS33ZbSZPC6a/CahF5QUQusLfnscZCDE2Y+Rn7KCn3MGVI1TxghhrZPA9Kj8HAq/3WRIfYKM7r2Z4P1uXi8RiXjCOiYq0eYcZsKDdBNHyFUwMyA8gE7sEK7b7RPmZownywNpfu7aIZ3CXObSnBQ/osaNXZyn3uR6YOSSTnSBGrdx/xaztNioHXQNFh2LbIbSVNhjoNiIiEAKtV9e+qeoUdWPEfqmqWwzZh8gqKWLr9EFOGJGKlZzHUyYlDkL0QBlwJIf6dsXZp/060CA/l/bUm34Vjel4ELdoaN5YPqdOAqKoHWC8iXRtBjyFAmLNuL6rWgK3BIZmzwVNuPen6mZjIMMb178gn6XmUlFf4vb0mQWg4pE6z3IzFBW6raRI4dWElYK1EXyQicyo3fwozuMv7a3MZ0jWO7u1j3JYSPKTPslKpdkptlOamDEmkoKiMLzbXlRzU8B0Dr4HyYpMv3Uc4NSCPAJcBf8Ca0lu51YqIjBeRzSKSLSIPVHNeRORJ+3y6iAz1OveiiBwQkYwqdR4WkdxqMhUafERWXiGb9h0zvY/6cHg75Kzw6+B5VUb1bE+7mAg+MG4s5ySlQZtk48byEXXFwooSkZ8BVwF9gW9U9cvKrY66oVgLDycAKcB0EUmpUmwC0Mve7gCe9jr3MjC+hsv/Q1UH29vcGsoYGsgH63IJDZHvVj0bHJD+DiDW+EcjERYawqRBnVmUdcDkS3eKiNUL2fG1yZfuA+rqgbwCpAEbsH7s6+x1eDEcyFbV7XbyqZlA1bRsk4FX1WIZECciCQCq+hVwuB7tGXxAhUeZs24vY3rH065lpNtyggNV64m2+/nQunFTzk4dkkipHS3Z4JCBVwNqrUw3nBF1GZAUVb1BVZ8FrgRG1ePaicAer/c59rH6lqmOu22X14si0qa6AiJyh4isEpFV+fnGR+yUJdkHySsoZtpQk3vbMbuXwuFtMPi6Rm96YFJrenVoyTur9tRd2GDRrgd0GQFrXzehTc6QugzId/1iVS2v57Wrm/tZ9dtyUqYqTwM9gMFAHjX0ilT1OVVNU9W0+HgThsMps1buoU10OBenmMi7jln7uhW65AzynjcUEeHqtC6s2X3UhDapD0NugENbYc8Kt5UENXUZkEEiUmhvx4CBlfsiUlhH3Rygi9f7JKBq7AUnZU5BVferaoU9vfh5LFeZwQccPlHKpxv3MWVIIpFhJvKuI4oLrZzbqVdAhDsz1qYOTSQsRJi1KseV9oOS/lMhPAbWvua2kqCmrnDuoaoaa2+tVDXMa7+uONUrgV4ikiwiEcC1QNWpv3OAm+zZWCOAAlWt1ZlbOUZiMxUruZXBB3ywNpeyCuWas7vUXdhgkfk+lJ2EITe6JqF9y0gu6teB2WtyKKvwuKYjqIhsCalTre+vxOTGayh+i5Bnu7zuBhYAWcAsVc0UkRkiUhkGZS6wHcjG6k3cWVlfRN4ClgJ9RCRHRG63Tz0uIhtEJB24EPi5vz5Dc0JVmbVqDwOTWtO3k29zWDRp1r4G8X2t6aEucnVaFw4eL2XxpgOu6ggqhtwEpcet3C2GBuHXBNf2FNu5VY4947WvwF011J1ew3H3HvWaMBtyC9i07xh/mtI4i+CaBAc2WeHBx/3Zmh7qImN6x9OhVSSzVu7h0v6dXNUSNHQZDu16wZrXrDERQ70xMboNALy9cg+RYSEmcVR9WPsahIQ1SuiSuggLDWHasCQ+33yA/YXFbssJDkRg6I2wZxkc3Oq2mqDEGBADRaUVzFm3l4kDEmjdwqR5cUR5KayfCX0mQMvAmOV3dVoXPArvrTGD6Y4ZeC1IqBlMbyDGgBiYn5nHsZJyrkozaz8cs3UBnDzo6uB5VZLbxzC8e1veWZWDmvUNzmjVEXqPh3VvQYVZzV9fjAExMHPFHrq2jWZEcju3pQQPa16FVgnQ4yK3lZzC1Wd3YcfBE6zYYYI4OGbIDXDiAGz91G0lQYcxIM2cLfuPsXzHYa4d3oWQEJP3wxFHdsLWhVbvI9Sv81DqzQ8GJBAbFcZry3a5LSV46DXOSgK28n9uKwk6jAFp5ry2dBcRoSFck2bWfjhm5QsgIZB2q9tKTqNFRChXpXVhfsY+DpjBdGeEhkHabbBtMRzMdltNUGEMSDPmWHEZs9fkcNnABBM40SllRdaAa98fQGxgzli7YUQ3yj3KWytMfCzHDLsZQsJh1QtuKwkqjAFpxry/NpcTpRXcdG53t6UEDxmzoegIDP+R20pqJLl9DGN6x/Pmil1mZbpTWnawYpmtfQNKT7itJmgwBqSZoqq8unQXA5NaM7hLnNtygoeVz1srz7vXJzB143PTyG7sLyxh4cb9bksJHob/CEoKTJj3emAMSDNl6fZDZB84zo0jurktJXjIWQ1718LZP3R95XldXNCnA0ltWvDq0p1uSwkeupwDHQfAiv+ZMO8OMQakmfLa0l3ERYeblef1YeXzENEyIFae10VoiHDDiG4s236YzftMmHdHiMDwH8L+DbBnudtqggJjQJoheQVFfLpxP9ekdSEq3IRtd8SJQ9b4x6BrISo4gk1endaFiLAQXlu2020pwcOAqyCyNax43m0lQYExIM2QN5fvxqPKDcZ95Zw1r0BFieW+ChLaxkQwaWBn3l+TS2GxWWXtiIgYGHI9bPwQjpnxo7owBqSZcbK0nNeX7eKivh3p0jbabTnBQXkJrHgOksdAh35uq6kXt57XnROlFcxcsdttKcHD2T8ETzmseNZtJQGPMSDNjHdW5XDkZBkzxpzltpTgYcM7cCwPzrvXbSX1JjWxNef1bMcLS3ZQWm6m9DqiXQ9IudxamV5ixo9qw68GRETGi8hmEckWkQeqOS8i8qR9Pl1Ehnqde1FEDohIRpU6bUVkoYhstV/b+PMzNCXKKzw8//V2hnVrQ1r3tm7LCQ48HvjmSWt2To+xbqtpED8e3YP9hSV8uC7XbSnBw3n3QnGBFfPMUCN+MyAiEgr8B5gApADTRSSlSrEJQC97uwN42uvcy8D4ai79ALBIVXsBi+z3BgfMzdhHzpEiZozp4baU4GHrAji42fpBCfCpuzUxqld7+iXE8txX2/F4zPRURyQOs9b6LP2PidJbC/7sgQwHslV1u6qWAjOByVXKTAZeVYtlQFxlznNV/QqoLqToZOAVe/8VYIo/xDc1VJVnv9xGj/gYLurbwW05wcM3/4LWXaH/FLeVNBgRYcaYs9h64DifbzYpbx1z3r1QmAsZ77mtJGDxpwFJBLyD8eTYx+pbpiodVTUPwH6t9tdQRO4QkVUisio/P79ewpsiS7IPkrm3kB+P7mGi7jpl93LYvRRG3gWhwZ1oa+KABBLjWvDMl9vclhI89LwYOqRYDxFmYWG1+NOAVPcrVfVbcFKmQajqc6qapqpp8fGBkTHOTZ79cjsdWkUyeYhZOOiYb5+EFm2stKdBTnhoCD8clczKnUdYvcvkCnGEiNULObARsj9zW01A4k8DkgN4xwhPAvY2oExV9le6uexX0yevg4zcApZkH+S285OJDDMLBx1xcCts+gTO/pG1NqAJcM3ZXYiLDufZL7e7LSV4SJ0GsYmw5J9uKwlI/GlAVgK9RCRZRCKAa4E5VcrMAW6yZ2ONAAoq3VO1MAe42d6/GfjQl6KbIk8tzqZVZBjXndPVbSnBw1d/g7AoGH6H20p8RnREGDeN7M6nG/eTlVfotpzgIDTccmHuWgK7vnVbTcDhNwOiquXA3cACIAuYpaqZIjJDRGbYxeYC24Fs4Hngzsr6IvIWsBToIyI5InK7feox4BIR2QpcYr831MCGnALmZ+7jh6POIjYquP34jcaBTZD+thWdtWXTcn/efl4yraLC+MfCLW5LCR6G3QotO8LiP5mxkCr4NR+nqs7FMhLex57x2lfgrhrqTq/h+CEgsBJRBzB/X7iZuOhwbju/u9tSgocvHrXcVuf9zG0lPqd1dDh3jDqLJxZuIT3nKAOT4tyWFPhERMOo+2De/bD9C+hxoduKAgazEr0Js3rXYT7fnM+PR/eglel9OCMvHTZ+ACPuhJh2bqvxC7een0yb6HCe+NT0Qhwz7GaITTK9kCoYA9KEeeLTLbRvGcHN55qgiY754lGIam35vZsoLSPD+MkFPfhySz4rd5oZWY4Ii4Qxv4LcVbD1U7fVBAzGgDRRvs0+yLfbDnHnBT2JjvCrp7LpkLMaNs+Fc38KLeLcVuNXbhzRnfhWkfxtwWbUPFE7Y/B10CbZ6oV4TFwxMAakSaKqPLFwC51io8zMq/rw+Z8guh2cM6PuskFOi4hQ7rqgB8t3HObbbYfclhMchIbDBQ/CvnTY9JHbagICY0CaIIs3HWD1riPcPbanSRjllB1fw7bF1sB5ZCu31TQK08/pSufWUTy+YLOJkeWUAVdC+z6w+M9QUe62GtcxBqSJUVru4U+fZHFW+xiuTutSdwWD9UMw/wFo3SWoEkadKZFhofxiXB/W7znKByZSrzNCQuHih6wAm6tecFuN6xgD0sR46Zsd7Dh4gt9NSiEizHy9jljzMuzPgHF/tKZsNiOuGJLIoC5xPDpvE8dLzBO1I/pMhLMuhM//DCcOuq3GVcwvTBPiwLFi/r04m7F9O3BhHxNx1xEnD1uDot1HQcoUt9U0OiEhwsOTUsg/VsJTi7PdlhMciMD4x6DkuPW304wxBqQJ8fj8zZSUV/C7y6qmXTHUyBePWomDxj8WtPk+zpQhXdtw5bAkXlxi9V4NDujQF875Max+GfLWu63GNYwBaSKs3X2Ed1fncNv5ySS3bxrB//zO/kwrbWnabdAp1W01rvKr8X2ICAvhTx9vdFtK8DDm19asvXm/braLC40BaQJ4PMrDH20kvlUkPx3by205wYGq9Y8f1Rou/I3balynQ6so7rmoJ4s2HTBJp5zSIg4u+p2VM6aZJp0yBqQJ8MbyXazfc5QHxvelZaRZNOiI9TNh59eW8Yg2+eEBbjk3mbPax/DQh5mcLDUD6o4YciMkDIIF/88aT2tmGAMS5Ow+dJJH521iVK/2XDG0rmSOBgAK98L8X0PXkZB2e93lmwkRYSE8Nm0ge46c5C/zNrktJzgICYXLn4KTh6yp4M0MY0CCGI9Huf/d9YSI8Ni0gUgzHQSuF6rw0b1QXgqT/wMh5l/Am+HJbbnl3O68snQX325r3lNUHZMw0IrWm/62lYSsGWH+e4KY15btYvmOw/z2B/1IjGvhtpzgYN2bVjC8ix+Cdj3cVhOQ/OrSvnRvF82v3k3nhFkb4oxRv4SOA+CjnzUrV5YxIEHKrkMneGzeJkb3jueas82Kc0cU7oX5D0LXc2H4j91WE7C0iAjlr1cNIvdoEY8ZV5YzwiJg6tNQdBjm/cptNY2GXw2IiIwXkc0iki0ipzkI7VS2T9rn00VkaF11ReRhEckVkXX2NtGfnyEQqfAo97+bTliI8JdpA4zrygmqMOceqCiFyU8Z11UdnN29Lbedl8xry3bxTbZxZTmi0wAY/SvY8A5srJq9u2nit/8iEQkF/gNMAFKA6SJSdYXbBKCXvd0BPO2w7j9UdbC9zaWZ8c/PtrBix2F+PymFhNbGdeWIb/4J2Qvhkj8Y15VD7hvXhx7xMdw7cx37C4vdlhMcjPoFJAyGOXfD4R1uq/E7/nwMGw5kq+p2VS0FZgKTq5SZDLyqFsuAOBFJcFi3WbIoaz//XpzNVcOSuHJYkttygoMdX8GiP0D/qVaec4MjWkSE8vQNwzhRUs5db6yhrMLkwKiT0HC4+hVAYNaNUFbktiK/4k8Dkgjs8XqfYx9zUqauunfbLq8XRaRNdY2LyB0iskpEVuXn5zf0MwQUuw+d5Odvr6N/51j+OCXVuK6cULgX3r0N2vWEy//dbMOVNJTeHVvxlysHsmrXER6da8ZDHNGmO1zxPOzLgE9+2aRXqfvTgFT3n1r1TtZUpra6TwM9gMFAHvBEdY2r6nOqmqaqafHx8Y4EBzLFZRXMeH01AE9fP8zk+XBCeSnMutl6Crzm9WaT58PXXD6oM7ec250Xv9nBx+l73ZYTHPQeZ6XAXfeGFS+rieJPA5IDeE8PSgKq/vXVVKbGuqq6X1UrVNUDPI/l7mrSqCq/eT+DjXmF/PPawXRt17xCjjcIVWt1cM4Ka71HfB+3FQU1/29iP4Z1a8Ov3k1n875jbssJDsb8GnpcZM3Kylnlthq/4E8DshLoJSLJIhIBXAtUnZowB7jJno01AihQ1bza6tpjJJVMBTL8+BkCgr8v3MJ7a3K496JejO3b0W05wcE3/4SVz8O590D/KW6rCXoiwkL4z3VDaRkZxs0vriDnyEm3JQU+IaEw7X8Q2xneuAoObnVbkc/xmwFR1XLgbmABkAXMUtVMEZkhIpVJp+cC24FsrN7EnbXVtes8LiIbRCQduBD4ub8+QyDw0jc7+PfibK5J68LPLjaBEh2x5lX47GEYcBVc/IjbapoMnVpH8cptwzlRWs5NL6zg0PEStyUFPtFt4YbZljF5bao1JteEEG3CAzyVpKWl6apVwdeF/HBdLvfOXMe4lI789/qhhIWatQt1kvWxNfvlrAth+kxrgZfBp6zYcZgbX1hOn06tePNHI0wATyfsXQcvXwatk+DWuUETwFNEVqtqWk3nzS9SgPLF5gP8ctZ6zkluy5PThxjj4YSdS6wZV52HwjWvGePhJ4Ynt+U/1w0lc28hM15bTUl5hduSAp/Og2H6m3B4G7x5DZQ2jcRd5lcpAJmfkccdr66md8dWPH9zmplx5YQtn8LrV0KbbnD9OxBhkmr5k4tTOvLYFQNYkn2Q215eafKpOyF5NEx7AXJXwauTm0TMLGNAAoyZK3Zz5xtrSE2M5c0fnUNsVLjbkgKf9Fkwczq07wW3BI97INi5Kq0LT1w1iGXbD3Pd88vMmIgTUi6Hq16x0uC+NDHox0SMAQkQVJX/fpHNA7M3MKpXPK//8Bzioo0Lpk6WPQOzfwRdRsAtn0DL4F/zE0xMG5bEszcMY/O+Y1z17FJyjzbtldc+IeVyuOE9KMiBF8bBwWy3FTUYY0ACgJLyCn7/YSaPz9/M5YM68/xNaURHmIHJWqkogwW/sRJD9b3M+oeMinVbVbPk4pSOvHb7OeQfK2Haf79l7e4jbksKfJJHwy0fWYtcXxxnhdsJQowBcZmcIye5+pmlvLZsF3eMPot/XjOYiDDztdRK4V54ZRIsfQrO/pHlEgiPcltVs2Z4cltm/XgkYaHC1c8u5eVvdtAcZnieEZ2HwG0LoEVba0zk6yfAE1zxxsw0XhdZvGk/P397PR6P8terBjI+NaHuSs2d7V/Au7dbT26T/gUDr3JbkcGLgpNl/GLWOhZtOsAPBiTw2LQBtDLjeLVTcszKkpnxHvQaB1OfDZhxvLqm8RoD4gLHisv424LNvLJ0FykJsfz3+qF0b29mDdVK6Qn44lH49ilo39uapmvCkwQkHo/y7Ffb+dunm0lq04L/mzqA83q2d1tWYKMKK/9nJTxr2RF+8AT0Ge+2KmNAIHAMiKoyP2MfD3+UyYFjJdw8sjsPTOhrpunWxZZPraimBbth6M1w6f9BZEu3VRnqYMWOw9z/7np2HTrJFUMT+c3EfrRrGem2rMAmdzV8cCfkb4KUyTD+LxDrnmfCGBACw4Bszz/O/83N4rOsA/RLiOXRKwYwuEucq5oCnsM7rJAkGz+A+L5w2T+h20iXRRnqQ3FZBU8tzubZr7YRExnGry7ty1VpSYSbhbE1U14K3z4JX/0VQsJh7G8g7TYIa3zjawwI7hqQXYdO8K9FW/lgbS6RYaH84pLe3Hped7OyvDaO7rb+eda9CSFhMPo+OPdes7I8iNmy/xi/eX8DK3ceoWvbaO65qBdTBnc2/we1cWib1fPe/jnEJlr/B4NvaNT/A2NAcMeAbNxbyEvf7GD22lzCQoSbRnbjx2N60N504WvmQBYsfxbWvm4lfhp2K5z/c1e78Abfoaos3nSAvy/cQubeQpLbxzBjzFlMGtTZTFuvCVVr4sjn/2elJmjdFc67BwZe0yjT1o0BofEMSHFZBR+n5/HG8l2s3X2UyLAQrjunKz8Z04MOsWaaabWUl8DGObDqRdj9LYRGwJAbrdzSrU3K3qaIqrJw437++dlWNuYV0ioqjGlDk7junK707miSflWLKmQvsiaS5K6C8BhrBmLabZAwyG/NGgOCfw1IUWkFX27JZ35GHouyDnCspJwe8TFcf043pg1NonW0mcJ4GmXFsG0xZH0Em+dC8VFok2z9Mwy+HmLaua3Q0AioKqt3HeH1ZbuYu2EfpRUeUhNjmZCawKX9O9Gzg5kocRqqkLvGeuDKeA/Ki6BDf+g3yVrh3iHFp2mbjQHBtwbE41E27z/Gsu2H+HbbIZZsPUhRWQVx0eFc0q8jVwxNYsRZbU2+cm9ULffUziWw8yvY9jmUHoeo1tBnIgy8GpIvgBDjD2+uHD5Ryuw1OXyyIY+1u48C0KtDS0b1imdkj3YMT25L6xbmYewUio5aceAy34fdSwGFtj2g50XQfRR0P/+M15MYA0LDDYiqsq+wmIzcQjJyC8jcW8DqXUc4crIMgK5toxnduz0TUhM4J7mtGRAEy1gc22cFi6vc9iyHkwet8627Qs+x0O9yK5xDqPlRMJxKXkERn2bu59ON+1i18wgl5R5EICUhloFJcQxIbE1qYiy9O7YyU+ArOX4ANn0Mmz6BXd9CmZ0xsmMqTPwrdDu3QZd11YCIyHjgX0Ao8D9VfazKebHPTwROAreo6pra6opIW+BtoDuwE7haVWsNvtNQA/Lg7A28tWI3ACECPeJbMqhLHCPPaseIHu1IjGtR72s2CcpLoDAXCnKt16N74FC2vW2F4gK7oEC7npA4DJJHWU9Fbbq5Kt0QXBSXVbB+z1GWbT/Mip2HyMgtpKDIeoALEUhqE01y+xjOio+hW9toEuJa0Ll1CxLiomgXE9E8PQHlpbB3rdXb3/E1THgcOvRt0KVcMyAiEgpsAS4BcrDynE9X1Y1eZSYCP8UyIOcA/1LVc2qrKyKPA4dV9TEReQBoo6q/rk1LQw3IV1vy2XnoBP07t6ZfQqvgmymiCp4K8JSDp8wKQFheAhWl1lZWBOXF1lZWZLmVSk9A6UkoKbS6yMUF1hjFyUNwIt/avjMQXsQmQrse0K6XtVI8YRB0SoVIMyhq8B2qSs6RIjL3FrAx7xjb84+z4+AJdhw8wcnSUxNbhYcKbWMiaBcTSbuWEcRFR9C6RRixUeHEtggnJjKM6PBQYiJDiY4IIyo8lMiwkO9eI8JCCA8NISI0hPAwISwkhLAQISSk+RilugyIP38RhwPZqrrdFjITmAxs9CozGXhVLSu2TETiRCQBq3dRU93JwAV2/VeAL4BaDUhDGZ33EqM3vAurndaowxifZqy1ynG1971fazrusfbVY28VViA2rbCMhtqG40yIaGmNU0S1huh20GkgxMRDTHuI7WwZjdZJ1mtE9Jm1ZTA4QETo0jaaLm2jT4kdp6ocPF5KXkERe48Ws/doEfnHSzh0vIRDx0s5eKKUnCNFFBaVUVBURrmn4Q/OIliGRITQECFULKMSGiKEiKVR7HIh3+3Ld3VFQJDvxrpPOf9dI1XarOOe1Mb/TR3A8GT/xNbypwFJBPZ4vc/B6mXUVSaxjrodVTUPQFXzRKRDdY2LyB3AHQBdu3Zt2Cdo2RE69KtfnTq7zFX/MuTU4yLWfo2vgITY+yGnbiGhXq+h1vhCSLj1PiTMWskaGm5NlQ2NtCLYhtlbRLQ1NTDC3iJjITTIelyGZouIEN8qkvhWkQysY/a3qlJUVsGJkgpOlpZ/91pc5qGkvILiMg/FZRWUezyUlnsorVDKKjxUeJTyCqXc46Hco3g8ah3zKKqKR8GjikfVerZTUKzjlfuVz4SVnh9rn+/28Tr3nd5aP0zd9yYm0n/jRP78hajul7Tqx62pjJO6taKqzwHPgeXCqk/d7xh2s7UZDIYmg4gQHRFmu6TNwt4zwZ/ThnKALl7vk4Cq+RtrKlNb3f22mwv79YAPNRsMBoPBIf40ICuBXiKSLCIRwLXAnCpl5gA3icUIoMB2T9VWdw5Q2S24GfjQj5/BYDAYDDXgNxeWqpaLyN3AAqypuC+qaqaIzLDPPwPMxZqBlY01jffW2ural34MmCUitwO7AZNRyGAwGFzALCQ0GAwGQ7XUNY3XLJ02GAwGQ4MwBsRgMBgMDcIYEIPBYDA0CGNADAaDwdAgmsUguojkA7saWL09cNCHcnxJoGoLVF0QuNoCVRcErrZA1QWBq62+urqpanxNJ5uFATkTRGRVbbMQ3CRQtQWqLghcbYGqCwJXW6DqgsDV5mtdxoVlMBgMhgZhDIjBYDAYGoQxIHXznNsCaiFQtQWqLghcbYGqCwJXW6DqgsDV5lNdZgzEYDAYDA3C9EAMBoPB0CCMATEYDAZDg2iWBkREXhSRAyKS4XXsjyKSLiLrRORTEensde5BEckWkc0icqnX8WEissE+96TUlVuyAbq8zt0nIioi7RtbV03aRORhEcm179k6O8d9o2qr6Z6JyE/ttjNF5PHG1lWTNhF52+t+7RSRdY2trQZdg0Vkma1rlYgMb2xdtWgbJCJL7bY+EpHYxtYmIl1E5HMRybL/pu61j7cVkYUistV+bdOY2mrRdZX93iMiaVXq+E6Xqja7DRgNDAUyvI7Feu3fAzxj76cA67FSlyUD24BQ+9wKYCRWBsV5wARf67KPd8EKbb8LaN/Yumq5Zw8D91VT1tV7BlwIfAZE2u87BMo9q3L+CeD3AXLPPq28LlaKhS8C5Z5h5QcaY+/fBvzRhXuWAAy191sBW+z2HwcesI8/APylMbXVoqsf0Af4Akjz1/9ms+yBqOpXwOEqxwq93sbwfQrdycBMVS1R1R1YuUuGi5UNMVZVl6p1918Fpvhal80/gF9xalrfRtNVh7bqcPue/QR4TFVL7DKVWSsD5p7ZT3dXA281trYadClQ+WTfmu8zgAbCPesDfGXvLwSmNbY2Vc1T1TX2/jEgC0i0NbxiF3vFq51G0VaTLlXNUtXN1VTxqa5maUBqQkT+LCJ7gOuB39uHE4E9XsVy7GOJ9n7V477WdDmQq6rrq5xyVZcXd4vl+nvRq/vutrbewCgRWS4iX4rI2QGiy5tRwH5V3Rog2n4G/NX++/8b8GCA6ALIAC6396/i+3TXrmgTke7AEGA50FGtLKrYrx3c0lZFV034VJcxIF6o6m9UtQvwBnC3fbg6P6DWctxniEg08Bu+N2annHZLlxdPAz2AwUAelkuGWjQ0lrYwoA0wArgfK4OlBIAub6bzfe+DWjQ0lrafAD+3//5/DrwQILrAclvdJSKrsdw0pW5pE5GWwHvAz6p4LU4r2pja3NJlDEj1vMn33eQcvn/iAUjC6t7n2PtVj/uSHlh+yvUistNuY42IdHJZFwCqul9VK1TVAzwPVA68uq0tB5itFisAD1YQObd1ASAiYcAVwNtVNLup7WZgtr3/DoHzXaKqm1R1nKoOwzK629zQJiLhWD/Sb6hq5b3ab7t/sF8r3aWNpq0GXTXhU13GgNiISC+vt5cDm+z9OcC1IhIpIslAL2CF3V09JiIj7Kfbm4APfalJVTeoagdV7a6q3bG+5KGqus9NXZVU/uPYTMVyNRAA2j4AxtoaewMRWBFI3dZVycXAJlX1dhm4rW0vMMbeHwtUutbc1oWIdLBfQ4DfAs80tjb7Oi8AWar6d69Tc7CML/brh17H/a6tFl014VtdDR39D+YN6ykmDyjD+lG+HcuCZwDpwEdYA1GV5X+D9dSzGa+ZCUCaXWcb8BT2yn5f6qpyfif2LKzG1FXLPXsN2GDfszlAQiDcMyyD8brdzhpgbKDcM/v4y8CMasq7ec/OB1ZjzdBZDgwLlHsG3Is1u2gL8Jh3O414z87HcumkA+vsbSLQDliEZXAXAW0bU1stuqba968E2A8s8IcuE8rEYDAYDA3CuLAMBoPB0CCMATEYDAZDgzAGxGAwGAwNwhgQg8FgMDQIY0AMBoPB0CCMATEY6kBEKuT7CLrrROQB+/gXVSOd+qi9KSKS4vX+DyJysa/bMRjOlDC3BRgMQUCRqg725QVFJFRVK2o4PQX4GNgIoKrVhbIxGFzH9EAMBh8gItPtXAoZIvKXGsrsFJHfi8gS4CoR+ZGIrBSR9SLynohEi8i5WJEQ/mr3dnqIyMsicqXXNR4RkTV2e33t4/Fi5aNYIyLPisgu8codYzD4A2NADIa6aVHFhXWN90mxko/9BSsEyGDgbBGZUsO1ilX1fFWdiRWv62xVHYQVhvt2Vf0Wa1X//ao6WFW3VXONg6o6FCuY5X32sYeAxfbx94GuZ/SJDQYHGBeWwVA3dbmwzsZKwJQPICJvYCVG+qCast4BFFNF5E9AHNASK2mYEyoD5q3GCsoIVkiLqQCqOl9Ejji8lsHQYEwPxGA4c+qTkvSE1/7LwN2qOgB4BIhyeI0S+7WC7x8CzzidrMFQX4wBMRjOnOXAGBFpLyKhWLk+vnRQrxWQZ4fjvt7r+DH7XH1YgpXhEBEZh5UPxWDwK8aAGAx1U3UM5DHvk2qFwn4Q+Bwrmu0aVXUSovt3WMZnId+nDwCYCdwvImtFpIdDjY8A40RkDTABK6LtMYd1DYYGYaLxGgxNABGJBCpUtVxERgJP+3rqscFQFTOIbjA0Dbpipe4NwUr5+iOX9RiaAaYHYjAYDIYGYcZADAaDwdAgjAExGAwGQ4MwBsRgMBgMDcIYEIPBYDA0CGNADAaDwdAg/j+SBlHqFR+c7AAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Solution\n",
"\n",
"prior_A.plot(label='Prior for A')\n",
"prior_B.plot(label='Prior for B')\n",
"\n",
"plt.xlabel('Elo rating')\n",
"plt.ylabel('Probability')\n",
"plt.title('Prior distributions for A and B')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"data": {
"text/plain": [
"(80, 80)"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Solution\n",
"\n",
"joint = outer_product(prior_A, prior_B)\n",
"joint.shape"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/downey/anaconda3/envs/BiteSizeBayes/lib/python3.7/site-packages/ipykernel_launcher.py:3: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3. Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading']. This will become an error two minor releases later.\n",
" This is separate from the ipykernel package so we can avoid doing imports until\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Solution\n",
"\n",
"plt.pcolormesh(joint.index, joint.index, joint) \n",
"plt.ylabel('A rating')\n",
"plt.xlabel('B rating');"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"# Solution\n",
"\n",
"diff = np.subtract.outer(prior_A.index, prior_B.index)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/downey/anaconda3/envs/BiteSizeBayes/lib/python3.7/site-packages/ipykernel_launcher.py:5: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3. Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading']. This will become an error two minor releases later.\n",
" \"\"\"\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Solution\n",
"\n",
"likelihood = 1 / (1 + 10**(-diff/400))\n",
"\n",
"plt.pcolormesh(joint.index, joint.index, likelihood) \n",
"plt.ylabel('A rating')\n",
"plt.xlabel('B rating');"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"# Solution\n",
"\n",
"joint_posterior = joint * likelihood\n",
"joint_posterior /= joint_posterior.to_numpy().sum()"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/downey/anaconda3/envs/BiteSizeBayes/lib/python3.7/site-packages/ipykernel_launcher.py:3: MatplotlibDeprecationWarning: shading='flat' when X and Y have the same dimensions as C is deprecated since 3.3. Either specify the corners of the quadrilaterals with X and Y, or pass shading='auto', 'nearest' or 'gouraud', or set rcParams['pcolor.shading']. This will become an error two minor releases later.\n",
" This is separate from the ipykernel package so we can avoid doing imports until\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Solution\n",
"\n",
"plt.pcolormesh(joint.index, joint.index, joint_posterior) \n",
"plt.ylabel('A rating')\n",
"plt.xlabel('B rating');"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"# Solution\n",
"\n",
"marginal_A = marginal(joint_posterior, axis=1)\n",
"marginal_B = marginal(joint_posterior, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Solution\n",
"\n",
"marginal_A.plot(label='Posterior for A')\n",
"marginal_B.plot(label='Posterior for B')\n",
"\n",
"plt.xlabel('Elo rating')\n",
"plt.ylabel('Probability')\n",
"plt.title('Posterior distributions for A and B')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"scrolled": true,
"tags": [
"remove-cell"
]
},
"outputs": [
{
"data": {
"text/plain": [
"(1637.7213735750752, 1762.2426343832121)"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Solution\n",
"\n",
"pmf_mean(marginal_A), pmf_mean(marginal_B)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"data": {
"text/plain": [
"(99.41698581100648, 96.86560602798998)"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Solution\n",
"\n",
"pmf_std(prior_A), pmf_std(marginal_A)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Summary\n",
"\n",
"In this notebook I started with the \"outer\" operations, like outer product and outer sum; then we used them to construct a joint distribution.\n",
"\n",
"In general, you cannot construct a joint distrubution from two marginal distributions, but in the special case where the distributions are independent, you can.\n",
"\n",
"We extended the Bayesian update process we've seen in previous notebook and applied it to a joint distribution. Then from the posterior joint distribution we extracted posterior marginal distributions and posterior conditional distributions.\n",
"\n",
"As an exercise, you had a chance to apply the same process to a slightly more difficult problem, updating Elo ratings based on the outcome of a chess game.\n",
"\n",
"[In the next notebook](https://colab.research.google.com/github/AllenDowney/BiteSizeBayes/blob/master/12_binomial.ipynb) we'll get back to a problem we left half-finished: the Euro problem."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 1
}