{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"tags": [
"remove_cell"
]
},
"outputs": [],
"source": [
"# HIDDEN\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"from datascience import *\n",
"from prob140 import *\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"plt.style.use('fivethirtyeight')\n",
"%matplotlib inline\n",
"from scipy import stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## PGFs in NumPy ##"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Recall our algorithm to find the distribution of $S_n$, the sum of $n$ i.i.d. copies of a random variable $X_1$ that has values in a finite set of non-negative integers.\n",
"\n",
"- Start with the pgf of $X_1$.\n",
"- Raise it to the power $n$. That's the pgf of $S_n$.\n",
"- Read the distribution of $S_n$ off the pgf.\n",
"\n",
"In this section we will use `NumPy` to carry out this algorithm."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"tags": [
"remove-input",
"hide-output"
]
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" VIDEO \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# VIDEO: PGF in NumPy\n",
"from IPython.display import YouTubeVideo\n",
"\n",
"YouTubeVideo('e3ItAqkAhj4')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's start with an example. Suppose the distribution of $X_1$ is given by $p_0 = 0.1$, $p_1 = 0.5$, $p_2 = 0.4$. Let `probs_X1` be an array containing the probabilities of the values 0, 1, and 2."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"probs_X1 = make_array(0.1, 0.5, 0.4)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"dist_X1 = Table().values(np.arange(3)).probabilities(probs_X1)\n",
"Plot(dist_X1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The pgf of $X_1$ is \n",
"\n",
"$$\n",
"0.1 + 0.5s + 0.4s^2\n",
"$$ \n",
"\n",
"`NumPy` expresses this polynomial in the standard mathematical way, leading with the term of the highest degree:\n",
"\n",
"$$\n",
"0.4s^2 + 0.5s + 0.1\n",
"$$\n",
"\n",
"The method `np.flipud` reverses the array of probabilities to be consistent with this order of coefficients. The `ud` in the name is for \"up down\". `NumPy` is thinking of the array as a column."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.4, 0.5, 0.1])"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"coeffs_X1 = np.flipud(probs_X1)\n",
"coeffs_X1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The method `np.poly1d` takes the array of coefficients as its argument and constructs the polynomial. The `1d` in the name stands for \"one dimensional\"."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 2\n",
"0.4 x + 0.5 x + 0.1\n"
]
}
],
"source": [
"pgf_X1 = np.poly1d(coeffs_X1)\n",
"print(pgf_X1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The call to `print` displays the polynomial in retro typewriter style, using $x$ where we have been using $s$. Keep in mind that the final term is the coefficient of $x^0$."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"tags": [
"remove-input",
"hide-output"
]
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" VIDEO \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# VIDEO: PGF of a Sum of IID Random Variables\n",
"YouTubeVideo('dJCAW5CRJlc')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now suppose $S_3$ is the sum of three i.i.d. copies of $X_1$. The pgf of $S_3$ is the cube of the pgf of $X_1$ and can be calculated just as you would hope."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 6 5 4 3 2\n",
"0.064 x + 0.24 x + 0.348 x + 0.245 x + 0.087 x + 0.015 x + 0.001\n"
]
}
],
"source": [
"pgf_S3 = pgf_X1 ** 3\n",
"print(pgf_S3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The possible values of $S_3$ are 0 through 6 because $S_3$ is the sum of three copies of a variable that takes values 0 through 2. The coefficients are the probabilities in the distribution of $S_3$. \n",
"\n",
"You can extract an array of the coefficients by using a polynomial attribute called `c` for \"coefficients\"."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.064, 0.24 , 0.348, 0.245, 0.087, 0.015, 0.001])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"coeffs_S3 = pgf_S3.c\n",
"coeffs_S3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"These are the probabilities of the values 6 down to 0. In probability theory it is more natural to think of the probabilities of values in the sequence 0 through 6, so use `np.flipud` again:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.001, 0.015, 0.087, 0.245, 0.348, 0.24 , 0.064])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"probs_S3 = np.flipud(coeffs_S3)\n",
"probs_S3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You now have the inputs you need for drawing the probability histogram of $S_3$."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"dist_S3 = Table().values(np.arange(7)).probabilities(probs_S3)\n",
"Plot(dist_S3)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### A Function to Calculate the Distribution of $S_n$ ###\n",
"We can combine the steps above to create a function `dist_sum` that takes as its arguments the number of terms $n$ and the probabilities in the distribution of $X_1$, and returns the distribution of the sum of $n$ i.i.d. copies of $X_1$.\n",
"\n",
"Remember that $X_1$ must have a finite number of non-negative integer values."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def dist_sum(n, probs_0_through_N):\n",
" \"\"\"Return the distribution of S_n,\n",
" the sum of n i.i.d. copies\n",
" of a random variable with distribution probs_0_through_N\n",
" on the integers 0, 1, 2, ..., N\"\"\"\n",
" \n",
" # Find the possible values of S_n\n",
" N = len(probs_0_through_N) - 1 \n",
" values_Sn = np.arange(n*N + 1)\n",
" \n",
" # Find the probailities of those values\n",
" coeffs_X1 = np.flipud(probs_0_through_N)\n",
" pgf_X1 = np.poly1d(coeffs_X1)\n",
" pgf_Sn = pgf_X1 ** n\n",
" coeffs_Sn = pgf_Sn.c\n",
" probs_Sn = np.flipud(coeffs_Sn)\n",
" \n",
" t = Table().values(values_Sn).probabilities(probs_Sn)\n",
" \n",
" return t"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### The Sum of the Numbers on $n$ Rolls of a Die ###\n",
"In [Chapter 3](http://prob140.org/textbook/content/Chapter_03/02_Distributions.html#probability-histogram) we found the exact distribution of the sum of five rolls of a die by listing all $6^5$ possible outcomes and computing the sum for each of them. That method gets intractable with larger numbers of rolls. Let's see if our new method can find the distribution of the total number of spots on 10 rolls of a die.\n",
"\n",
"We have to start with the distribution of the number of spots on a single roll, for which it is important to remember to include 0 as the probability of 0 spots. Otherwise the pgf will be wrong because `NumPy` won't know that it is not supposed to include a term of degree 0."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0. , 0.16666667, 0.16666667, 0.16666667, 0.16666667,\n",
" 0.16666667, 0.16666667])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"die = np.append(0, (1/6)*np.ones(6))\n",
"die"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"Plot(dist_sum(1, die))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"Plot(dist_sum(10, die))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Making Waves ###\n",
"The distribution of the sum of 10 rolls of a die looks beautifully normal. Do all random sample sums have roughly normal distributions? \n",
"\n",
"To explore this question, let $X_1$ have the distribution given by $p_1 = p_2 = p_9 = 1/3$."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"probs_X1 = make_array(0, 1/3, 1/3, 0, 0, 0, 0, 0, 0, 1/3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is the distribution of $X_1$."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"Plot(dist_sum(1, probs_X1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The probability histogram of $S_{10}$ shows that sums don't always have smooth distributions."
]
},
{
"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": [
"Plot(dist_sum(10, probs_X1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The distribution of $S_{30}$ looks like a stegosaurus having a bad hair day."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"Plot(dist_sum(30, probs_X1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And the distribution of $S_{100}$ is ..."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"Plot(dist_sum(100, probs_X1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"... beautifully normal. \n",
"\n",
"It's begining to look as though there's a theorem here. In the rest of the chapter we will study that theorem, which about the approximate distribution of the sum of a large i.i.d. sample.\n",
"\n",
"**Note:** Keep in mind that our pgf method gives the *exact* distribution of the sum of an i.i.d. sample from a distribution on finitely many non-negative integers, provided `NumPy` can handle the calculations. In the example above, the pgf of $S_{100}$ is a polynomial of degree 900. `NumPy` handled it just fine."
]
}
],
"metadata": {
"celltoolbar": "Tags",
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 1
}