602 lines
90 KiB
Plaintext
602 lines
90 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "c58309b2",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import os\n",
|
|
"import sys\n",
|
|
"\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"import seaborn as sns\n",
|
|
"\n",
|
|
"sns.set_theme(style=\"whitegrid\", context=\"notebook\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "a6732353-51d5-4478-9cf8-5834e57e5a4e",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Chapter 3 Notes"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9f0046c2",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Random Variables (3.1.1 - 3.1.3)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "7c73b89f",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** Random Variables: \\\n",
|
|
"A random variable $X$ is a function from the sample space to the real numbers. ie\n",
|
|
"$$X : S \\to \\mathbb{R}$$\n",
|
|
"\n",
|
|
"Each outcome ($\\omega$) in the sample space must have a $X(\\omega)$ defined. \n",
|
|
"\n",
|
|
"> Note that $X$ is a deterministic function. The randomness comes from the fact that we dont know the inputs to $X$, ie the outcome of the random experiment"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "afa12aa6",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** $X$ is a discrete random variable, if its range is countable"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "abd4a3ea",
|
|
"metadata": {},
|
|
"source": [
|
|
"### More on $X$\n",
|
|
"\n",
|
|
"Let $\\Omega$ be a sample space and let $X$ be a random variable on $\\Omega$\n",
|
|
"\n",
|
|
"- $X$ is a function, and $\\forall \\omega \\in \\Omega, X(\\omega) \\in \\mathbb{R}\\quad$ (ie $X(\\omega)$ is defined on all **outcomes**) \n",
|
|
"- $P_x(1)$ is asking: For event $A = \\{\\omega \\in \\Omega \\mid X(\\omega) = 1 \\}$, what is $P(A)$?\n",
|
|
"- $X$ induces a partition of $\\Omega$\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "a7dab8e8",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** Let $X$ be a discrete random variable with range $R_X = \\{x_1, x_2, x_3, \\dots\\}$ (finite or countably infinite). The function\n",
|
|
"\n",
|
|
"$$P_X(x_k) = P(X = x_k), \\text{for} k = 1,2,3,\\dots,$$\n",
|
|
"\n",
|
|
"is called the *probability mass function (PMF)* of $X$. (also called the probability distribution)\n",
|
|
"\n",
|
|
"Note that if $x \\notin R_X$, then $P_X(x) = 0$ "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "84ca67da",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Properties of PMF\n",
|
|
"- $0 \\geq P_X(x) \\geq 1, \\forall x$\n",
|
|
"- $\\sum_{x \\in R_X}P_X(x) = 1$ \n",
|
|
"- for any set $A \\subset R_X, P(X \\in A) = \\sum_{x \\in A} P_X(x)$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "57323d97",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Independent Random Variables (3.1.4)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c6261f7d",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** Consider two discrete random variables $X$ and $Y$. We say that $X$ and $Y$ are independent if:\n",
|
|
"\n",
|
|
"$$P(X=x, Y=y) = P(X=x)P(Y=y)$$\n",
|
|
"\n",
|
|
"In general, if two random variables are independent, then you can write\n",
|
|
"\n",
|
|
"$$P(X \\in A, Y \\in B) = P(X \\in A)(Y \\in B)$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "7b0362c1",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** Consider $n$ discrete random variables $X_1, X_2, X_3, \\dots, X_n$. We say that $X_1, X_2, X_3, \\dots, X_n$ are independent if:\n",
|
|
"\n",
|
|
"$$P(X_1 = x_1, X_2 = x_2, X_3 = x_3, \\dots, X_n = x_n) = P(X_1 = x_1)P(X_2 = x_2) \\dots P(X_n = x_n)$$\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e50c7c48",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Special Distributions (3.1.5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d0bc1818",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Bernoulli Distribution"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "853e9acb",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** A random variable $X$ is said to be a *Bernoulli* random variable with parameter *p*, shown as $X \\sim \\text{Bernoulli}(p),$ if its PMF is given by\n",
|
|
"\n",
|
|
"$$P_X(x) = \\begin{cases} \n",
|
|
"p & \\text{for } x = 1, \\\\ \n",
|
|
"1 - p & \\text{for } x = 0, \\\\ \n",
|
|
"0 & \\text{otherwise.} \n",
|
|
"\\end{cases}$$\n",
|
|
"\n",
|
|
"where $0 \\lt p \\lt 1$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "d2c94117",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x300 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"p = 0.7\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(5, 3))\n",
|
|
"ax.bar([0, 1], [1 - p, p], width=0.1, color=[\"steelblue\", \"steelblue\"])\n",
|
|
"ax.set_xticks([0, 1])\n",
|
|
"ax.set_xticklabels([\"0\", \"1\"])\n",
|
|
"ax.set_ylim(0, 1)\n",
|
|
"ax.set_xlabel(\"x\")\n",
|
|
"ax.set_ylabel(\"$P_X(x)$\")\n",
|
|
"ax.set_title(f\"Bernoulli(p={p}) PMF\")\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9e1caee1",
|
|
"metadata": {},
|
|
"source": [
|
|
"The Bernoulli random variable is also called the *indicator* random variable. ie\n",
|
|
"\n",
|
|
"The indicator random variable $I_A$ for an event $A$ is defined by\n",
|
|
"\n",
|
|
"$$I_A = \\begin{cases} \n",
|
|
"1 & \\text{if the event } A \\text{ occurs}, \\\\ \n",
|
|
"0 & \\text{otherwise.} \n",
|
|
"\\end{cases}$$\n",
|
|
"\n",
|
|
"$p = P(A)$, so we can write\n",
|
|
"\n",
|
|
"$I_A \\sim Bernoulli(P(A))$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4adc3d0e",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Geometric Distribution"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "90768a90",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** A random variable $X$ is said to be a *geometric* random variable with parameter *p*, shown as $X \\sim \\text{Geometric}(p),$ if its PMF is given by\n",
|
|
"\n",
|
|
"$$P_X(k) = \\begin{cases} \n",
|
|
"p(1-p)^{k-1} & \\text{for } k = 1, 2,3, \\dots, \\\\ \n",
|
|
"0 & \\text{otherwise.} \n",
|
|
"\\end{cases}$$\n",
|
|
"\n",
|
|
"where $0 \\lt p \\lt 1$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "f8b684b2",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqIAAAEcCAYAAAAcKdZrAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPDJJREFUeJzt3XlcVPXiPvBnQJABBMR9QREUFBTQ1OSKZu6mRipcKTPcEG+4YV6/Voq5pGRlKahdV8g0F9RcIlKzpNRsce+qyKagV0SRfZkBzu8PfzM5DuAMzOEM+LxfL19dzpxzns9B7vhw5nPOkQmCIICIiIiIqJaZSD0AIiIiIno+sYgSERERkSRYRImIiIhIEiyiRERERCQJFlEiIiIikgSLKBERERFJgkWUiIiIiCTBIkpEREREkmARJSIiIiJJsIgSERERkSRYRImIiIhIEiyiRETPmYKCAnTu3BlRUVF6b7t582YMHz4c5eXlhh+YEfv6668xYMAAKBQKqYdCVK+wiBKRQUVGRqJz585ISkrSeu3dd99Fly5d8NNPP4k+jtu3b2PZsmUYNmwYunXrBi8vL7z66qv46KOPcOvWLdHza4sgCIiMjMQff/yh8zY3b96EIAhwdXXVKys/Px9btmxBUFAQTEyM458PhUKBjz/+GD4+PvDw8IC/vz9Onz6t07Y3b97E7NmzMWjQIHh6euLFF1/EhAkTcPLkSa11x44dC6VSid27dxv6EIiea8bxTkJE9cbrr78Oc3NzREdHayzfsWMHDhw4gNmzZ2PAgAGijuHw4cMYPXo0YmNj4ePjg/fffx8LFiyAp6cnYmJi8Nprr9WbM3opKSmIiIjA/fv3dd7Gw8MDly9fRp8+ffTKiomJQWlpKUaNGqXvMEWzcOFCREVFYfTo0Xj//fdhamqK6dOn61TM7969i4KCAowZMwbvv/8+3n77bQDAv/71L+zZs0dj3YYNG+K1115DVFQUBEEQ5ViInksCEZGBvffee4KHh4fw8OFDQRAE4dy5c4Kbm5swa9Ys0bNPnDghdOnSRZg0aZKQlZWl9Xp2drawbt060cdRWw4fPiy4uLgIqampz1y3uLi4RlmjR48W5s+fX6N9GNKlS5cEFxcXYcuWLeplxcXFwuDBg4Xx48dXa5+lpaXCq6++KgwbNkzrtStXrgguLi7CmTNnqj1mItLEM6JEZHCTJk1CcXExdu/ejf/973+YO3cunJycsGrVKlFz8/LysHjxYjg6OmL9+vVo3Lix1jq2traYNWuW1vJz584hKCgIPXv2RO/evREcHIzbt29rrXfq1ClMnDgRPXr0QM+ePfHOO+8gKytLY53Jkydj/PjxuHDhAiZOnAgvLy8MGTIEp06dUu/jn//8J7y8vODr64urV69Wazx+fn6YP38+AGDo0KFwdXVFz5491WMICAjAH3/8gTfffBMeHh748MMPNV572tWrVzF79mx4e3ujW7duGD58OCIjIwEAaWlpuHHjBv7xj39obTdjxgyMHTsWR44cga+vLzw8PDBw4MBqzUHVR1xcHExNTTF+/Hj1soYNG8LPzw8XLlzA//73P733aWpqilatWiEvL0/rta5du8LOzg4//PBDjcZNRH9rIPUAiKj+6dSpE3x8fLBr1y6cOHECpaWlWL9+PaysrETNjY6OxsOHD/Hhhx/C0tJS5+0OHDiA999/H//4xz8wd+5cFBUV4auvvsKkSZMQGxsLCwsLAMDWrVuxevVqDB48GAsWLMC9e/cQHR2NzMxMfPnll+r93bhxA3Z2dggNDYWfnx8GDx6M//znP3jnnXcwf/58bN26Ff7+/hg0aBC++OILvPfeezh8+LDe4wkKCkJkZCQUCoX6Y2UbGxv1GBo1aoSQkBD4+/tj1KhRaN++vfq1IUOGaHwPjh8/jtDQUDg4OGDq1KmwtLTElStXcOHCBQBQ/9fNzU3r+5eQkICioiIsX74cEyZMQNOmTbFv3z6sWrUKjo6OFU7FUCqVFZa9itjZ2VU4J/XatWtwdHSEtbW1xnIPDw/1661atXrm/gsLC1FcXIz8/HycPHkS8fHxGDFiRIXrurm54fz58zqNm4iejUWUiEQxadIkTJs2DQ8fPsSmTZvQrl070TO//fZbNG/eHC+99JLG8vz8fI2rnS0sLNRFNSEhAWFhYZg1a5a6zAFAv3794Ovri/j4eAwdOhR//PEHPv74Y4SEhGD27Nnq9Zo1a4Zly5bh8uXL8PDwwMOHD/Hw4UPIZDIcPHgQzZs3BwCYmJhgxYoViI6OxsGDB9Xl6dGjR4iKioJCoYC5ubnO4wGAYcOGITw8HH369IGvr696XdUYioqKEBMTA2dnZ63XnrxQKSUlBf/+978xYMAAfPrpp2jYsKH6NdX3LTk5GQDQtm1bre/t3bt3YWVlhb1796qzRowYgZdffhlHjhypsIieP38eb731ltbyivzwww9auQCQmZmJZs2aaS1XLdN13mx4eLh6TqiJiQmGDBmCsLCwCtd1cHBgESUyIBZRIhKF6qp5BwcH9OvXT+ftfv31V1y5cgWWlpbo06ePRokCHheY1q1bo2XLlhrLHz58iOTkZIwcOVLr7Jmfnx9SUlLUXy9YsABTp04FAKxfvx6tW7dGQECAxkfszZs3h5mZGdLS0gAAGzduRIsWLRASEqKx7xdeeAHA46Lm4eGBGzduAABmzpypLqEA1MV3wYIFGmfwrK2tYWJiAplMptd4gMdTEe7evat19btqDDNmzND6/qlec3FxUS9bt24dGjZsiPDwcI0SCgDm5uYAgOzsbDRo0EDrrHZiYiIEQcD06dM1suzt7eHs7Fzpx+OdO3fG9u3bK3ztaRWVTQAoLi5Wj+9JqmMoLi7Waf+BgYEYPnw47t+/j++++w7l5eVQKpUVrmtjY4Pi4mIUFRVBLpfrtH8iqhyLKBEZ3JkzZ7B69Wo4OjoiNTUVv/zyC3x8fKrcJisrCyEhIbhw4QKaNGmCnJwcKJVKuLu746WXXkKTJk3w559/4vjx4/j222+1tr937x4A7TN2APDBBx+gvLwcZ8+exaZNm9TFTaFQ4NSpUygqKoK3t3eF47KyskJRURF+/fVXTJo0CaamphqvFxYWAvi7sCUkJAAABg4cqLFeSkoKLCws0LdvX43lqampcHBwgJmZmc7jUVGVyqeLqGoMr7zyitb2qtee/B78+OOP8PPz0/qIWxeq/T15RvZJlZU1W1vbCueb6sPCwqLC+3qWlJSoX9eFs7OzukS/9tprmDJlCmbMmIF9+/apf0FQEf7/FfNPLyei6mERJSKDSktLQ2hoKLp06YKoqCgMGzYMUVFRzyyiycnJaN26NT799FO0bt0aJSUliI+Px5EjR7Br1y6UlJTghRdewI4dO9RzHZ+kOoNVWlqq9ZrqNkW//fYbgMdn41RjLSoqwpw5c+Dl5VXhuDp37oxbt26htLQUHTp00HpddQGRqsjcuHEDzZo1Q4sWLTTWu379Ojp16qR1Bu/GjRvqUqjreJ7cFtAuoqoxODg4aG1/48YNtG7dGo0aNdLI7Nq1a4V5KnZ2digtLUV+fr5GYU1ISICdnZ3WGeqSkhIkJibizTffrHB/CoUCOTk5VWaq2Nvba/0CADw+U5qRkaG1PDMzEwA0zkjrY9iwYQgLC0NKSgqcnJw0XsvNzYVcLte55BJR1VhEichgCgoK8Pbbb6NBgwZYv349GjVqhDfeeAORkZFISkrS+pj4SR4eHuorvoHHH68OGTJE66KayqhKV2JiYqXrJCQkoGnTpmjatKl6vMDjElnV2TnVXMOKPgaOiYlBmzZt1B9137hxQ6Msqly/fl1rrqRSqURKSgqGDx+u13hUVIXT3t5ea3lFY1C99mRx1fXja1UhS09P19h3QkJChRcS7d+/HyUlJRg2bFiF+7tw4UKN54h27twZ586d0yrHly5dAgB06dJFp/0/TfU9yc/P13otPT1dq5wSUfXx9k1EZBCCIGDBggVISUnBunXr1GfI3njjjQpvcP+0ikqePpo0aYJevXohPj6+wpuZK5VKXL9+XaOEtWnTBjKZDMeOHdNav7S0VH3Grl27dmjQoIHWRSqxsbH4/fffMW3aNMhkMpSVlSExMVGrBGZlZSEzM1NreVJSEpRKpXpMuo5H5e7du1pnIisbw5OvPfk9UJ1dPnv2rNb6T86T7N69OwBo3Wrq5s2byMrKQmpqqsbxbtq0CT4+PvD09NTaL/D3HFFd/lQ2R3T48OEoKyvTuPm8QqHAgQMH4OnpqXHFfFFREZKSkjTm3T58+LDCYz506BAsLCwq/MXpv//9L3r06FHheIhIfzwjSkQGERERgRMnTmDZsmXqC3iAxx+rvvrqqzh06BBCQ0MrvLenoYSFhWHChAkIDAyEr68v3NzcIAgCbt26hbi4ODx48AATJkxQr9+kSROMHDkSR48eRX5+Pvr374+ysjLcvn0bx44dw5o1a9CzZ09YWlpi/Pjx2L17Nxo0aABXV1dcunQJ+/fvh6+vL9544w0Aj+d7lpSUaJVA1UfolS1XFUNdx6PStm1b/Prrr9i8eTOaN28OZ2dnyOXyCsfw5PievFDJ2toaY8eOxYEDB6BQKNC7d28UFBTg3LlzGDBggPr75eDgABcXF5w9exZ+fn4AgAcPHiArKwuurq4IDg7GhAkTUFxcjF27dqGsrAwrV66s9O/KEHNEPT09MXz4cKxZswYPHz5E+/btcfDgQdy5c0d9z1SVy5cv46233sLMmTPV95ENCwtDfn4+evXqhRYtWiAzMxNHjhxBcnIyFi5cqHVh1tWrV5GdnY1BgwbVaNxE9DcWUSKqsePHj2PDhg0ICAjQuLm4yqRJkxATE4Pdu3fjX//6l2jjcHFxwYEDB7Bhwwb8/PPPOHToEORyOdq3bw9fX1/4+vpqlDAAWLVqFVxcXHD48GGsXr0aFhYWcHBwgL+/P9zd3dXrLViwADKZDEePHsW+ffvg6OiIsLAwjRvDP30hkEpVFxVZW1trfOys63iAx4+iTEtLw4YNG1BYWIhFixappx1U9Bz5ysYXFhaG5s2bIy4uDidOnICtrS169OihdbeDcePGYe3atSguLoaFhYV6fytWrMDevXuxbt06CIKA/v37Y8GCBVrzZMWwevVqfP755zh8+DBycnLg6uqKL774Ar169Xrmtq+88gpiYmLw9ddfIzs7G1ZWVnB3d8f8+fMrLJtxcXFo3bq13o9GJaLKyQSBD80lIqJny8vLw+DBgzF//nz4+/sjKioKq1evxsWLF2s8tcLYKRQKDBw4EEFBQQgMDJR6OET1BueIEhGRTho1aoSpU6di69atKC8vR0JCAhwcHOp9CQUeX3zVoEEDvP7661IPhahe4RlRIiKqFn9/fzRt2hQbN26UeihEVEfxjCgREelNEAQkJiZWeUsuIqJn4RlRIiIiIpIEz4gSERERkSRYRImIiIhIEryPqA4uXLgAQRBgZmYm9VCIiIiIjJpSqYRMJlM/ka0qPCOqA0EQIPVUWkEQoFAoanUczKxfmVLlMpOZdTWXmcysq7lSHeuT+bpm84yoDlRnQrt16ybZGAoLC3Ht2jV07NgRlpaWzGRmncllJjPrai4zmVlXc6U6VpUrV67ovC7PiBIRERGRJIy6iCYlJWHy5Mnw8vJC3759sXr1aigUimduN3/+fAwdOhReXl7o1asXJkyYgF9++aUWRkxEREREujLaj+ZzcnIQGBgIR0dHREREICMjA+Hh4SguLkZYWFiV2yqVSkyaNAmOjo4oKSlBTEwMpk+fji+//BI9e/aspSMgIiIioqoYbRHdvXs3CgoKEBkZCTs7OwBAWVkZli5diuDgYLRo0aLSbdeuXavxdf/+/TFo0CAcOnSIRZSIiIjISBjtR/Px8fHw9vZWl1AAGDFiBMrLy3H69Gm99mVqaopGjRpBqVQaeJREREREVF1GW0STk5Ph5OSksczGxgbNmjVDcnLyM7cXBAGlpaV49OgRtm7dilu3bmH8+PFiDZeIiIiI9GS0H83n5ubCxsZGa7mtrS1ycnKeuX1MTAwWLVoEALC0tMRnn32m041VKyMIAgoLC6u9vT5kMpnWMoVCAblcDoVCUeHrYtwrrKioSOO/tYGZ9S+Xmcysq7nMZGZdzZXqWFUEQaiwq1REJkh9p/ZKuLu7Y86cOZg+fbrG8lGjRqF79+5Yvnx5ldtnZWXhzp07ePToEeLi4nDkyBFERkbipZde0nssV65c0elqfUMwMzODm7s7Gpia6rxNaVkZ/vvXX5x6QEREREbB3Nxcp/uvG+0ZURsbG+Tl5Wktz8nJga2t7TO3t7e3h729PYDHFyvl5OTg448/rlYRBR4XxI4dO1ZrW33IZDI0MDVF+MELSHuQ/8z1HZpaY+GY7ujUqZPBz4oWFRUhNTUVjo6OkMvlBt03M2s/U6pcZjKzruYyk5l1NVeqY1VJTEzUeV2jLaJOTk5ac0Hz8vKQmZmpNXdUF+7u7oiPj6/2eGQyWa0+nSDtQT4S7+XqvL6YP2hyubzWn8zAzPqXy0xm1tVcZjKzruZKday6fiwPGPHFSv3798eZM2eQm/t3GYuLi4OJiQn69u2r9/7+/PNPODg4GHKIRERERFQDRntGNCAgADt27EBISAiCg4ORkZGB1atXIyAgQOMeooGBgbh79y6OHz8OAPjpp5/wzTffYMCAAWjVqhVycnJw9OhR/PLLL1izZo1Uh0NERERETzHaImpra4vo6GgsX74cISEhsLKygp+fH0JDQzXWKy8vR1lZmfprBwcHKBQKfPrpp3j06BEaN24MV1dX7NixA717967twyAiIiKiShhtEQUAZ2dnREVFVbnOjh07tLbZsGGDiKMiIiIiIkMw2jmiRERERFS/sYgSERERkSRYRImIiIhIEiyiRERERCQJFlEiIiIikgSLKBERERFJgkWUiIiIiCTBIkpEREREkmARJSIiIiJJsIgSERERkSRYRImIiIhIEiyiRERERCQJFlEiIiIikgSLKBERERFJgkWUiIiIiCTBIkpEREREkmARJSIiIiJJsIgSERERkSRYRImIiIhIEiyiRERERCQJFlEiIiIikgSLKBERERFJgkWUiIiIiCTBIkpEREREkmARJSIiIiJJsIgSERERkSRYRImIiIhIEiyiRERERCQJFlEiIiIikgSLKBERERFJgkWUiIiIiCTBIkpEREREkmARJSIiIiJJsIgSERERkSRYRImIiIhIEiyiRERERCQJFlEiIiIikgSLKBERERFJgkWUiIiIiCTBIkpEREREkmARJSIiIiJJsIgSERERkSRYRImIiIhIEiyiRERERCQJFlEiIiIikgSLKBERERFJgkWUKiWTySCXyyGTyaQeChEREdVDDaQeQFWSkpKwYsUKXLhwAVZWVvD19cXcuXNhbm5e6Tb3799HVFQUTp8+jdu3b6NRo0bo1asX5s2bhzZt2tTi6OuWsnIBpiaahVMul8PNzU3n9YmIiIj0YbRFNCcnB4GBgXB0dERERAQyMjIQHh6O4uJihIWFVbrdX3/9hePHj2PcuHHw9PTEo0ePsHHjRvj7++Po0aOwt7evxaOoO0xNZAg/eAFpD/Kfua5DU2ssHNO9FkZFRERE9ZnRFtHdu3ejoKAAkZGRsLOzAwCUlZVh6dKlCA4ORosWLSrc7oUXXsB3332HBg3+PrQePXpgwIAB+OabbzBlypTaGH6dlPYgH4n3cqUeBhERET0njHaOaHx8PLy9vdUlFABGjBiB8vJynD59utLtbGxsNEooALRs2RL29va4f/++WMMlIiIiIj0ZbRFNTk6Gk5OTxjIbGxs0a9YMycnJeu0rJSUFDx8+hLOzsyGHSEREREQ1YLQfzefm5sLGxkZrua2tLXJycnTejyAIWLFiBZo3b46RI0dWezyCIKCwsLDa2+tKdaW6voqKiiAIQp3JrGqfT/63NjwvmVLlMpOZdTWXmcysq7lSHauKIAg633HHaIuooURERODXX3/Fli1bYGlpWe39KJVKXLt2zYAjq1hVV6pXJSUlpdo/cFJkPktqaqoo+2WmdLnMZGZdzWUmM+tqrlTHCqDKOxw9yWiLqI2NDfLy8rSW5+TkwNbWVqd97N27F+vXr8eHH34Ib2/vGo3HzMwMHTt2rNE+dFHde3Z26NChRmdEazuzMkVFRUhNTYWjo2O1ztIy0/hymcnMuprLTGbW1VypjlUlMTFR53WNtog6OTlpzQXNy8tDZmam1tzRihw/fhwffPABZs+eDT8/vxqPRyaT1eiMqtik+EETM1Mul9f69/t5yZQql5nMrKu5zGRmXc2V6lj1OcFltBcr9e/fH2fOnEFu7t+3E4qLi4OJiQn69u1b5bbnzp3DvHnz4O/vj5CQELGHSkRERETVYLRFNCAgAFZWVggJCcEvv/yC/fv3Y/Xq1QgICNC4h2hgYCCGDBmi/jopKQkhISFwdHSEr68vLl68qP5z+/ZtKQ6FiIiIiCpgtB/N29raIjo6GsuXL0dISAisrKzg5+eH0NBQjfXKy8tRVlam/vrSpUvIy8tDXl4eXn/9dY11x4wZg/Dw8FoZPxERERFVzWBFtKSkBDKZTOerpHTh7OyMqKioKtfZsWOHxtdjx47F2LFjDTYGIiIiIhJHtYvouXPn8MMPP+D8+fNISkpCcXExAMDCwgLOzs7o3r07Bg8ejBdffNFggyUiIiKi+kOvIqpUKrFnzx5s374dd+7cga2tLdzd3TF69GjY2tpCEATk5uYiPT0dhw8fxo4dO9C6dWtMmTIF48ePh5mZmVjHQURERER1jF5FdOjQoVAqlXjttdcwYsQIuLu7V7n+1atXERcXhy+++ALbtm3DyZMnazRYIiIiIqo/9CqiwcHBGDt2rM7zQLt27YquXbti9uzZOHDgQLUGSERERET1k15FNCAgQONrXZ8lam5urrUtERERET3fanQfUd4KiYiIiIiqq0ZFdOfOnYiJialynT/++KMmEURERERUT9WoiIaFhWHp0qWVls2dO3di8uTJNYkgIiIionqqRkX0n//8J/z9/TFz5kykpaWplysUCrz33ntYvnw5/P39azxIIiIiIqp/avxkpffffx9JSUn417/+hd27d6OgoAAzZ85EQkICVq1ahTFjxhhinERERERUz+hVRKOjo+Hi4gIXFxc0adIEAGBqaop169bBz88PQUFBSEtLg7m5OXbt2vXM+4wSERER0fNLryL65FXyjRs3RseOHdXFNCgoCMuWLUOvXr2wZs0aNG7c2OCDJSIiIqL6Q68i+ueff+LmzZtISEjAjRs3kJCQgKNHjyI7OxsymQyCIOD27dtYvHixuqB26tQJzs7OYo2fiIiIiOoovYqopaUlPD094enpqbE8MzNTXUxVf37++WeUlJRAJpPh2rVrBh00EREREdV9Nb5YCQCaNWuGZs2awcfHR72svLwcqampSEhIMEQEEREREdUzBimiFTExMYGTkxOcnJzEiiAiIiKiOkyv+4i+8sor+Oabb6BQKHTeRqFQYP/+/XjllVf0HhwRERER1V96nREdM2YMVq1ahQ8//BADBw6Et7c33N3d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",
|
|
"text/plain": [
|
|
"<Figure size 700x300 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"p = 0.3\n",
|
|
"k = np.arange(1, 20)\n",
|
|
"pmf = p * (1 - p) ** (k - 1)\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(7, 3))\n",
|
|
"ax.bar(k, pmf, width=0.4, color=\"steelblue\")\n",
|
|
"ax.set_xlabel(\"k\")\n",
|
|
"ax.set_ylabel(\"$P_X(k)$\")\n",
|
|
"ax.set_title(r\"$X \\sim Geometric(p=$\" + f\"{p}\" + r\"$)$\")\n",
|
|
"ax.set_xticks(k)\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d61240ca",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Binomial Distribution"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5a1475ef",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** A random variable $X$ is said to be a *binomial* random variable with parameter $n$ and $p$, shown as $X \\sim \\text{Binomial}(n,p),$ if its PMF is given by\n",
|
|
"\n",
|
|
"$$P_X(k) = \\begin{cases} \n",
|
|
"\\binom{n}{k}p^k(1-p)^{n-k} & \\text{for } k = 1, 2,3, \\dots, n \\\\ \n",
|
|
"0 & \\text{otherwise} \n",
|
|
"\\end{cases}$$\n",
|
|
"\n",
|
|
"where $0 \\lt p \\lt 1$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"id": "1c029592",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA9cAAAEcCAYAAADNx0d3AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOhlJREFUeJzt3XtclGX+//H3YIB4AGRFy8OGqKCoBJaai6Gp1ZK6rmZJm3hWbNXWQ+3ayfVQydrWlthuVppmlpaHzFLLrK+WmruWZe5SKgfzkKSpgKKCcP/+8MfoOBznnmFm8PV8PHzUXHPf11xzcc/9ns/Mfd9jMQzDEAAAAAAAcJiPuwcAAAAAAIC3o7gGAAAAAMAkimsAAAAAAEyiuAYAAAAAwCSKawAAAAAATKK4BgAAAADAJIprAAAAAABMorgGAAAAAMAkimsAAAAAAEyiuEaNExkZqdTUVHcPo1ypqamKjIx0aN2kpCQlJSXZte/Zs0ft27fXkSNHzA4P1ezUqVOKiYnRli1b3D0UAKgWZDVZ7W3IalQGxTU83urVqxUZGWnzr2vXrkpKSmIHd4V//OMf6tOnj5o2bVptj7lnzx7NmjVLffr0UUxMjHr06KE//elPyszMLHX59PR0jRo1SrGxsercubMeeeQRnTx5strG64ji4mK9+uqr6tmzpzp06KB+/frpgw8+qFIf27dv19ChQ3XzzTcrNjZWAwcO1Pr16633N2jQQIMGDdKLL75Yqf527txp83po166devXqpT//+c86dOiQdbnDhw9bl/nnP/9Zal9Tp05VZGSkYmNjbdqTkpLsXncl/9LT06v0/AHUfGR15ZDVruGMrC7xxBNPKDIyUsnJyTbtZDUq4zp3DwCorIceekjNmjWTYRj65ZdftGbNGo0dO1Yvv/yybr/9dutye/bsUa1atdw40oo9+OCDGjt2rNP6S0tL0/bt27V8+XKn9VkZr732mr7++mv99re/VWRkpI4fP65ly5Zp4MCBWrFihSIiIqzLHjt2TA888IDq16+vyZMnKz8/X4sWLdK+ffv07rvvys/Pr1rHXln/+Mc/9Morr+i+++5Thw4dtHnzZk2dOlUWi0V9+vSpcP1Vq1bp8ccfV1xcnKZMmSIfHx9lZmbqp59+slnu/vvv19KlS7Vjxw517dq1UmNLSkpShw4ddPHiRf3vf//TihUrtGXLFr3//vtq3LixdTl/f399+OGH+uMf/2izfn5+vj799FP5+/uX2v/111+vKVOm2LVf2TcAXImsLhtZ7Tpms7rEd999pzVr1pSZi2Q1KmQAHm7VqlVGRESEsWfPHpv206dPG+3atTOmTJnippG5x5AhQ4whQ4bYtM2ePdvo0aOHUVxcXK1j+eqrr4wLFy7YtGVmZhrt27c3pk6datP+17/+1YiOjjaOHDlibdu2bZsRERFhLF++vFrGW1XHjh0z2rVrZ8ycOdPaVlxcbPzhD38w4uPjjYsXL5a7/qFDh4zo6Ghj9uzZlXq8vn37Go888kiFy3355ZdGRESEsWHDBpv2N954w4iIiDBefvll6+NHREQYEyZMMCIiIoy0tDSb5d9//32jXbt2RnJyshETE2Nz35AhQ4w+ffpUatwAQFbbIqurj9msvnKdwYMHG48++qhx++23G2PHji11ObIa5eGwcHitwMBA+fv767rrbA/AuPo8rpJzpg4ePKhp06bplltu0c0336xHH31U586ds1n34sWLeumll9S7d2+1b99ePXv21PPPP6+CggKb5Xr27Knk5GTt3LlTAwcOVHR0tPr166edO3dKkj7++GP169dPHTp00MCBA/W///3PZv3SzuNatWqVhg4dqq5du6p9+/a6++679dZbb1VqLjZv3qxbb71VFoul1HHu2rVLgwYNUocOHdSrVy+99957leq3Ih07drT7FDssLEytW7dWRkaGTfvHH3+sHj16qEmTJta23/zmNwoLC9OGDRscevykpCT17dtXe/fuVWJioqKjo9WzZ0+9/fbbDvV3tU8++USFhYX6wx/+YG2zWCy6//77dezYMe3evbvc9ZcvX66ioiL96U9/kiSdPXtWhmGUufxvfvMbffbZZ+UuU55bb71V0qVDzK4UExOjZs2aad26dTbt69atU7du3RQcHOzQ4wFARcjqy8hqz8zqEmvXrtW+ffs0efLkcpcjq1Eeimt4jTNnzujkyZM6efKk9u/fr7/+9a/Kz8/X7373u0qtP2nSJJ09e1ZTpkxRQkKCVq9erfnz59ss88QTT2jevHmKiorSo48+qk6dOmnBggWl7mgPHjyoqVOnqmfPnpoyZYpycnI0btw4vf/++5ozZ4769euniRMn6scff9SkSZNUXFxc7vjefvttNW3aVMnJyZo2bZpuuOEGzZw5U8uWLSt3vezsbB09elRRUVGl3n/w4EH96U9/UlxcnKZNm6agoCBNmzZN+/fvty5TXFxsnduK/hUWFpY7HsMwdOLECTVo0MBmjL/88ovat29vt3x0dLTS0tLK7bM8OTk5Gjt2rNq1a6dHHnlE119/vWbMmKGVK1faLFfZ53flm7O0tDTVqVNHLVu2tBtzyf3l2b59u8LDw7VlyxbFx8erY8eO6tKli1544YVSt4d27dopNzfX5m9TFT/++KMklRrAffv21fr1661vBk6ePKlt27apX79+ZfZXVFRkNz9nz551aGwArg1kdenIas/NaunSdvv3v/9d48aNU2hoaLnLktUoD+dcw2sMHz7c5rafn5+eeeYZxcXFVWr9tm3b6plnnrHePn36tFauXKlHHnlEkvT9999rzZo1uvfee/XUU09Jkh544AGFhIRo0aJF+vLLL62fNkpSZmamli9fbr24RKtWrTRq1Cg9+eST2rBhg/VT36CgIE2fPl3/+c9/1KVLlzLH9+abb6p27drW20OGDNGoUaP0+uuv64EHHihzvZJPnZs1a1bq/ZmZmVq2bJluueUWSVJCQoK6d++u1atX6y9/+Ysk6ejRo+rVq1eZj3GlN954o9zn8f777ys7O1sPPfSQte3nn3+WpFIDKzQ0VKdPn1ZBQYFD53L9/PPPmjZtmkaMGCFJGjx4sO677z49//zz6t+/v3x9fSWp0udGzZkzRwMHDpQkHT9+XL/61a/svmUoeR4lz6ssBw8eVK1atfToo49q9OjRatOmjT7++GP961//UlFRkaZOnWqzfPPmzSVJBw4csDkHrixnz57VyZMndfHiRaWlpenpp5+WxWLRnXfeabds37599fLLL+urr77SLbfcog0bNsjPz089e/bU559/Xmr/GRkZdvM2YMAApaSkVDg2ANcmsrp0ZLXnZrUkvfTSS/L397fbfktDVqM8FNfwGtOnT1eLFi0kSSdOnND777+vJ554QnXr1i11B3W1xMREm9u33HKLNm3apDNnzqhevXrWq5mW7PhLjBw5UosWLdKWLVtsArtVq1Y2V2286aabJF063OfKw6lK2g8dOlRu0F0Z1nl5eSosLFTnzp31xRdfKC8vT/Xr1y91vVOnTkm6dOhdaVq1amUNa0kKCQlRixYtbK5UGRoaqtdff73MsV2pTZs2Zd6Xnp6uWbNmKTY2VgMGDLC2X7hwQZJKDeSSC3ScP3/eocC+7rrrNHjwYOttPz8/DR48WDNmzNB///tfxcTESFKln1+rVq2s/1/WmK4cc3ny8/NVXFysqVOnWi+Kc9dddyknJ0dvvPGGkpOTVa9ePevyJX/Dkr9pRR577DGb2yEhIUpJSVGHDh3slm3durUiIyP14Ycf6pZbbtEHH3ygXr16KSAgoMz+mzZtan3zWqJRo0aVGhuAaxNZTVaXxpOzOjMzU0uXLtVzzz1XqedGVqM8FNfwGtHR0TY7or59++r3v/+9Zs2apR49elS4Q7wyRKXLO8ecnBzVq1dPR44ckY+Pj37961/bLBcaGqrAwEC736S84YYbbG6XBOr1119v015SPOXm5pY7vq+++kqpqan65ptv7M4vKy+wS5R17s/V45QufUKfk5Njve3v76/f/OY35fZfkePHjys5OVn169fXiy++aHMV2JKAu/p8OOlymF/5hqUqGjVqpDp16ti0hYWFSZKOHDliDWxHnl/t2rVNjbl27drKz89X3759bdr79u2rzz//XGlpaerUqZPdeld/+l6W8ePH65ZbbpGPj48aNGigli1b2p3XePXjvv766xo+fLh2796tcePGldt/nTp1TG8XAK4tZDVZXRpPzuqnn35asbGxuuuuu6r0uGQ1SkNxDa/l4+OjLl266I033tDBgwfVunXrCpcvzdVBV9mdZVk/IVJWe3kXvvjxxx81fPhwhYeHW8/h8vX11ZYtW7R48eJyzwErOV+qrDcElfmpk5LzdSojKCjI7s1RXl6exowZo7y8PC1btszu5x9KPkE9fvy4XX/Hjx9XcHCwy3/eo7THLk39+vWtQRwaGqqdO3fKMAyb7aKkr4o+GW7UqJGysrLUsGFDm/aQkBBJsnnTdOXtK8+BK09ERESVArVv3756/vnn9cQTTyg4OLjSh2kCgKPI6kvI6sqp7qzesWOHPv/8c82fP9/mAmMXL17U+fPndfjwYQUHB9scZUZWozwU1/BqRUVFki4dfmtW06ZNVVxcrIMHD9pcFOPEiRPKzc1V06ZNTT9GWT799FMVFBToX//6l82n9iVXNC1PeHi4JPurTlbFTz/95PB5XBcuXNC4ceOUlZWl119/3eZQrRKNGzdWSEiI9u7da3ffnj17yj18rSI///yz8vPzbT4Rz8rKkiSbv1m3bt0q1d+V53G1bdtW7777rtLT022e17fffmu9vzzt2rVTVlaWsrOzredolYxZulxklyj5G159URZnadKkiTp27Kh///vfuv/++8v95BwAnIWsJqs9Nat/+uknSdKECRPs7svOzlavXr306KOP2pyLTVajPPy14LUKCwu1bds2+fr6OmUH1717dz3//PNasmSJZs2aZW0vOf+ne/fuph+jLCWfWF/5iXleXp5WrVpV4bqNGzfWDTfcUGoYVpaj53EVFRVp0qRJ+uabb/TPf/7T5ry2q915551677339NNPP1kPf9uxY4eysrIqdQGRsly8eFErVqywnn9XUFCgFStWKCQkRO3atbMu58h5XL169dKcOXP01ltvafr06ZIu/Y2WL1+uxo0b2zzfn3/+WXl5efr1r39tvTDL3XffrQ8//FArV660XsW2uLhYq1evVnBwsN0VWf/73/+qfv36FX6zY8akSZO0c+dO3X333S57DAAoQVZfQlZ7Zlbfeuuteumll+z6f/LJJ9WkSRM9+OCDdhctI6tRHopreI2tW7dar7Z58uRJrVu3TllZWRo7dqzN4TqOatOmjQYMGKAVK1YoNzdXnTp10nfffac1a9aod+/eNhdIcba4uDj5+vpq3LhxSkxM1NmzZ/Xuu+/qV7/6VaUOkerVq5c2bdpkd0hUZTl6HldKSoo+/fRT3X777Tp9+rTWrl1rc3///v2t/z9u3Dht3LhRQ4cO1dChQ5Wfn6+FCxcqIiJC99xzj816PXv2lHTpW4KKNGrUSK+++qqOHDmisLAwrV+/XmlpaZo9e7a1yJUcO4/r+uuv19ChQ7Vw4UJdvHhRHTp00CeffKJdu3bp73//u81hfM8//7zWrFmjzZs3W68G26tXL3Xt2lULFizQqVOnFBkZqc2bN+urr77SrFmz7A6v2759u26//XaH/oaV1blzZ3Xu3Nll/QO4tpHVZSOrPS+rmzRpYneevyQ988wzatiwoXr37m13H1mN8lBcw2vMmzfP+v/+/v4KDw/XjBkz7K4sasZTTz2lZs2aac2aNfrkk0/UsGFDJScnl3q4kDOFh4dr3rx5euGFF/S3v/1NDRs21P3336+QkBC7q0yW5p577tGbb75p/emG6vL9999Lkj777DN99tlndvdfGdg33HCD3nzzTaWkpOi5556Tr6+vunfvrmnTptkVmfn5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",
|
|
"text/plain": [
|
|
"<Figure size 1000x300 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from math import comb\n",
|
|
"\n",
|
|
"def binomial_pmf(k, n, p):\n",
|
|
" return comb(n, k) * p**k * (1 - p)**(n - k)\n",
|
|
"\n",
|
|
"configs = [(20, 0.6), (20, 0.4)]\n",
|
|
"\n",
|
|
"fig, axes = plt.subplots(1, 2, figsize=(10, 3))\n",
|
|
"for ax, (n, p) in zip(axes, configs):\n",
|
|
" k = np.arange(0, n + 1)\n",
|
|
" pmf = [binomial_pmf(ki, n, p) for ki in k]\n",
|
|
" ax.bar(k, pmf, width=0.4, color=\"steelblue\")\n",
|
|
" ax.set_xlabel(\"k\")\n",
|
|
" ax.set_ylabel(\"$P_X(k)$\")\n",
|
|
" ax.set_title(f\"Binomial(n={n}, p={p}) PMF\")\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2084d145",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Lemma*** If $X_1, X_2, \\dots, X_n$ are independent $Bernoulli(p)$ random variables, then the random variable $X$ defined by $X = X_1 + X_2 + \\dots + X_n$ has $Binomial(n,p)$ distribution"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5d2d483f",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Negative Binomial (Pascal) Distribution"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "de41c0a4",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** A random variable $X$ is said to be a *pascal* random variable with parameter $m$ and $p$, shown as $X \\sim \\text{Pascal}(m,p),$ if its PMF is given by\n",
|
|
"\n",
|
|
"$$P_X(k) = \\begin{cases} \n",
|
|
"\\binom{k-1}{m-1}p^m(1-p)^{k-m} & \\text{for } k = m, m+1,m+1, \\dots \\\\ \n",
|
|
"0 & \\text{otherwise} \n",
|
|
"\\end{cases}$$\n",
|
|
"\n",
|
|
"where $0 \\lt p \\lt 1$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"id": "30067c10",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA3QAAAEcCAYAAACPqPalAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPItJREFUeJzt3Xlc1OX+///nQAygBGqSuQa44K5oaYaSa4rLsVySOpkLGZZax46nbHPtHD2e0hLLBXE9bnUyK1PTbLHUjydz6dSPckGPW5oeZRWYEeb3h18mRxBmYGBm4HG/3bzVXHNd7+t1vS8Hec37/b4ug8VisQgAAAAA4HG8XB0AAAAAAKBkSOgAAAAAwEOR0AEAAACAhyKhAwAAAAAPRUIHAAAAAB6KhA4AAAAAPBQJHQAAAAB4KBI6AAAAAPBQJHQAAAAA4KFI6AAAbqt79+6aPHlygfItW7aoQ4cOyszMdEFUsJfZbNYDDzygNWvWuDoUAKiwSOgAoALbuHGjwsPDrX9atWql3r17a8aMGbp06ZKrwyuR3NxcxcfH6/HHH1fVqlVdHY4Ns9msvn37Kjw8XImJia4Op0h5eXlKSEhQ9+7d1apVKw0YMECbN2+2q+13332nsWPH6oEHHlCrVq0UGRmp2NhYff/99zb1fHx8NGrUKC1atEg5OTnFHvfMmTM2f1+bNWumrl27aty4cUpKSrKpm1/nlVdeKfRY8+bNs9a5fPmytXzy5Mk2fdz4Z9euXXaNHwDcyW2uDgAAUPaeffZZ1atXTyaTSd9//73WrVunr7/+Wps3b5a/v7+rw3PIl19+qRMnTmjYsGGuDqWAf/7zn/r1119dHYZd5s2bpyVLluiRRx5Rq1attHPnTv35z3+WwWBQv379imx78uRJeXl5KSYmRjVr1lRaWpo+/vhjPf7441q8eLGioqKsdQcNGqQ33nhDn3zyiYYMGWJXbP3791dUVJTy8vJ0/PhxrVu3Trt27dJ7772nZs2aWev5+vpq+/btmjp1qoxGo80xNm/eLF9f30ITSaPRqNdff71AedOmTe2KDwDcCQkdAFQCUVFRatWqlSRp6NChqlatmpYvX66dO3eqf//+Lo7OMR988IHatWunWrVquToUG//73//0zjvv6Mknn9T8+fNdHU6RLly4oOXLl+uPf/yjpkyZIun634vHH39cc+bMUZ8+feTt7X3L9kOHDtXQoUNtyh577DH17NlTK1eutEnoAgMD1blzZ3344Yd2J3TNmzfXwIEDra/btWunp59+WuvWrdOMGTOs5V26dNEXX3yhXbt2qWfPntbyAwcO6MyZM+rdu7c+++yzAse/7bbbbI4PAJ6MWy4BoBK67777JF2/xU2SEhMTFRMTo44dO6p169YaNGiQtm3bVqDd7t279eijj+qee+5RRESEevfurblz59rUycnJUXx8vHr37q1WrVqpc+fOGj9+vE6dOmWtY29/N8vJydE333yj+++/v8B74eHhmjFjhrZu3aq+ffuqdevWGjZsmH755RdJ0vr169WrVy+1atVKw4cPt47dWd544w2FhobqD3/4Q6mPNXz4cPXv318//vijYmJi1Lp1a3Xv3l3r1q1zQqTS559/LrPZrMcee8xaZjAY9Oijj+r8+fM6ePCgw8f09/dXjRo1lJ6eXuC9+++/X99//71SUlJKFO/Nf1/z1apVS/fcc0+BW0U/+eQTNWnSRI0bNy5RfwDgSbhCBwCVUH5yVa1aNUnSqlWr1L17dw0YMEBms1mffvqpnnvuOS1evFhdu3aVJB09elRxcXEKDw/Xs88+K6PRqP/+9786cOCA9bi5ubmKi4vT3r171a9fPz3xxBPKzMzU7t27deTIETVo0MDu/grz448/ymw2q3nz5oW+v3//fn3xxRfWRGXJkiUaO3asnnzySa1du1aPPfaYUlNTtXTpUr388statWqVtW1WVpaysrKKPXfe3t4KCgqyKfvhhx+0adMmrV27VgaDodhj2CM1NVVPPfWUoqOj1a9fP23dulXTpk2Tj4+PzZWuG58PK0pAQID1tsSkpCRVqVJFDRs2tKnTunVr6/v33HNPscfMyMiQyWTSlStX9NFHH+nIkSMaO3ZsgXotWrSQxWLRwYMH1a1bN7vivdHNf19vNGDAAP31r39VZmamqlatqmvXrmnbtm0aNWpUkc/t3XzefHx8dPvttzscGwC4GgkdAFQCGRkZunz5skwmkw4cOKB33nlHfn5+1l+uP/vsM/n5+Vnr//GPf9SgQYO0fPlya4K1e/dumc1mJSQkqEaNGoX2s2nTJu3du1cvvfSSRo4caS1/6qmnZLFYrK/t6a8wycnJkqR69eoV+v6JEye0detW6/tBQUGaMmWKFi5cqG3btikgIEDS9QVBFi9erDNnzljrLl26VAsWLLhl3/nq1q2rL774wvraYrFo5syZ6tu3ryIiIpx25e+3337T5MmTNWrUKEnSsGHD9Mgjj2ju3LkaOHCgfHx8JEmdOnWy63izZs3SoEGDJEkXL17UHXfcUSD5DA4OtvZtj+eee07ffvutpOsJ0bBhw/TMM88UqFe/fn1J0rFjx+xK6LKysnT58mXl5eUpOTlZs2bNkiT16dOnQN38RX4+//xzDRw4ULt379aVK1fUr18/bdy4sdDjX716tcB569Chg1avXl1sbADgbkjoAKASuDG5kq4nJW+88Yb1ObQbk6vU1FTl5uaqffv2+vTTT63lgYGBkqSdO3dq8ODB8vIqeNf+9u3bVb16dT3++OMF3rsxebCnv8Lk37J38xWyfJ06dbJJ9tq0aSNJevDBB63JnPT7lajTp09b6z/00ENq3759kf1L1xfiuNHGjRt15MgRpz83d9ttt9ks/GI0GjVs2DBNmzZNP/30k9q2bStJWr58uV3Ha9SokfX/s7OzCywiIv0+tuzsbLuOOWnSJI0ePVq//vqrNm3aJLPZrGvXrhU4R/nzdeXKFbuOGx8fr/j4eOvrgIAATZo0SQ8++GCBukFBQerSpYs+/fRTDRw4UJ988okiIiJUt27dWx7f19dXixYtsinL//sNAJ6GhA4AKoEpU6YoNDRU3t7eqlmzpkJDQ20Ssi+//FILFy5UUlKSTCaTtfzGJKxv3756//339eqrr+rNN99Up06d1KtXL/Xp08d6rFOnTik0NFS33Vb0Py/29FeUG6/23ah27do2r/OTuLvuusumPP/WurS0NGtZ/fr1rVeS7JWRkaG5c+cqNja2QN+ldeedd6pKlSo2ZSEhIZKks2fPWhO6wp4nLI6fn5/Nec+Xf4vijQl3UW5ccfIPf/iDBg0apJdeeqlAcps/X/bO77Bhw9SnTx8ZDAYFBgaqcePGhSag+QYMGKAXXnhB586d086dOzVp0qQij+/t7V2i8wYA7oiEDgAqgdatW1tXubzZ/v379fTTT+vee+/V1KlTFRwcLB8fH33wwQc2i034+flpzZo12rdvn7766it988032rJlizZs2KBly5YVuSpiSforTP4zVKmpqQWSNEm3jOFW5TcmhpmZmbp69Wqx8Xt7e1tvOU1MTLTuPZd/q+X58+clXU8Wz5w5ozvvvLPIZKS0Ll68aFe922+/3ZqoBQcHa9++fbJYLDZJVv6x7rzzTofjMBqN6t69u5YsWaLs7OwCV2ElqXr16nYd6+6773Yo4erevbt8fHz04osvymQyKTo62rHgAcCDkdABQCX32WefydfXV4mJiTaJxwcffFCgrpeXlzp16qROnTrppZde0qJFizRv3jzt27dP999/vxo0aKDDhw/LbDZbn/EqTX83CwsLk/T7BtTOtGzZMoefofv111+Vmppa6L5tixYt0qJFi7Rp0yabK1n2+u2333T16lWbq3QnT560xpCvc+fOdh3vxmfomjVrpvfff1/Hjx+3uRXz8OHD1vdLIjs7WxaLRZmZmTYJXX6ye/MiLM7i5+ennj176uOPP1ZUVNQtn/EEgIqIhA4AKjlvb28ZDAbl5uZay86cOaOdO3fa1EtJSSmwymD+L/75t+89+OCD+uqrr7RmzZoCz+3lXw2yt7/CtGzZUj4+Pvrxxx/Vo0cPR4ZZrJI8Qzd8+HCb/c+k6/vRTZkyRYMGDVKPHj1uuYBLca5du6YNGzZYF0UxmUzasGGDatSooRYtWljrleQZuh49emjWrFlau3atdR86i8Wi9evXq1atWoqIiLDW/e2335Senq4GDRpYk/T//e9/uuOOO2yOn5aWpu3bt6t27doF3vvpp59kMBist4mWhdjYWDVo0MDuBBcAKgoSOgCo5B544AEtX75cTz75pPr376///e9/Wrt2rRo0aGDdw02S3nnnHe3fv18PPPCA6tata6131113WROhhx56SJs2bdKsWbP0ww8/qH379srKytLevXv16KOPqmfPnnb3VxhfX1917txZe/fu1XPPPefU81CSZ+hatGhhk1xJv1+NatSoUYFkr3v37pJks0rmrdx5551KSEjQ2bNnFRISoi1btigpKUkzZ860ufpZkmfB7rrrLj3xxBNKTEzUtWvX1KpVK33++efav3+/3njjDZtbVOfOnasPP/xQO3futCanY8aMUa1atdSmTRvdcccdOnfunDZu3KjffvtN8+bNK9Dfnj171K5dO7tvuSyJpk2bqmnTpmV2fABwVyR0AFDJderUSX/961+VkJCgv/3tb6pXr54mTZqks2fP2iRY3bt319mzZ/XBBx/oypUrql69ujp06KAJEyZYFxnx9vZWQkKCFi5cqM2bN2v79u2qVq2a2rVrZ71F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",
|
|
"text/plain": [
|
|
"<Figure size 900x300 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def pascal_pmf(k, m, p):\n",
|
|
" return comb(k - 1, m - 1) * p**m * (1 - p)**(k - m)\n",
|
|
"\n",
|
|
"m, p = 4, 0.3\n",
|
|
"k = np.arange(m, m + 30)\n",
|
|
"pmf = [pascal_pmf(ki, m, p) for ki in k]\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(9, 3))\n",
|
|
"ax.bar(k, pmf, width=0.4, color=\"steelblue\")\n",
|
|
"ax.set_xlabel(\"k\")\n",
|
|
"ax.set_ylabel(\"$P_X(k)$\")\n",
|
|
"ax.set_title(f\"Pascal(m={m}, p={p}) PMF\")\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "71d6da5d",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Hypergeometric Distribution"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2e1643c0",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** A random variable $X$ is said to be a *Hypergeometric* random variable with parameter $b$, $r$ and $k$, shown as $X \\sim \\text{Hypergeometric}(b,r,k),$ if its range is $R_X = \\{\\text{max}(0,k-r),\\text{max}(0,k-r)+1,\\text{max}(0,k-r)+2,\\text{min}(k,b)\\},$ and its PMF is given by\n",
|
|
"\n",
|
|
"$$P_X(x) = \\begin{cases} \n",
|
|
"\\frac{\\binom{b}{x}\\binom{r}{k-x}}{\\binom{b+r}{k}} & \\text{for } x \\in R_X \\\\ \n",
|
|
"0 & \\text{otherwise} \n",
|
|
"\\end{cases}$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "f7fd3014",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Poisson Distribution"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c043ad82",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition.*** A random variable $X$ is said to be a *Poisson* random variable with parameter with $\\lambda$, shown as $X \\sim Poisson(\\lambda)$, if its range is $R_X = \\{ 0, 1, 2, 3, \\dots \\}$, and its PMF is given by\n",
|
|
"\n",
|
|
"$$P_X(k) = \\begin{cases} \n",
|
|
"\\frac{e^{-\\lambda}\\lambda^k}{k!} & \\text{for } x \\in R_X \\\\ \n",
|
|
"0 & \\text{otherwise} \n",
|
|
"\\end{cases}$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "21d22a91",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Theorem*** Let $X \\sim Binomial(n, p = \\frac{\\lambda}{n})$, where $\\lambda \\gt 0$ is fixed. Then for any $k \\in \\mathbb{N} \\cup \\{0\\}$, we have\n",
|
|
"\n",
|
|
"$$\\lim_{x \\to \\infty}P_X(k) = \\frac{e^{-\\lambda}\\lambda^k}{k!} $$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "05a5e06b",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Cumulative Distribution Function (3.2.1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "043abe94",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition*** The cumulative distribution function (CDF) of random variable $X$ is defined as\n",
|
|
"$$F_X(x) = P(X \\leq x) \\text{ for all } x \\in \\mathbb{R}$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9768e347",
|
|
"metadata": {},
|
|
"source": [
|
|
"NOTE: If we have the PMF, we can find the CDF from it. In particular, if $R_X = \\{ x_1, x_2, x_3, \\dots \\}$, we can write\n",
|
|
"\n",
|
|
"$$F_X(x) = \\sum_{x_k \\leq x}P_X(x_k)$$\n",
|
|
"\n",
|
|
"NOTE: For all $a \\leq b$, we have\n",
|
|
"$$P(a \\lt X \\leq b) = F_X(b) - F_X(a)$$\n",
|
|
"\n",
|
|
"NOTE: To find $P(X \\lt x)$, for a discrete random variable, we can simply write\n",
|
|
"\n",
|
|
"$$P(X \\lt x) = P(X \\leq x) - P(X = x) = F_X(x) - P_X(x)$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0fd28226",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Expectation (3.2.2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d9ad903b",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition*** Let $X$ be a discrete random variable with range $R_X = \\{ x_1, x_2, x_3, \\dots \\}$ (finite or countably infinte). The *expected* value of $X$, denoted by $E[X]$ is defined as\n",
|
|
"\n",
|
|
"$$E[X] = \\sum_{x_k \\in R_X}x_kP(X=x_k) = \\sum_{x_k \\in R_X}x_kP_X(x_k)$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e4c5500d",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Theorem*** Expectation is linear. We have\n",
|
|
"- $E[aX +b] = aE[X] + b, \\forall a,b \\in \\mathbb{R}$\n",
|
|
"- $E[X_1 + X_2 + \\dots + X_n] = E[X_1] + E[X_2] + \\dots + E[X_n]$, for any set of random variables $X_1, X_2, \\dots, X_n$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "110d9ecf",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Functions of Random Variables (3.2.3)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1ed681ae",
|
|
"metadata": {},
|
|
"source": [
|
|
"Law of the unconscious statistician (LOTUS) for discrete random variables:\n",
|
|
"\n",
|
|
"$$E[g(X)] = \\sum_{x_k \\in R_X}g(x_k)P_X(x_k)$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9c9c6a44",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Variance (3.2.4)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5d7e781f",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition*** The **variance** of a random variable $X$ is defined as\n",
|
|
"\n",
|
|
"$$\\text{Var}(X) = E[(X - E[X])^2] = \\sum_{x_k \\in R_X} (x_k - E[X])^2P_X(x)$$\n",
|
|
"\n",
|
|
"Or\n",
|
|
"\n",
|
|
"$$\\text{Var}(X) = E[X^2] - (E[X])^2 = \\sum_{x_k \\in R_X}x_k^2P_X(x_k) - (E[X])^2$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1def8444",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Definition*** The *standard deviation* of a random variable $X$ is defined as\n",
|
|
"\n",
|
|
"$$\\text{SD}(X) = \\sigma_X = \\sqrt{\\text{Var}(X)}$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "def50a00",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Theorem*** For a random variable $X$ and real numbers $a$ and $b$,\n",
|
|
"\n",
|
|
"$$\\text{Var}(aX + b) = a^2\\text{Var}(X)$$\n",
|
|
"\n",
|
|
"$$\\text{SD}(aX + b) = |a|\\text{SD}(X)$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e32be7d1",
|
|
"metadata": {},
|
|
"source": [
|
|
"***Theorem*** If $X_1, X_2, \\dots, X_n$ are independent random variables and $X = X_1 + X_2 + \\dots + X_n$, then\n",
|
|
"\n",
|
|
"$$\\text{Var}(X) = \\text{Var}(X_1) + \\text{Var}(X_2) + \\dots + \\text{Var}(X_n) $$"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "roadmap (3.14.5)",
|
|
"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.14.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|