You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

760 lines
181 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "code",
"execution_count": 17,
"id": "b9ba75db",
"metadata": {},
"outputs": [],
"source": [
"# Cell 1 - Imports and reproducibility\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"rng = np.random.default_rng(2026)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "220e42d8",
"metadata": {},
"outputs": [],
"source": [
"# Cell 2 - Define a discrete RV with PMF table\n",
"values = np.array([0, 1, 2]) # outcomes\n",
"probs = np.array([0.2, 0.5, 0.3]) # \n",
"\n",
"assert np.all(probs>=0), \"Probabilities must be nonnegative\"\n",
"assert np.isclose(probs.sum(), 1.0), \"Probabilities must sum to 1\""
]
},
{
"cell_type": "markdown",
"id": "5766655f",
"metadata": {},
"source": [
"$E[X]=\\sum_x x\\, p(x)$\n",
"\n",
"$\\text{Var}(X)=E[X^2]-\\mu^2$"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "473ff8a8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(np.float64(1.1),\n",
" np.float64(0.48999999999999977),\n",
" np.float64(0.6999999999999998))"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 3 - Anlytical E[X], Var(X)\n",
"EX = np.sum(values*probs)\n",
"EX2 = np.sum((values**2)*probs)\n",
"VarX = EX2-EX**2\n",
"SDX = np.sqrt(VarX)\n",
"EX, VarX, SDX"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "32d1a6bf",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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8uT2TKxvd2qsdemu7Xn6PWfifruLUZ87jbFLyLQxLGr/Hc1kNfU33qyMu9flSabttzu35a51mXieeLJMbXlyeybWtzs11rp01/Y8/Z4zcb/dpT63Z+fz20f9U9ewoy5rTk9Pl7i4uBrLvPTSS7J582Y5ceKEc9nvf/97+c9//iOZmZl6Xl3GHBUVJW+//baeV81PnTt3lhkzZsi8efNuuh+qe0l1DanWlsDAQPE0NWpaNY+pxNmpU6c6l3H3ujzJtP1257bctS4TzxNPlqktT27PxPp2p8Zal+7anqffcybut7vU1/bsfH7bDiylpaXOvqt77rlHFi9erC9ZbteunQ4Zqrvm3LlzsmbNGudlzX379pXp06fLU089Jdu3b5fnn39ePvvsM33psuOy5gkTJsjKlSt1cFmyZIl89NFH8s0331w3tuVWDxgAAJjBzud3M7srP3TokA4oDur+KYoKHOqGcPn5+ZKTk+N8vlu3bjqcvPDCC7J06VKdzFatWuUMK0p8fLxcvHhRkpKS9EDb/v3769aX2oQVAADg/W6pS8gUtLAAAODdn9+N8iohAADQtBBYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAAC8M7CkpqZK165dJSAgQKKjo+XgwYM1ln3wwQfFx8fnumnUqFHOMhMnTrzu+YcffrhuRwQAALxOM7svWL9+vSQkJMiKFSt0WFmyZInExsbK6dOnpWPHjteV/+STT+Tq1avO+e+//14iIyPlsccecymnAsr777/vnPf397d/NAAAwCvZbmFZvHixTJ06VSZNmiR33323Di6tWrWS1atXV1u+Xbt2EhIS4py2bt2qy/88sKiAcm25tm3b1v2oAABA0w0sqqXk8OHDEhMT878V+Prq+X379tVqHe+9956MHTtWWrdu7bJ8586duoWmV69e8swzz+iWmJpUVFRISUmJywQAALyXrcBy6dIlqayslODgYJflar6goOCmr1djXU6ePClTpky5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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(np.float64(1.0966),\n",
" np.float64(0.4897884399999999),\n",
" np.float64(0.6998488693996725))"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 4 - Monte Carlo Sampling of X\n",
"# Empirical mean and variance\n",
"N = 50_000\n",
"X = rng.choice(values, size=N, p=probs)\n",
"plt.plot(X[0:50], '.k')\n",
"plt.show()\n",
"\n",
"eMean = X.mean()\n",
"eVar = X.var(ddof=0)\n",
"eSD = np.sqrt(eVar)\n",
"eMean, eVar, eSD"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "0eb32f7f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1, 1, 1, 1, 2, 2, 0, 1])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X[0:9]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "a2ece9c5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQLBJREFUeJzt3QuczPX+x/HP3iwSueV+K0q5R0R1RNjk6Oic03FKEXKpdEg36kTqZKVyqRRC6sShOqFOUhurEpHrSUUUufxd14lQ7OX3f3y+22yzszO7M7tz+c38Xs/H42d2fvub+f3m992ZefvefnGWZVkCAADgYPGRPgAAAIBIIxABAADHIxABAADHIxABAADHIxABAADHIxABAADHIxABAADHIxABAADHIxABAADHIxABKJG4uDh57LHHOIsAohqBCLChuXPnmqDhWhITE6VWrVpy++23y/79+yN9eAAQcxIjfQAAfHv88celQYMG8ssvv8jnn39ugtKqVatk69atUrp0aVucup9//tkENgCIZnyKATbWvXt3adOmjfn5jjvukCpVqshTTz0l77zzjvzlL38RO7BLMAOAkqDJDIgiV199tbn97rvv8tZdc801ZvGkzWv169fPu797927T/PbMM8/IzJkz5cILL5Tk5GS5/PLL5Ysvvijw2HLlypnmuV69epmfq1atKvfff79kZ2cX2odIf9Z1O3fuNM9z3nnnSYUKFaR///5y+vTpArVLf/vb30zQO/fcc+WGG24w+/SnX9LKlSvNdm+88YaMGzfONCnqc/z5z3+W48ePy5kzZ2TEiBFy/vnnm+PX/es6T6+//rq0bt1aypQpI5UqVZK//vWvsnfv3nzbfPrpp3LTTTdJ3bp1zTmrU6eO3Hvvveb4i3vePP3+97+XCy64wOvv2rdvnxeMVVpamlx11VXm3Oo+Lr74Ynn44YelKHq+hg0bJosXL5amTZua19KkSRNZtmxZkY8FYh01REAU0VCjKlasWOznmD9/vvz0008yZMgQ8wU5ceJE+eMf/yjff/+9JCUl5W2nX+ApKSnSrl07E6I++ugjefbZZ02QuvPOO4vcj9ZgaXNfamqqbNy4UWbNmmXCidZwuQcIDTS33XabXHHFFfLxxx9Ljx49Ano9+vwaZkaNGmVC2PPPP29eR3x8vPzvf/8zwcrV3KjHM2bMmLzHPvnk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DUIjRozw+ZgzZ86YxeXEiRPmNjMzUzJ37ZLEwYMlzlsYUpYl1pAhktW5MzVFIaBl4H6LyKI87IOysA/Kwj5C/V0RVYHo4MGDUq1atXzr9L6GnJ9//lnKlClT4DGpqakybty4AuvT09Ol7nffyZW+wtCv4rKzZe28eZLRrFkQXgG8SUtL48TYCOVhH5SFfVAWkXf69OmQPn9UBaLiGD16tIwcOTLvvoanOnXqSKdOnaTyFVeINXas7xoirSRKSJB2ffpQQxSitK8fMl27dpWkpKRQ7AKUR1TivWEflIV9ZGj/3hCKqkBUvXp1OXToUL51er98+fJea4eUjkbTxZN+ASdVry4yc6bIkCEi2dkFHxwfL3EzZkhSgwbBexHwXhYEItugPOyDsrAPyiLyQv09EVWBqH379rJ06dJ867SGQdcXm3aY1g7ZO3eKnHOOyO7dv40y0+etXbvkBw4AAGwtooHo5MmTslODiNuw+s2bN0ulSpWkbt26prlr//798tprr5nf63D7F154QR588EEzVH/FihXyxhtvyHvvvVeyA9HQ4wo+l19esucCAABRJ6ITM65fv15atWplFqV9ffTnMWPGmPsHDhyQPXv25G2vQ+41/GitkM5fpMPvZ82aVbI5iAAAgONFtIbommuuEcuyfP7e2yzU+phNmzaF+MgAAICTcC0zAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeBEPRNOmTZP69etL6dKlpV27drJu3bpCt58yZYpcfPHFUqZMGalTp47ce++98ssvv4TteAEAQOyJaCBauHChjBw5UsaOHSsbN26UFi1aSEpKihw+fNjr9vPnz5dRo0aZ7b/55huZPXu2eY6HH364+Aexb59IenruLQAAcKSIBqJJkybJoEGDpH///nLppZfK9OnTpWzZsjJnzhyv269evVquvPJKueWWW0ytUrdu3eTmm28uslbJp9mzRerVE+ncOfdW7wMAAMdJjNSOz549Kxs2bJDRo0fnrYuPj5cuXbrImjVrvD6mQ4cO8vrrr5sA1LZtW/n+++9l6dKlctttt/ncz5kzZ8zicuLECXObtWePWIMHS1xOTu4vcnLEGjJEsjQc1a4dvBcKnzIzM/PdIrIoD/ugLOyDsrCPUH9XRCwQHT16VLKzs6VatWr51uv9bdu2eX2M1gzp46666iqxLEuysrJk6NChhTaZpaamyrhx4wqs3/Lvf0s3Vxj6VVx2tqydN08ymjUr9utC4NLS0jhtNkJ52AdlYR+UReSdPn06NgNRcaxcuVLGjx8vL774oumAvXPnThk+fLg88cQT8uijj3p9jNZAaT8l9xoi7Yzd4k9/Eis19bcaIhGxEhKkXZ8+1BCFMe3rh0zXrl0lKSkpXLsF5WF7vDfsg7Kwj4yMjNgMRFWqVJGEhAQ5dOhQvvV6v3r16l4fo6FHm8fuuOMOc79Zs2Zy6tQpGTx4sDzyyCOmyc1TcnKyWTwl1q0rcTNnigwZIpKdLZKQIHEzZkhSgwZBe43wj4YhApF9UB72QVnYB2UReaH+nkgsSR8gHQ2W49HsVLduXb8eX6pUKWndurUsX75cevXqZdbpc+n9YcOG+awu8ww9GqqUNqEFbOBAkZQUkZ07RRo2pGYIAACHCjgQ7dixQwYMGGBGfLnTQBIXF2f6BflLm7L69esnbdq0MZ2kdY4hrfHRUWeqb9++UqtWLdMPSPXs2dOMTGvVqlVek5nWGul6VzAKmHagphM1AACOFnAguv322yUxMVH+85//SI0aNUwIKq7evXvLkSNHZMyYMXLw4EFp2bKlLFu2LK+j9Z49e/LVCP397383+9Pb/fv3S9WqVU0YevLJJ4t9DAAAAAEHos2bN5vh8o0bNw7K2dPmMV9NZNqJ2p0GMZ2UURcAAICITcyoEyjq0HcAAADHBqKnnnpKHnzwQVN7o0PgdBi7+wIAABDzTWY6k7S69tprS9ypGgAAICoDUbpeCDVW6AVdd+wQadSIkWYAADhYwIGoY8eOEgviXn9dx/2ba5iJjmTTSRp1XiIAAOA4xZ6YUSdJ1GHxOkGju+bNm0s0SLj3Xm3ny72joUhnrNZJGpmTCAAAxwk4EOm8QTpx4vvvv+/199HShyjOc2ZrPW6dsZpABACA4wQ8ymzEiBHy448/ytq1a6VMmTJmIsVXX31VGjVqJO+8845EC8tzQkmd6Vov3wEAABwn4BqiFStWyJIlS8zlNnQW6Xr16pmrlZcvX95cYqNHjx4SDbInTxa57768C7vKjBnUDgEA4FAB1xDptcbOP/9883PFihVNE5rryvMbN26UaGHdeqvI7t06bC73lg7VAAA4VsA1RBdffLFs375d6tevLy1atJAZM2aYn6dPn26ubRZVuLArAAAoTiAaPny4HDhwwPys1xS77rrrZN68eVKqVCmZO3cuJxUAAMR+ILpVm5p+1bp1a/nhhx9k27ZtUrduXalSpUqwjw8AAMB+fYhcdP4hbTrTmqHLLruMMAQAAJwTiHRCxoEDB0rZsmWlSZMmZnJGdc8998iECRNCcYwAAAD2CkSjR4+WLVu2mKvdly5dOt9FXxcuXBjs4wMAALBfH6LFixeb4HPFFVeYq9u7aG3Rd999F+zjAwAAsF8Nkc475JqHyHN+IveABAAAELOBSGeofu+99/Luu0LQrFmzpH379sE9OgAAADs2mY0fP166d+8uX3/9tWRlZcnUqVPNz6tXr5aPP/44NEcJAABgpxqiq666SjZv3mzCkF6u48MPPzRNaGvWrDHzEgEAAMR8DZG68MIL5eWXXw7+0QAAAETTxIwAAACOqyFKSEjwa7vs7OySHA8AAIB9A5FlWVKvXj3p16+ftGrVKrRHBQAAYMdAtG7dOpk9e7YZVdagQQMZMGCA9OnTRypWrBjaIwQAALBLHyKdf+ill16SAwcOyMiRI2XRokVSu3Zt+etf/yppaWkSdfbvF0lPF9m3L9JHAgAAoq1TtV6/7NZbb5Xly5fL1q1b5fDhw3LdddfJsWPHJJoktmwp0rmzSL16IrNnR/pwAABAtI0y27dvn/zjH/+Qrl27yrZt2+SBBx6Q8uXLSzSJs6zcH3JyRIYMoaYIAAAH8zsQnT171lzUtVu3btKoUSPZuHGjTJkyRfbu3SsTJkyQxMRiTWlkDzoybufOSB8FAACIEL9TTI0aNeTcc881o8xefPHFvAu86kVd3UVbTZGhUwo0bBjpowAAAHYPRP/73//M8sQTT5jmMm/D8vVCr9EyD5EVH5/bXKZhaMYMkdq1I31IAADA7oEoXUdkxZCsTZtEtCO41gwRhgAAcDS/A1HHjh0lptSqJdK8eaSPAgAA2ADXMgMAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI4X8PTSN954o5lvyJOu0+ucNWzYUG655Ra5+OKLHX9yAQBAjNYQVahQQVasWGEu3aEhSJdNmzaZdVlZWebyHi1atJDPPvssNEcMAAAQ6Rqi6tWrmxqgF154QeJ1tmdzfdQcGT58uLm0x4IFC2To0KHy0EMPyapVq4J9vAAAAJGvIZo9e7aMGDEiLwyZJ4mPl3vuuUdmzpxpaoyGDRsmW7du9ev5pk2bJvXr1zfNbe3atZN169YVuv2PP/4od999t7m2WnJyslx00UWydOnSQF8GAABA8QORNott27atwHpd57qOmYYbb/2MPGnz2siRI2Xs2LGmCU6b2lJSUuTw4cNetz979qx07dpVdu/eLW+99ZZs375dXn75Zamls04DAACEq8nstttuk4EDB8rDDz8sl19+uVn3xRdfyPjx46Vv377m/scffyxNmjQp8rkmTZokgwYNkv79+5v706dPl/fee0/mzJkjo0aNKrC9rj927JisXr1akpKSzDqtXQIAAAhrIJo8ebJUq1ZNJk6cKIcOHTLr9P69995r+g2pbt26yXXXXVfo82htz4YNG2T06NH5mt66dOkia9as8fqYd955R9q3b2+azJYsWSJVq1Y1/Zl0vwl61XoAAIBwBCINHo888ohZTpw4YdaVL18+3zZ169Yt8nmOHj1qmtg0TLnT+96a5NT3339vRrP16dPH9BvauXOn3HXXXZKZmWma3bw5c+aMWVxcx6yP0QWR4zr/lIM9UB72QVnYB2VhH6H+rgg4ELnzDEKhpqPZzj//fNN5W4NZ69atZf/+/fL000/7DESpqakybty4AuvT09OlbNmyYThqFCUtLY2TZCOUh31QFvZBWUTe6dOn7RWItJns/vvvl+XLl5vOz5Zl5fu9q2N1UapUqWJCjavZzf35dWi/NzqyTPsOuTePXXLJJXLw4EHTBFeqVKkCj9EmOe247V5DVKdOHenUqZNUrlzZr2NF6NK+fshoR3lXnzBEDuVhH5SFfVAW9pGRkWGvQHT77bfLnj175NFHHzUBxZ/RZN5oeNEaHg1WvXr1yqsB0vs6bN+bK6+8UubPn2+2cw37//bbb81xeAtDSofm6+JJv4D5ErYHysJeKA/7oCzsg7KIvFB/ZwcciHSyxU8//VRatmxZ4p1rzU2/fv2kTZs20rZtW5kyZYqcOnUqb9SZjlrTIfXa7KXuvPNOMyGkTgKp8x7t2LHDjG7729/+VuJjAQAAzhVwINLmJs9msuLq3bu3HDlyRMaMGWOavTRkLVu2LK+jtdZEuU8Aqfv+4IMPzIi25s2bm7Ck4cg1ug0AACAsgUhrcXSOoBkzZgRlDiBtHvPVRLZy5coC63TY/eeff17i/QIAABQ7EGmtjvb0vvDCC80oLc82PZ04EQAAIOZriAAAABwdiLQTNAAAgOMCkc7d45qE0TXTs10mawQAAAhLIKpYsaIcOHDAzBJ93nnneZ17SEee6Xp/J2YEAACIqkCk1w+rVKlS3iUvAAAAHBeIOnbs6PVnAACAWFCsi7v++OOPsm7dOnMtM72MhjudXRoAACCmA9G7774rffr0kZMnT5oO1O79ifRnAhEAAIg2v10Xw0/33XefDBgwwAQirSn63//+l7cwKSMAAHBEINq/f7+5mKrOUg0AAODIQJSSkiLr168PzdEAAABEQx+iHj16yAMPPCBff/21NGvWrMC1zG644YZgHh8AAID9AtGgQYPM7eOPP17gd0zMCAAAHBGIPIfZAwAAOK4PEQAAgDi9hshbU5m7MWPGlOR4AAAA7B+IFi1alO9+Zmam7Nq1SxITE+XCCy8kEAEAgNgPRJs2bSqw7sSJE3L77bfLjTfeKNEi7tNPRdq0EaldO9KHAgAAYqEPkV7CY9y4cfLoo49KtEjU8Favnsjs2ZE+FAAAECudqo8fP26WqKIj5oYMEdm3L9JHAgAAoqnJ7Lnnnst337IsOXDggPzzn/+U7t27S9TJzhbZuZOmMwAAHCzgQDR58uR89+Pj46Vq1arSr18/GT16tESdhASRhg0jfRQAACCaApGOKPPl559/lqgLQzNmUDsEAIDDBaUP0ZkzZ2TSpEnSoEEDiRZZixeL7N4tMnBgpA8FAABESyDS0KNNYm3atJEOHTrIYg0UIjJnzhwThLQp7d5775VoYV11FTVDAAAgsCYznYF6xowZ0qVLF1m9erXcdNNN0r9/f/n8889N7ZDeT9AmKAAAgFgNRG+++aa89tprcsMNN8jWrVulefPmkpWVJVu2bDFXuQcAAIj5JrN9+/ZJ69atzc9NmzaV5ORk00RGGAIAAI4JRNnZ2VKqVKm8+3rtsnLlyoXquAAAAOzXZKYTMOr1yrRmSP3yyy8ydOhQOeecc/Jt9/bbbwf/KAEAAOwQiHTiRXe33nprKI4HAADAvoHolVdeCe2RAAAARPvFXQEAAKIVgQgAADgegQgAADgegQgAADgegQgAADgegQgAADgegQgAADgegQgAADgegQgAADgegQgAADieLQLRtGnTpH79+lK6dGlp166drFu3zq/HLViwQOLi4qRXr14hP0YAABC7Ih6IFi5cKCNHjpSxY8fKxo0bpUWLFpKSkiKHDx8u9HG7d++W+++/X66++uqwHSsAAIhNEQ9EkyZNkkGDBkn//v3l0ksvlenTp0vZsmVlzpw5Ph+TnZ0tffr0kXHjxskFF1wQ1uMFAAAOvtp9KJw9e1Y2bNggo0ePzlsXHx8vXbp0kTVr1vh83OOPPy7nn3++DBw4UD799NNC93HmzBmzuJw4ccLcZmZmmgWR4zr/lIM9UB72QVnYB2VhH6H+rohoIDp69Kip7alWrVq+9Xp/27ZtXh+zatUqmT17tmzevNmvfaSmppqaJE/p6emmJgqRl5aWFulDgBvKwz4oC/ugLCLv9OnTsRuIAvXTTz/JbbfdJi+//LJUqVLFr8do7ZP2UXKvIapTp4506tRJKleuHMKjhT9pXz9kunbtKklJSZywCKM87IOysA/Kwj4yMjJiNxBpqElISJBDhw7lW6/3q1evXmD77777znSm7tmzZ966nJwcc5uYmCjbt2+XCy+8MN9jkpOTzeJJv4D5ErYHysJeKA/7oCzsg7KIvFB/Z0e0U3WpUqWkdevWsnz58nwBR++3b9++wPaNGzeWL7/80jSXuZYbbrjB1Pboz1rzAwAAEHVNZtqc1a9fP2nTpo20bdtWpkyZIqdOnTKjzlTfvn2lVq1api+QzlPUtGnTfI8/77zzzK3negAAgKgJRL1795YjR47ImDFj5ODBg9KyZUtZtmxZXkfrPXv2mJFnAAAAMRuI1LBhw8zizcqVKwt97Ny5c0N0VAAAwCmoegEAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5HIAIAAI5ni0A0bdo0qV+/vpQuXVratWsn69at87ntyy+/LFdffbVUrFjRLF26dCl0ewAAANsHooULF8rIkSNl7NixsnHjRmnRooWkpKTI4cOHvW6/cuVKufnmmyU9PV3WrFkjderUkW7dusn+/fvDfuwAACA2RDwQTZo0SQYNGiT9+/eXSy+9VKZPny5ly5aVOXPmeN1+3rx5ctddd0nLli2lcePGMmvWLMnJyZHly5eH/dgBAEBsSIzkzs+ePSsbNmyQ0aNH562Lj483zWBa++OP06dPS2ZmplSqVMnr78+cOWMWlxMnTphbfYwuiBzX+acc7IHysA/Kwj4oC/sI9XdFRAPR0aNHJTs7W6pVq5Zvvd7ftm2bX8/x0EMPSc2aNU2I8iY1NVXGjRtXYL02uWlNFCIvLS0t0ocAN5SHfVAW9kFZRJ5WgMRsICqpCRMmyIIFC0y/Iu2Q7Y3WPmkfJfcaIu131KlTJ6lcuXIYjxbe0r5+yHTt2lWSkpI4QRFGedgHZWEflIV9ZGRkxG4gqlKliiQkJMihQ4fyrdf71atXL/SxzzzzjAlEH330kTRv3tzndsnJyWbxpF/AfAnbA2VhL5SHfVAW9kFZRF6ov7Mj2qm6VKlS0rp163wdol0dpNu3b+/zcRMnTpQnnnhCli1bJm3atAnT0QIAgFgV8SYzbc7q16+fCTZt27aVKVOmyKlTp8yoM9W3b1+pVauW6QuknnrqKRkzZozMnz/fzF108OBBs75cuXJmAQAAiLpA1Lt3bzly5IgJORpudDi91vy4Olrv2bPHjDxzeemll8zotD//+c/5nkfnMXrsscfCfvwAACD6RTwQqWHDhpnFG+0w7W737t1hOioAAOAUEZ+YEQAAINIIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPEIRAAAwPFsEYimTZsm9evXl9KlS0u7du1k3bp1hW7/5ptvSuPGjc32zZo1k6VLl4btWAEAQOyJeCBauHChjBw5UsaOHSsbN26UFi1aSEpKihw+fNjr9qtXr5abb75ZBg4cKJs2bZJevXqZZevWrYHteP/+4LwAAAAQ9SIeiCZNmiSDBg2S/v37y6WXXirTp0+XsmXLypw5c7xuP3XqVLnuuuvkgQcekEsuuUSeeOIJueyyy+SFF14IaL+JLVuKzJ4dpFcBAACiWWIkd3727FnZsGGDjB49Om9dfHy8dOnSRdasWeP1Mbpea5TcaY3S4sWLvW5/5swZs7icOHHC3MZZllhDhkhW584itWsH6RUhEJmZmfluEVmUh31QFvZBWdhHqL8rIhqIjh49KtnZ2VKtWrV86/X+tm3bvD7m4MGDXrfX9d6kpqbKuHHjvP4uLjtb1s6bJxnNmhX7NaDk0tLSOI02QnnYB2VhH5RF5J0+fTp2A1E4aO2Te42S1hDVqVPH/GwlJEi7Pn2oIYpg2tcPma5du0pSUlKkDgOUh+3w3rAPysI+MjIyYjcQValSRRISEuTQoUP51uv96tWre32Mrg9k++TkZLN4suLjJW7GDElq0KBErwElp2GIQGQflId9UBb2QVlEXqi/JyLaqbpUqVLSunVrWb58ed66nJwcc799+/ZeH6Pr3bdXWsvga3tfsjZtEhk4sJhHDgAAYknEm8y0Oatfv37Spk0badu2rUyZMkVOnTplRp2pvn37Sq1atUxfIDV8+HDp2LGjPPvss9KjRw9ZsGCBrF+/XmbOnBnYjmvVCsXLAQAAUSjigah3795y5MgRGTNmjOkY3bJlS1m2bFlex+k9e/aYkWcuHTp0kPnz58vf//53efjhh6VRo0ZmhFnTpk0j+CoAAEA0i3ggUsOGDTOLNytXriyw7qabbjILAABATEzMCAAAEGkEIgAA4HgEIgAA4HgEIgAA4HgEIgAA4HgEIgAA4HgEIgAA4HgEIgAA4HgEIgAA4Hi2mKk6nCzLMrc//fQTV1iPsMzMTDl9+rScOHGCsrABysM+KAv7oCzsQ7+33b/Hg81xgSgjI8PcNmjQINKHAgAAivE9XqFCBQk2xwWiSpUq5V00NhQnFP7TmqE6derI3r17pXz58py6CKM87IOysA/Kwj6OHz8udevWzfseDzbHBaL4+NxuUxqG+BK2By0HysI+KA/7oCzsg7Kw3/d40J83JM8KAAAQRQhEAADA8RwXiJKTk2Xs2LHmFpQFeG/YEZ9T9kFZOKcs4qxQjV8DAACIEo6rIQIAAPBEIAIAAI5HIAIAAI5HIAIAAI7nuEA0bdo0qV+/vpQuXVratWsn69ati/QhxZxPPvlEevbsKTVr1pS4uDhZvHhxvt9rP/4xY8ZIjRo1pEyZMtKlSxfZsWNHvm2OHTsmffr0MZOhnXfeeTJw4EA5efJkmF9J9EtNTZXLL79czj33XDn//POlV69esn379nzb/PLLL3L33XdL5cqVpVy5cvKnP/1JDh06lG8bndm9R48eUrZsWfM8DzzwgGRlZYX51US3l156SZo3b543wV/79u3l/fffz/s95RA5EyZMMJ9VI0aMoDzC7LHHHjPn3n1p3LhxZN4XloMsWLDAKlWqlDVnzhzrq6++sgYNGmSdd9551qFDhyJ9aDFl6dKl1iOPPGK9/fbbOoLRWrRoUb7fT5gwwapQoYK1ePFia8uWLdYNN9xgNWjQwPr555/ztrnuuuusFi1aWJ9//rn16aefWg0bNrRuvvnmCLya6JaSkmK98sor1tatW63Nmzdb119/vVW3bl3r5MmTedsMHTrUqlOnjrV8+XJr/fr11hVXXGF16NAh7/dZWVlW06ZNrS5dulibNm0y5VulShVr9OjREXpV0emdd96x3nvvPevbb7+1tm/fbj388MNWUlKSKRtFOUTGunXrrPr161vNmze3hg8fnree8giPsWPHWk2aNLEOHDiQtxw5ciQi5eCoQNS2bVvr7rvvzrufnZ1t1axZ00pNTY3occUyz0CUk5NjVa9e3Xr66afz1v34449WcnKy9a9//cvc//rrr83jvvjii7xt3n//fSsuLs7av39/mF9BbDl8+LA5tx9//HHeudcv5TfffDNvm2+++cZss2bNGnNfP2Di4+OtgwcP5m3z0ksvWeXLl7fOnDkTgVcROypWrGjNmjWLcoiQn376yWrUqJGVlpZmdezYMS8Q8b4IbyDS//x6E+5ycEyT2dmzZ2XDhg2mecb9eih6f82aNRE9NifZtWuXHDx4MF856HXltPnSVQ56q81kbdq0ydtGt9fyWrt2bUSOO5YujqhcF0fU90RmZma+8tDqar2Aont5NGvWTKpVq5a3TUpKirno5VdffRX21xALsrOzZcGCBXLq1CnTdEY5RIY2xWhTi/vfv6I8wku7TGgXiwsuuMB0ldAmsEiUg2Mu7nr06FHzIeR+0pTe37ZtW8SOy2k0DClv5eD6nd5qO7C7xMRE8yXu2gaBy8nJMX0krrzySmnatGneuS5VqpQJoIWVh7fyci9P+OfLL780AUj7RWh/iEWLFsmll14qmzdvphzCTAPpxo0b5YsvvijwO94X4aP/GZ47d65cfPHFcuDAARk3bpxcffXVsnXr1rCXg2MCEeB0+r9h/ZBZtWpVpA/FsfRDX8OP1tS99dZb0q9fP/n4448jfViOs3fvXhk+fLikpaWZATaInO7du+f9rIMONCDVq1dP3njjDTPoJpwc02RWpUoVSUhIKNA7Xe9Xr149YsflNK5zXVg56O3hw4fz/V5HDOjIM8qqeIYNGyb/+c9/JD09XWrXrp2vPLQ5+ccffyy0PLyVl3t5wj/6v92GDRtK69atzQjAFi1ayNSpUymHMNOmGP2Mueyyy0ztsy4aTJ977jnzs9Yw8L6IDK0Nuuiii2Tnzp1hf1/EO+mDSD+Eli9fnq8JQe9rFTbCo0GDBuaP1L0ctK1X+wa5ykFv9Q2gH1ouK1asMOWl/3uA/7Rfu4YhbZrRc6jn352+J5KSkvKVhw7L1zZ89/LQph73kKr/s9ah49rcg+LTv+kzZ85QDmF27bXXmr9pra1zLdpnUfuvuH7mfREZOr3Kd999Z6ZlCfvnk+WwYfc6mmnu3LlmJNPgwYPNsHv33ukIzsgNHf6oi/6JTZo0yfz8ww8/5A271/O+ZMkS67///a/1hz/8weuw+1atWllr1661Vq1aZUaCMOw+cHfeeaeZ4mDlypX5hrWePn0637BWHYq/YsUKM6y1ffv2ZvEc1tqtWzczdH/ZsmVW1apVGXYfoFGjRpnRfbt27TJ/93pfR05++OGHlIMNuI8yU7wvwuO+++4zn0/6vvjss8/M8HkdNq8jYsNdDo4KROr55583J1fnI9Jh+DrPDYIrPT3dBCHPpV+/fnlD7x999FGrWrVqJqBee+21Zl4WdxkZGSYAlStXzgyf7N+/vwlaCIy3ctBF5yZy0SB61113mSHgZcuWtW688UYTmtzt3r3b6t69u1WmTBnzYaUfYpmZmRRHAAYMGGDVq1fPfPboB7b+3bvCEOVgv0DE+yI8evfubdWoUcO8L2rVqmXu79y5MyLlEKf/BK+yCwAAIPo4pg8RAACALwQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeAQiAADgeImOPwMAot4111wjzZs3l9KlS8usWbOkVKlSMnToUHnssccifWgAogQ1RABiwquvvirnnHOOrF27ViZOnCiPP/64pKWlRfqwAEQJLu4KICZqiLKzs+XTTz/NW9e2bVvp3LmzTJgwIaLHBiA6UEMEICZok5m7GjVqyOHDhyN2PACiC4EIQExISkrKdz8uLk5ycnIidjwAoguBCAAAOB6BCAAAOB6BCAAAOB6jzAAAgONRQwQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAByPQAQAAMTp/h92t26Vqnur+gAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cell 5 - Running mean (LLN intuition):\n",
"# \\bar{X}_n vs n\n",
"rMean = np.cumsum(X) / np.arange(1,N+1)\n",
"\n",
"plt.plot(rMean, '.r', label=\"Running mean\")\n",
"plt.grid()\n",
"plt.xlim([0,500])\n",
"plt.axhline(EX, color=\"black\", label=\"E[X]\")\n",
"plt.xlabel(\"n\")\n",
"plt.ylabel(\"Runing Mean\")\n",
"plt.title(\"Running mean vs n\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "a9fde10e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>n</th>\n",
" <th>mean_hat</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5</td>\n",
" <td>1.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5</td>\n",
" <td>1.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>5</td>\n",
" <td>1.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>5</td>\n",
" <td>1.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>0.600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3995</th>\n",
" <td>1000</td>\n",
" <td>1.033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3996</th>\n",
" <td>1000</td>\n",
" <td>1.132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3997</th>\n",
" <td>1000</td>\n",
" <td>1.089</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3998</th>\n",
" <td>1000</td>\n",
" <td>1.129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3999</th>\n",
" <td>1000</td>\n",
" <td>1.121</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>4000 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" n mean_hat\n",
"0 5 1.400\n",
"1 5 1.200\n",
"2 5 1.400\n",
"3 5 1.200\n",
"4 5 0.600\n",
"... ... ...\n",
"3995 1000 1.033\n",
"3996 1000 1.132\n",
"3997 1000 1.089\n",
"3998 1000 1.129\n",
"3999 1000 1.121\n",
"\n",
"[4000 rows x 2 columns]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 6 - How the estimator of E[X] changes with sample size\n",
"# Cereate many repetitions for different n and store the sample mean each time\n",
"nList = [5, 10, 20, 50, 100, 200, 500, 1000]\n",
"R = 500 # repetitions per n\n",
"\n",
"rows = []\n",
"for n in nList:\n",
" # draw an R x n matrix samples\n",
" samples = rng.choice(values, size=(R,n), p=probs)\n",
" means = samples.mean(axis=1)\n",
" for m in means:\n",
" rows.append({\"n\": n, \"mean_hat\": m})\n",
"\n",
"df = pd.DataFrame(rows)\n",
"df "
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "ccb262d0",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/0c/2g7zyqyd3lj21c3yr8x3168m0000gn/T/ipykernel_42855/3468306116.py:3: MatplotlibDeprecationWarning: The 'labels' parameter of boxplot() has been renamed 'tick_labels' since Matplotlib 3.9; support for the old name will be dropped in 3.11.\n",
" plt.boxplot(groups, labels=[str(n) for n in nList])\n"
]
},
{
"data": {
"image/png": "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yznm448/9kRERHhOnjzpcfJ9vX79ek9kZKTnzJkzOccsWrTIExcX58nMzPQ48b4Ox2uWAN3XCxcu9Nxxxx0+1/3MM8947r777oBfEyUjedAiLi0S+8UvfmESpRblucnRo0flzJkzprjPe46Bli1bSnJysjjFpUuXzLJ8+fJmqX8R6F+V3tetxb61atUK++v2d087+ZoLek/rUouwmzVrlnOMHq9zZOlfnE6+r3XZsGFDqVKlSs4x+te1/sWsf1E78b4O12sOxH2tx/zqV7+SqKgon++FVvf9+OOPEkiEET/0h6hFdRs2bJBFixaZH7bWo+nsg26hN7fy/k9qrVv7wp3OCD1y5Ehp06aNJCYmmm16bfqfUf/jOum687qnnXrNhbmndantBrwVL17cfKiHy/eisPe1LnP73lj7nHhfh+M1B+q+tvN7ERaz9tqhc+fOOV/fe++95obXerS//OUvptEPnEHr2Pfs2ePI9kAFuae1wRucg/ua+zrcUDKST5qs77rrLjl06JC4RdWqVc3yxpbnum7tC2cjRowwjbg2b94sNWvWzNmu16aN2S5evOjI687tnnbLNefnntbluXPnfPZrzwrtiRAO34vbua91mdv3xtrnxPvaCddctYjuazu/F4SRfNLuT4cPHzbdptyiTp065gbcuHFjzjatR9X6xdatW0u40vZf+gt7zZo1smnTJnOd3pKSkqREiRI+1611ploPHc7Xndc97ZZrzs89rUv98NL2Bha9T7TqQ0uTnHxf63L37t0+H1ra80K7gv7yl78UJ97XTrjmOkV0X+sx2sNG29l4fy/uvvtuueOOOwJ7EQFvIhumxowZ49myZYvn6NGjns8//9zTsWNHT8WKFU0LdSdJS0vzfPnll+aht8PcuXPN199++63Z/8c//tFTrlw5z4cffuj56quvPN27d/fUqVPHc+XKFU+4evLJJz1ly5Y1P9/Tp0/nPDIyMnKOGTZsmKdWrVqeTZs2eXbs2OFp3bq1eTj5nnbKNRfFPf3www97mjRp4vniiy88n332mad+/fqeRx991OP0+zorK8uTmJjoeeihhzy7du3ybNiwwVOpUiXPxIkTPU69r8PlmtOCcF9rD5wqVap4HnvsMc+ePXs87733nic2Ntbz2muvBfz6CCN+9O7d21OtWjVPVFSUp0aNGmb90KFDHqfZvHmzubFvfAwYMCCny9jzzz9vblDtJvbAAw949u/f7wlnuV2vPt56662cY/Q/8PDhw003N/3P+Nvf/tb8YnfyPe2Uay6Ke/rChQvml3Tp0qVNF8+BAweaDwM33NfHjh3zdO7c2RMTE2M+1PXD/tq1ax4n39fhcM2bg3Rf/+tf//Lcf//95jX0+6khJxgi9J/Alr0AAAD4R5sRAABgK8IIAACwFWEEAADYijACAABsRRgBAAC2IowAAABbEUYAAICtCCMAAMBWhBEAAGArwggAALAVYQQAANiKMAIAAMRO/w8uk/3bkPOigwAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cell 7 - Boxplot\n",
"groups = [df.loc[df[\"n\"] == n, \"mean_hat\"].values for n in nList]\n",
"plt.boxplot(groups, labels=[str(n) for n in nList])\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "d82dbe57",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((np.float64(-1.6999999999999997),\n",
" np.float64(4.409999999999998),\n",
" np.float64(2.0999999999999996)),\n",
" (np.float64(-1.7102), np.float64(4.40809596), np.float64(2.099546608199018)))"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 8 — Verify linear transform rules: Y = a + bX\n",
"a, b = -5, 3\n",
"Y = a + b * X\n",
"\n",
"# Analytical results\n",
"EY = a + b * EX\n",
"VarY = (b**2) * VarX\n",
"SDY = np.sqrt(VarY)\n",
"\n",
"# Empirical results\n",
"emp_EY = Y.mean()\n",
"emp_VarY = Y.var(ddof=0)\n",
"emp_SDY = np.sqrt(emp_VarY)\n",
"\n",
"(EY, VarY, SDY), (emp_EY, emp_VarY, emp_SDY)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "6a6c6d13",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Xza1SPptXWkNUEr6Ld9Dy1m/fn1TLv0277v9erlKazJutq1qwIABqbZVaY2Nv7TmSmtBdFt927No7ZNerroRTxuY1atXy++//57mMvoeuHDhgml4qpdQfKWsfdJLMil718ydO9fUolSrVs3sa8+ktVFKa9JuRPf1/Pnz5fHHHze/+66jVatWpiYwreOWFr0cpZNq2bJlhv4GuF249APchFa560k4JW3fkdYlIV96nV/bNVStWtW0U3j00UfN5ZmMhJzDhw9L2bJlTdsHX3py8zzv+ak9MypVqpRsOW33kJ6Uy6pz586Z9jSzZ882J3hfetJLqXz58ske68lfT9jaTibl/JTtXFLybEPKMuslKA07nm31h+dv9BKXL23srO1wbkSDhV660qCkl2k0sD322GPy/PPPmzKpgwcPmp8Z6aJ+1113pWr8q+FVL2vp5Zq0pDwGKWmvHO1GrJfCdMrMOjxef/110yZH31vaZkYvUen7G7ABQQXIQtouQ09oes1fx//QdhXaBmHChAnJaiRuN9/aE4+nn35a1q9fb9rAaHuYwoULm3YUGq7SGksjrR4y6fWaSdn4Nz0payLcpO07tLZC24po2yBtLKztOLR79P3333/L+1v3aa1atWTMmDFp/s3N2tB4jom2eenevXuay2QkEGvNk9Yaas2d1vrUq1dPXnvttXTDD3C7EVSALKYNN/UEoFN8fLwJL9rI1hNU0js569geK1asMJcXfGtV9u7d633e81NPWjExMclqDw4cOJDhMurljW+//dbUqLz11lve+Zm5ZJUZnm3Q1/PUGHkai2qtgWdb/V2n0nV6Lqd4GkHrvqpTp85N16GNVrVWRSddjwY47cX073//29ugVRuf3qj26kbr3rlzp0RGRt40oKX1vNbE6Pvi+vXr0qJFC8kM/VttoKs1d1r7p+vTbskanvT9+tBDD2VqvUAg0UYFyEIpL3loLYWe1Hy7n3p6V+gJ2VebNm3MieRf//pXsvlaI6MnLu1ForQ9gvroo4+SLffhhx9muJyempCUNR/jxo2T20G3Na3X89Q23KgHU3r0cp2ezLX2yjNGiKenTsp9ndY4J9pOJ2Ww0BO559hpWw59rLUsKZfNSA2S1mBp763Jkyenek67m/uOb6PvkZRl1mOmPZO0nYqGpbQuDd3MBx98YHop6U9PGNawql2ytW2PdhkH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nTx58jjvvfee89NPP5mW23nz5nV27drlXWbUqFFmHYsWLXJ++OEH07uiUqVKzqVLl7LFNmr58+XL58ybN885efKkd7pw4YJ5Xn8OHDjQ2bBhgxMTE+OsWLHCeeCBB5wqVao4ly9ftn77tOfE0qVLnYMHDzpbt251Onfu7OTPn9/Zs2ePlcfQ3+3zePjhh01vmJRsO35anu3bt5tJ/9sZM2aM+f3w4cPmed023UaPX375xSlYsKAzaNAg8xkcP368ExIS4ixZsiTD+8z2bZwxY4b5f0a3zfczqL0mPF599VVn9erV5hjq/0stWrRwSpQoYXps2L592hNt4cKFzv79+83/nf3793eCg4PNe9HGY+jv9nl069bN9IRJi03Hr0+fPqYnpJbH9/2WkJDgXcbWc2GuCCrqww8/dMqXL29OztolLjo62vtc06ZNTVdOX3PmzHGqVq1qltdukosXL072vHbLevPNN50777zTfNAiIyOdffv2OdllGytUqGA+jCknfSMqffO2bNnSKVmypHlj6vK9e/d27STg7/ZFRUV5l9Vj1KZNG2fbtm1WH0N/36N79+41x2zZsmWp1mXb8fN0VU05ebZJf+o2pvybunXrmv1RuXJl0+Xcn31m+zbq7zdaXmkILVOmjNm+u+66yzw+cOBAtti+0aNHO3fffbf5glC8eHGnWbNmzsqVK609hpl5j2qoLFCggDNp0qQ012nT8ZM0tk0n38+VrefCoP+3AQAAANbJ8W1UAABA9kVQAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACwBp6Tya9y+4TTzyRbH5sbKxERETI66+/7lrZALiDkWkBWOXnn3+WunXryuTJk6Vr165m3vPPPy87d+6UzZs33/QOtQByFoIKAOt88MEH8vbbb8uePXtk06ZN0qlTJxNS6tSp43bRANxmBBUA1tFbkP3pT3+SkJAQ2bVrl/Tr10/eeOMNt4sFwAUEFQBW2rt3r9x3331Sq1Yt2bZtm+TJk8ftIgFwAY1pAVjps88+k4IFC0pMTIwcO3bM7eIAcAk1KgCss379emnatKksW7ZMhg8fbuatWLFCgoKC3C4agNuMGhUAVklISJAePXpInz59pHnz5vLpp5+aBrUTJkxwu2gAXECNCgCr9O/fX77++mvTHVkv/aiJEyfKwIEDTcPaihUrul1EALcRQQWANdasWSORkZGyevVqefjhh5M916pVK7l27RqXgIBchqACAACsRRsVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCoAAMBaBBUAAGAtggoAALAWQQUAAFiLoAIAAMRW/wfcuXau4qR3kwAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAO9NJREFUeJzt3Ql4U2Xa//G7FGhBbLGyQ6EgKiBQEIaKKMqIIiAMrogsBRUFwWEZcKgiyCLFhU1FEZT1RVYFZWBQZBlAtqEsIrIKWPZFpIUCBdr8r/t5/8nbtGmblKZpTr+f6zoX5OTk5MnJafLLs50Am81mEwAAAIso5OsCAAAA5CbCDQAAsBTCDQAAsBTCDQAAsBTCDQAAsBTCDQAAsBTCDQAAsBTCDQAAsBTCDQAAsBTCDfxKRESEdO3a1dfFsLwPPvhAqlWrJoGBgVKvXj2xghs3bsgbb7wh4eHhUqhQIWnXrp1YRX77uzhy5IgEBATI9OnTPX7sO++8Yx577tw5v3vdyD8IN/AZ/eDTD7GtW7e6vP/hhx+W2rVr3/TzLFu2zHxgwj0//PCDCQFNmjSRadOmyahRozLd9quvvpLx48f7xaGdOnWqCW3PPPOMzJgxQ/r16+frIiGfOHz4sBQvXlw6dOjg8v558+aZz6qJEyfmedmQM4Vz+DjAJ/bt22d+dXsabvRDiYDjnlWrVplj/OWXX0rRokWz3FbDzS+//CJ9+/YVf3hdFStWlHHjxvm6KJZXpUoVuXLlihQpUkT8QdWqVWXo0KEyaNAg6datmzz22GOO+xITE00QjoqKkp49e/q0nHAfNTfwK0FBQX7zgWmXlJQk/uTMmTNSrFixbIONp65evSqpqaniy9dVsmTJXNufvhZ9TXBu+rt27Zqp5QgODjbNmv7iH//4h9SpU0dee+01E8zs3nrrLTl79qxMnjzZ4x9W8B3eKfiV9G3s169fl2HDhsmdd95pPkxvv/12eeCBB2TFihXmft3WXpWsH7j2JW3w0A817Yehwenuu++WDz/8UGw2m9Pz6ofd3//+dylVqpTceuut0rZtWzl+/LjZV9oaIXt/gV9//VVeeOEFue2220x51M8//2zKo31ZtKzlypWTF198Uf744w+n57LvY//+/dKpUycJDQ2V0qVLy9tvv23KdfToUfnb3/4mISEhZh9jxoxx+4tnxIgRcscdd5jXqsfyzTfflOTkZMc2+rzaFKXHxX6sMus3oc2GS5culd9//92xre5TrVmzxtyeO3euDB482NSYaLW//go+f/68DBgwwHyRlChRwryOli1bys6dO532b9/H/Pnz5d1335VKlSqZ4/bII4/IwYMHnbY9cOCAPP300+Z46Da67fPPPy8JCQmO/h+rV6+W3bt3O8qq+/fkHNDH9O7dW2bPni333HOP2Xb58uWO5tX169ebc0TfKw1Rr776qvmiv3DhgnTp0sWcC7pok1/6fWtQ0uY93a+Wv2zZsubxf/75p9N2+riRI0ea16fHs1mzZuY1ZUf/TsLCwkytRHr6nuhz6nuitMxDhgyRBg0amHPvlltukQcffNAcv7Tsx1WPlZbdfl7pue+qz42757+d9rl57rnnzPmhf9d9+vRxK0zq8daaRPv7Wb16dXnvvfeyDdaFCxc2AUabqPQYq7i4OPn000/N+VG3bt1snxv5B81S8Dn9AnLVeVA/kLOjQSA2NlZefvlladSokfmg1j4827Ztk0cffdR8QZw4ccKEnVmzZmX4otCQoh/aL730kuk4+/3338vAgQNNcEnbfKEfyvol27lzZ7nvvvvkP//5j7Ru3TrTcj377LMmcGl/FfsXmZbh0KFD5gtGP9j1S0k/TPXfTZs2OYUu1b59e6lZs6aMHj3ahAj9wNUvqM8//1z++te/mg9s/aLVL6W//OUv0rRp0yyPlR4j7WuifU70w3rz5s3m2O3Zs0cWLVpkttFjpGXasmWLfPHFF2bd/fff73J/+otW37tjx445jpWGlbQ0TGkNkJZRQ5T+X7/8Fi9ebI6RNgecPn3avKaHHnrI3FehQgWnfejr11/Mug99vvfff186duxoym//Mm7RooXZ/+uvv26Orb5///rXv8wXnYYNfV0akC5dumRes9Jj68k5YG/a0vNAQ44GXQ1zO3bsMPfZn1vDtr6fehw15GzYsEEqV65szgVtItV+P9qXTAOPnZ6nGgT03NCApF+wn3zyiWzfvl1++uknR22lhg49D1q1amUWPc+1CUWPQVb08U8++aR888035linrZXT90KPnYZBpX9D+t5r/5Pu3bvLxYsXTROlHmM9L9J3MNcwrKHjlVdeMWFCz1FXQcLT81+DjR5ffb/0/o8++siEvZkzZ2b6Oi9fvmzOI33v9JjqcdfjHxMTIydP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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cell 9 — Visual check: histograms of X and Y (discrete RVs)\n",
"plt.figure()\n",
"plt.hist(X, bins=20, density=True)\n",
"plt.xlabel(\"X\")\n",
"plt.ylabel(\"Relative frequency\")\n",
"plt.title(\"Histogram of discrete X\")\n",
"plt.show()\n",
"\n",
"plt.figure()\n",
"plt.hist(Y, bins=20, density=True)\n",
"plt.xlabel(\"Y = a + bX\")\n",
"plt.ylabel(\"Relative frequency\")\n",
"plt.title(\"Histogram of transformed variable Y\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "4e058dd9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((np.float64(4.004671683485947), np.float64(1.3301885811390868)),\n",
" (4.0, 1.3333333333333333))"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 10 (optional) — Continuous RV example: Uniform(a,b)\n",
"# Demonstrate: P(c < X < d) as area, and mean/variance formulas (compare with simulation).\n",
"a_u, b_u = 2.0, 6.0\n",
"N_u = 200_000\n",
"Xu = rng.uniform(a_u, b_u, size=N_u)\n",
"\n",
"# Analytical (Uniform)\n",
"EXu = (a_u + b_u) / 2\n",
"VarXu = (b_u - a_u)**2 / 12\n",
"\n",
"# Empirical\n",
"(Xu.mean(), Xu.var(ddof=0)), (EXu, VarXu)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "dba76292",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(np.float64(0.375195), 0.375)"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 11 (optional) — Probability query via simulation: P(c < X < d)\n",
"c, d = 3.0, 4.5\n",
"prob_hat = np.mean((Xu > c) & (Xu < d))\n",
"\n",
"# Analytical for uniform: (d-c)/(b-a) if [c,d] subset of [a,b]\n",
"prob_true = (d - c) / (b_u - a_u)\n",
"\n",
"prob_hat, prob_true"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "872ca815",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAASMhJREFUeJzt3QdclfXix/EvIMMRuMW9ci/cO29pWpm3ndnQ1HLvhuOW1u2mZZlampaVDTVXrtQ0My0tywTEiXvgAlyoqIBw/q/fU/gXBQUEzvq8X69z7Tyew/k9z+9cny+/6WGz2WwCAABwEZ72LgAAAEBWItwAAACXQrgBAAAuhXADAABcCuEGAAC4FMINAABwKYQbAADgUgg3AADApRBuAACASyHcAA5o7dq18vDwsP5Mj3/961/WI7uUK1dOzz//vJzZlStX9Oqrr6p06dLy9PTUww8/bO8iyd2/t0B2IdzA7X355ZfWP8hpPf744w+3v0YZcfnyZY0fP16NGzdWQECA/Pz8VLlyZfXr10+7d++++ro33ngjxXXOkyePypQpow4dOmj69OmKi4u74WebgJVWPa1YseKm5friiy/03nvv6fHHH9dXX32lwYMHU6+Ai8pl7wIAjuK///2vypcvf8PxO++8M8fLctddd+nSpUvy8fFJ1+t//PFHOYKTJ0/qvvvuU3BwsB588EE9/fTTypcvn3bt2qXZs2fr008/VXx8fIr3TJkyxXqNCTNHjx7VypUr1a1bN02YMEFLly61Wlqu5evrq88+++yGz65Tp85Ny/bzzz+rZMmSVvAC4NoIN8A/7r//fjVo0MAhrofpNjEtHrdy8eJFq8UjvSEou5mWldDQUM2fP1+PPfZYir9766239J///OeG95iWlMKFC199PnLkSM2cOVOdO3fWE088cUPLWa5cufTss89muGxRUVHKnz9/urqvkpKSHOaaAsg4uqWAdDp48KDV/fH+++9r8uTJqlChghUs2rZtq4iICNlsNusGXqpUKeXOnVsPPfSQTp8+fcPYFdOiYVpagoKCrABTvXp1LViw4JZjF8yYmpo1a1qtIqZlx3z2iBEj0hxzY7qHTNeP6RIyn1O8eHE9+uij2rdv39XXmHNp1qyZChUqZJW5fv36VjDJjD///FPLli1T9+7dbwg2yS0u5vPS45lnntELL7xg/cxVq1YpK+ptzZo12r59+9VuLHNtr61T01JUsWJFq5w7duy42trTsmVL5c2b1wpGpk537tyZ4ucnd6+ZLjcTukxXXJEiRfT6669b3wnz3TDv8/f3V2BgoMaNG5eucpvzbtGihfW5pmWrSpUqV+vbMC1gJgiaOjOfacpoymrO017f27SYejQteqac5rNbtWql3377LcVrzp8/r0GDBlmfZeqgaNGiuvfeexUSEpKuzwCuRcsN8I+YmBirW+Va5qZgbvzXMq0K5sbSv39/6yYwduxYPfnkk7rnnnusG+bQoUO1d+9effTRR3r55ZetsR7X2rNnjzp27KhevXqpS5cu1vgS00JhxoyYf8xv5tSpU1YL01NPPWXdSIsVK5bq6xITE62b0erVq63XDhw40Lp5mBvmtm3brJu4MXHiRP373/+2woQ5J9N1ZMpiuoPat2+foe/GkiVLrD+fe+65LPlOmZ9jurHMDfX663J9PXl7e1s3ztSYoPHNN9/o7bff1oULFzRmzBjreLVq1ayuP8PUgQmDPXr0sG6sBQsW1E8//WRdaxMGTIAxrzV12rx5c+uGa27C1zJ1an7mO++8Y4W8//3vf9bP+eSTT6zvxrvvvmt9d8x3omHDhlZATYsJYab+ateubXWXmjKZ79S1geDcuXNW91ynTp304osvWvX7+eefq127dtq4caMVQhzhe2sCormOJoSNGjXKapU07zWfu27dOjVq1Mh6nfm5JlibsVkmOJnv+vr1660wWa9evTR/PpAqG+Dmpk+fbjP/V0jt4evre/V1Bw4csI4VKVLEdvbs2avHhw8fbh2vU6eOLSEh4erxTp062Xx8fGyXL1++eqxs2bLWa7/77rurx2JiYmzFixe31a1b9+qxNWvWWK8zfyZr1aqVdWzq1Kk3nIP5O/NI9sUXX1iv/eCDD254bVJS0tX/vnjxYoq/i4+Pt9WsWdN2zz33pDhuyt2lS5ebXsdHHnnE+swzZ87Y0mPUqFHW66Ojo1P9e/NzzN+bn5vMlCG1err23NNiXlOjRo0Ux5Lr1N/f3xYVFZXi74KCgmxFixa1nTp16uqxsLAwm6enp61z5843nEePHj2uHrty5YqtVKlSNg8PD9s777yT4pxy5859y2s5fvz4m16b5M+Ii4tLccz8/GLFitm6devmEN9b812rVKmSrV27djd878qXL2+79957rx4LCAiw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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cell 12 (optional) — Empirical CDF plot (works for any sample)\n",
"# For teaching: CDF is monotone and ends at 1.\n",
"x_sorted = np.sort(Xu)\n",
"F_emp = np.arange(1, N_u + 1) / N_u\n",
"\n",
"plt.figure()\n",
"plt.plot(x_sorted, F_emp, linewidth=1)\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(\"F(x)\")\n",
"plt.title(\"Empirical CDF from samples\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "26fa621b",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "1bdd8294",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "85ee308a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "737be3d6",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "aac3728f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 27,
"id": "687205ec",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(np.float64(1.09786), np.float64(0.4911234204), np.float64(0.7008019837300691))"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 4 — Monte Carlo sampling of X, empirical mean/variance\n",
"N = 50_000\n",
"X = rng.choice(values, size=N, p=probs)\n",
"\n",
"emp_mean = X.mean()\n",
"emp_var = X.var(ddof=0) # population variance estimator\n",
"emp_sd = np.sqrt(emp_var)\n",
"\n",
"emp_mean, emp_var, emp_sd"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "f225e4fc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAARYRJREFUeJzt3Ql4E+XWwPHTvRRo2SlL2RFEVkEQ8AooiogiuKGiICiK4hWBT6UuoHgVLyqiXBQ3wOUqiOKuKLIoCIqsoiiL7FAoa0sLLV3me86ryU3StLQlaZrp/+cz0kwmkzdvJpmT8y4TYlmWJQAAADYRGugCAAAA+BLBDQAAsBWCGwAAYCsENwAAwFYIbgAAgK0Q3AAAAFshuAEAALZCcAMAAGyF4AYAANgKwQ1sLSQkRB577LFAFwMlZOXKlRIZGSk7d+4s0TrXY0yPtUOHDp122wYNGsitt97qvL1kyRLzWP3XQe/X7eB/Ws9a/7rcc889xd5P27Ztnfu54oornOvnz58vFSpUkIMHD/qoxCgMghsU2axZs5wfYl3Cw8OlTp065gt579691CgC5uGHH5Ybb7xR6tevX+jHnDhxwgQnrsEFgp/rd5TnMnz4cLdt//GPf8jbb78tgwcPdq57/fXXzbZvvvlmnn2vWLFCQkND5f/+7/+c65566imzj2rVqrlte9lll0mTJk1k4sSJfnmd8C48n/XAaU2YMEEaNmwoGRkZ8uOPP5qgZ9myZfLrr79KdHR0qajBkydPmuAL9rdu3Tr59ttvZfny5UV6nAY3jz/+uPm7e/fu4m+bNm0yJ8aCvPbaa5Kbm+v3stjdJZdcIoMGDcqz/qyzznK73ahRI7n55pvd1t12220msNEARjMxVatWNeuzsrLkjjvukISEBOdxoy6//HLz7yOPPJLn+e68806zH92+YsWKPnt9yB/f+ii23r17S4cOHczft99+u/nF8u9//1s+/fRTuf7660tFzZaWIAv+N3PmTKlXr56cf/75pbq6o6KiTrtNREREiZQlmOmPKm2CLChQ1CDGM2gpLM3avPLKK6a5SQMTPb7Uc889Z37A6fdc+fLlC7Wva665Rv75z3/K3LlzZejQocUqD4qGZin4jKZ21Z9//ulcp7+Evf0a9uxTsGPHDvNl8uyzz8qrr74qjRs3NieB8847T37++ec8j9U2bG0C69evn/m7evXq5gsoJyenwD43jr4RW7duNfupVKmSxMXFyZAhQ8wveM+sz7333muCNv211bdvX/OchenH4+hH8f7775tfa9psp/u49tprJSUlRTIzM+W+++6TGjVqmPLr8+s6T++88460b99eypUrJ1WqVJEbbrhBdu/e7bbN0qVL5brrrjMndq0z/UU5atQoU/7i1psn/eWqv2696dy5szPIVQsWLJALLrjA1K0+R7NmzeShhx6S03H0efj444+lZcuW5rWcc845ps9CYejjLrroIrMfV6tWrZJevXqZ91HrUbONjhOMHndaB0rfJ0ezheP9/eWXX0y96WvXQDk+Pt489vDhw17LoH1uNLCPjY01v/RHjhxpTsIF9bnxxvPzoZ+h/JpYNGPqcOzYMXNc6TGg9afNIfqDwzMLNHv2bHNc6TGpZW3VqpW88MILBZapKJ9R9ccff5jjXY9brTs9RjQgcHXkyBFz/Onz67GiZdEfTevXr/f6edJya2ZEP08xMTGSmpoq/tSiRQu5//77TR1/9913sn37dpOxvvrqq+XKK68s9H70c966dWv55JNP/Fpe/A+ZG/iMfvmpypUrF3sf7777rhw/ftykcfXLbNKkSeaLZNu2bW6/ZvVkrCesTp06mS9bbY7QX1T6hXvXXXed9nn0BKQnOW0HX7NmjWlf1y8gPRG4nmA0OLnllltMNkC/3Pr06VOk16P71xPq2LFjTUA1depU8zr01+bRo0fNSdTRpKflGTdunPOxTz75pDz66KOmrJoZ0w6J+vgLL7xQ1q5da4IHpb8GNTDT160nVO1Uq9vt2bPH3OequPU2YMAAk97Xk5iezBy0466W/5lnnjG3f/vtNxMI6Re5ngT05Kev+4cffihUfWmz5rx58+Tuu+82J94XX3zR/OrdtWuXs1nAGw3YdJtzzz3XbX1ycrJceumlJoDR90DrTI9TfQ6l619++WXz2vv372+ONaXldwRqeuxp8KmBjb4+PbHrv/q6PQMpfa80KNH3Xe/X8uv7/NZbb8mZ9iXSY8Az8P3666/Ncav0GOjWrZupC/38aLCrTXSJiYmSlJQkU6ZMcb4m7Zd08cUXO4/333//3bxHGoz54jOq9dO1a1cThGi9a4ZDP0saVH/44YemrpU+RoNSDc71+D9w4IDJlujr2Lhxo9SuXdvtuZ944gmTrdGASH8M6N8F0cDSWydvDaJO91gHDaY0qNLXq325tJlb39ei0mBSXytKiAUU0cyZMy09dL799lvr4MGD1u7du60PPvjAql69uhUVFWVuO3Tr1s0sngYPHmzVr1/feXv79u1mn1WrVrWOHDniXP/JJ5+Y9Z999pnbY3XdhAkT3PbZrl07q3379m7rdLvx48c7b+vfum7o0KFu2/Xv3988t8Pq1avNdvfdd5/bdrfeemuefXqzePFis13Lli2tU6dOOdffeOONVkhIiNW7d2+37Tt37uxWHzt27LDCwsKsJ5980m27DRs2WOHh4W7rT5w4kef5J06caJ5n586dxao3TykpKea9HTNmjNv6SZMmuT3P888/b55Dj4ui0sdFRkZaW7duda5bv369WT916tQCH6vHoudxoj766COz/ueff873sVrW/N5Tb3X73nvvme2///77PMdV37593ba9++67zXp9HQ76Put74Xms6L/5fT48/fDDD1ZERITbcfzEE09Y5cuXtzZv3uy27dixY82xtGvXLnN75MiRVmxsrJWdnW0VRVE+oxdffLHVqlUrKyMjw7kuNzfX6tKli9W0aVPnOr0/Jycnz/PoseZ6nDrqqFGjRl7fE290+/wWfQ/zez+8+frrr52PnTJlSoHb6v769OmTZ/1TTz1lHn/gwIFClR9nhmYpFFvPnj3NL19NgWv6WX+dadq5bt26xd6nZghcMz+Opi79hefJ24gHb9t54+2x2tTgSHM7mkI0g+BK282LQrMdrhknzZjo965nu7uu1+am7Oxsc1szC9qUoJkA/eXpWDR70LRpU1m8eLHzsZoZckhPTzfbdenSxTyPZnh8UW+O5gL99f3XeeMvc+bMMVktzRIoRzZJ0+/F6RCrx5RmkRw0g6LPfbryOZqJPLOGjvJ8/vnnpiNoUbnWrSML4OjToxk/TyNGjPB6vHz55ZfiK/v37zefN+0L8tJLLznXa5ZO30utA9djRutUM3bff/+9s070ONEMjj8+o9rUtGjRInPsaobHUQ59jzRruGXLFueoSs3sOfrMaBl1G0dTprf61dFMru/J6Vx11VXmdXouPXr0KNJr1qY1Rzk1E1gcjjorzHQBOHMENyi2adOmmS+KDz74wIwU0A9tYTpLFsRxkvT8QtDUvittw3f0lXDd1nO74j6PNrfol5mmyl1pH4ai8Hwe7d+jNCD0XK/B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773nn1ICAAD4K7ipW7eurF+/XmbPni2//PKLydrcdtttMnDgQLcOxgAAAEER3JgHhYfLzTff7PvSAAAABCK40Qn7li1bJsnJyaaDsat77733TMsEAABQcsHNrFmz5M477zRDwatWrWo6FDvo3wQ3AAAgqIKbRx991FwJPDExUUJDi3X1BgAAAL8pcnRy4sQJueGGGwhsAACAPYIbHRk1d+5c/5QGAACgpJulJk6cKFdccYXMnz9fWrVqJREREW73T548+UzLBAAAULLBzddffy3NmjUztz07FAMAAATdDMUzZsyQW2+91T8lAgAAKMk+N1FRUdK1a9czeU4AAIDSE9yMHDlSpk6d6p/SAAAAlHSz1MqVK2XRokXy+eefyznnnJOnQ/G8efPOtEwAAAAlF9xUqlRJrr766uI/IwAAQGkKbmbOnOmfkgAAAPgA108AAAC2QnADAABsheAGAADYCsENAACwFYIbAABQtkdLvfjii17X63WloqOjpUmTJnLhhRdKWFiYL8oHAADg3+Dm+eefl4MHD8qJEyekcuXKZt3Ro0clJiZGKlSoIMnJydKoUSNZvHixJCQkFHX3AAAAJdss9dRTT8l5550nW7ZskcOHD5tl8+bN0qlTJ3nhhRdk165dEh8fL6NGjTqzkgEAAJRE5uaRRx6RDz/8UBo3buxcp01Rzz77rFxzzTWybds2mTRpkvkbAACg1GdukpKSJDs7O896Xbd//37zd+3ateX48eO+KSEAAIA/g5sePXrInXfeKWvXrnWu07/vuusuueiii8ztDRs2SMOGDYu6awAAgJIPbt544w2pUqWKtG/fXqKioszSoUMHs07vU9qx+Lnnnjvz0gEAAPi7z412Fl6wYIH88ccfpiOxatasmVlcszsAAABBEdw4NG/e3CwAAABBHdzk5OTIrFmzZOHChWZOm9zcXLf7Fy1a5MvyAQAA+De4GTlypAlu+vTpIy1btjQzEwMAAARtcDN79mx5//335fLLL/dZIaZNmybPPPOMGUrepk0bmTp1qnTs2DHf7adMmSIvv/yymTCwWrVqcu2118rEiRPN5R8AAEDZVuTRUpGRkWbSPl+ZM2eOjB49WsaPHy9r1qwxwU2vXr1Mk5c37777rowdO9Zs//vvv5sRWrqPhx56yGdlAgAAZSi4GTNmjLnMgmVZPinA5MmTZdiwYTJkyBBp0aKFTJ8+3VynasaMGV63X758uXTt2lVuuukmadCggVx66aVy4403ysqVK31SHgAAUMaapZYtW2YuivnVV1/JOeecIxEREW73z5s3r9D7OnXqlKxevVoSExOd60JDQ6Vnz56yYsUKr4/p0qWLvPPOOyaY0aYrvdzDl19+KbfccovX7TMzM83ikJqaWujyAQCAMhDcVKpUSfr37++TJz906JAZfVWzZk239Xpb59HxRjM2+rgLLrjAZI/0sg/Dhw/Pt1lK++I8/vjjPikvAACwYXAzc+ZMCaQlS5aYK5O/9NJL5krkW7duNSO4nnjiCXn00UfzbK9ZIe3T45q5SUhIKOFSAwCAUj+Jny/oSKewsDA5cOCA23q9rTMhe6MBjDZB3X777eZ2q1atJD09Xe644w55+OGHTbOWK8clIgAAQNlQqODm3HPPNZP2Va5cWdq1a1fg3DY64qkoI6/0GlW67379+pl1Oimg3r7nnnu8PubEiRN5AhgNkJSvOjkDAIDgVajg5qqrrnJmPxxBiK9ok9HgwYPNxTe1g7DOYaOZGB09pQYNGiR16tQxfWfUlVdeaUZYaZDlaJbSbI6udwQ5AACg7CpUcKNzynj72xcGDBggBw8elHHjxplJ/Nq2bSvz5893djLWifpcMzWPPPKIyRzpv3v37pXq1aubwObJJ5/0abkAAEBwCrGK2Zajw7i9XVuqXr16Uppph+K4uDhJSUmR2NhYn+67wdgvzL87nu7j0/0CAFDWpRbh/F3kDsWbN2+W2267zUym50pjJM2o6NBuAACAQClycKN9YcLDw+Xzzz+XWrVqceFMAAAQ3MHNunXrzKzCzZs390+JAAAASvLaUnr9J50hGAAAwBbBzb///W954IEHzEzBhw8fNh18XBcAAICgapbSi1qqiy++2G09HYoBAEBQBjd6RXAAAADbBDfdunXzT0kAAAACdeHMY8eOycqVK71O4qeXSwAAAAia4Oazzz6TgQMHSlpampkh0PUimvo3wQ0AAAiq0VJjxoyRoUOHmuBGMzhHjx51LkeOHPFPKQEAAPwV3OjFKu+9916JiYkp6kMBAABKX3DTq1cvWbVqlX9KAwAAUNJ9bvr06SP333+/bNy4UVq1aiURERFu9/ft2/dMywQAAFBywc2wYcPMvxMmTMhzH1cFBwAAQRfceA79BgAACOo+NwAAALbK3HhrjnI1bty4MykPAABAyQY3H330kdvtrKws2b59u4SHh0vjxo0JbgAAQHAFN2vXrs2zLjU1VW699Vbp37+/r8oFAAAQuD43ehmGxx9/XB599FFf7A4AACDwHYpTUlLMAgAAEFTNUi+++KLbbcuyJCkpSd5++23p3bu3L8sGAADg/+Dm+eefd7sdGhoq1atXl8GDB0tiYmLRSwAAABDI4EZHRuXn5MmTZ1oeAACAwPe5yczMlMmTJ0vDhg19sTsAAAD/BzcawGizU4cOHaRLly7y8ccfm/UzZswwQY02V40aNar4JQEAACjJZimdefiVV16Rnj17yvLly+W6666TIUOGyI8//miyNno7LCzMF2UCAADwf3Azd+5ceeutt6Rv377y66+/SuvWrSU7O1vWr19vrgYOAAAQVM1Se/bskfbt25u/W7ZsKVFRUaYZisAGAAAEZXCTk5MjkZGRztt6LakKFSr4q1wAAAD+bZbSyfr0+lGasVEZGRkyfPhwKV++vNt28+bNK15JAAAASjK40Un6XN18882+eH4AAIDABDczZ8707TMDAACU5gtnAgAAlAYENwAAwFYIbgAAgK0Q3AAAAFshuAEAALZCcAMAAGyF4AYAANgKwQ0AALCVUhHcTJs2TRo0aCDR0dHSqVMnWblyZb7bdu/e3Vys03Pp06dPiZYZAACUTgEPbubMmSOjR4+W8ePHy5o1a6RNmzbSq1cvSU5O9rq9XrsqKSnJufz6668SFhYm1113XYmXHQAAlD4BD24mT54sw4YNkyFDhkiLFi1k+vTpEhMTIzNmzPC6fZUqVSQ+Pt65LFiwwGxPcAMAAAIe3Jw6dUpWr14tPXv2dK4LDQ01t1esWFGofbzxxhtyww035Lk6uUNmZqakpqa6LQAAwL4CGtwcOnRIcnJypGbNmm7r9fb+/ftP+3jtm6PNUrfffnu+20ycOFHi4uKcS0JCgk/KDgAASqeAN0udCc3atGrVSjp27JjvNomJiZKSkuJcdu/eXaJlBAAAJStcAqhatWqmM/CBAwfc1utt7U9TkPT0dJk9e7ZMmDChwO2ioqLMAgAAyoaAZm4iIyOlffv2snDhQue63Nxcc7tz584FPnbu3LmmP83NN99cAiUFAADBIqCZG6XDwAcPHiwdOnQwzUtTpkwxWRkdPaUGDRokderUMX1nPJuk+vXrJ1WrVg1QyQEAQGkU8OBmwIABcvDgQRk3bpzpRNy2bVuZP3++s5Pxrl27zAgqV5s2bZJly5bJN998E6BSAwCA0irEsixLyhAdCq6jprRzcWxsrE/33WDsF+bfHU8zWzIAAIE6fwf1aCkAAABPBDcAAMBWCG4AAICtENwAAABbIbgBAAC2QnADAABsheAGAADYCsENAACwFYIbAABgKwQ3AADAVghuAACArRDcAAAAWyG4AQAAtkJwAwAAbIXgBgAA2ArBDQAAsBWCGwAAYCsENwAAwFYIbgAAgK0Q3AAAAFshuAEAALZCcAMAAGyF4AYAANgKwQ0AALAVghsAAGArBDcAAMBWCG4AAICtENwAAABbIbgBAAC2QnADAABsheAGAADYCsENAACwFYIbAABgKwQ3AADAVghuAACArRDcAAAAWyG4AQAAtkJwAwAAbIXgBgAA2ArBDQAAsBWCGwAAYCulIriZNm2aNGjQQKKjo6VTp06ycuXKArc/duyYjBgxQmrVqiVRUVFy1llnyZdfflli5QUAAKVXeKALMGfOHBk9erRMnz7dBDZTpkyRXr16yaZNm6RGjRp5tj916pRccskl5r4PPvhA6tSpIzt37pRKlSoFpPwAAKB0CXhwM3nyZBk2bJgMGTLE3NYg54svvpAZM2bI2LFj82yv648cOSLLly+XiIgIs06zPgAAAAFvltIszOrVq6Vnz57OdaGhoeb2ihUrvD7m008/lc6dO5tmqZo1a0rLli3lqaeekpycHK/bZ2ZmSmpqqtsCAADsK6DBzaFDh0xQokGKK729f/9+r4/Ztm2baY7Sx2k/m0cffVSee+45+de//uV1+4kTJ0pcXJxzSUhI8MtrAQAApUOp6FBcFLm5uaa/zauvvirt27eXAQMGyMMPP2yas7xJTEyUlJQU57J79+4SLzMAACgjfW6qVasmYWFhcuDAAbf1ejs+Pt7rY3SElPa10cc5nH322SbTo81ckZGRbtvraCpdAABA2RDQzI0GIpp9WbhwoVtmRm9rvxpvunbtKlu3bjXbOWzevNkEPZ6BDQAAKHsC3iylw8Bfe+01efPNN+X333+Xu+66S9LT052jpwYNGmSalhz0fh0tNXLkSBPU6Mgq7VCsHYwBAAACPhRc+8wcPHhQxo0bZ5qW2rZtK/Pnz3d2Mt61a5cZQeWgHYK//vprGTVqlLRu3drMc6OBzoMPPhjAVwEAAEqLEMuyLClDdCi4jprSzsWxsbE+3XeDsV+Yf3c83cen+wUAoKxLLcL5O+DNUgAAAL5EcAMAAGyF4AYAANgKwQ0AALAVghsAAGArBDcAAMBWCG4AAICtENwAAABbIbgBAAC2QnADAABsheAGAADYCsENAACwFYIbAABgKwQ3AADAVghuAACArRDcAAAAWyG4AQAAtkJwAwAAbIXgBgAA2ArBDQAAsBWCGwAAYCsENwAAwFYIbgAAgK0Q3AAAAFshuAEAALZCcAMAAGyF4AYAANgKwQ0AALAVghsAAGArBDcAAMBWCG4AAICtENwAAABbIbgBAAC2QnADAABsheAGAADYCsENAACwFYIbAABgKwQ3AADAVghuAACArRDcAAAAWyG4AQAAtkJwAwAAbKVUBDfTpk2TBg0aSHR0tHTq1ElWrlyZ77azZs2SkJAQt0UfBwAAUCqCmzlz5sjo0aNl/PjxsmbNGmnTpo306tVLkpOT831MbGysJCUlOZedO3eWaJkBAEDpFfDgZvLkyTJs2DAZMmSItGjRQqZPny4xMTEyY8aMfB+j2Zr4+HjnUrNmzRItMwAAKL0CGtycOnVKVq9eLT179vxfgUJDze0VK1bk+7i0tDSpX7++JCQkyFVXXSW//fZbvttmZmZKamqq2wIAAOwroMHNoUOHJCcnJ0/mRW/v37/f62OaNWtmsjqffPKJvPPOO5KbmytdunSRPXv2eN1+4sSJEhcX51w0IPKXmUPOk/fv7Oy3/QMAgCBoliqqzp07y6BBg6Rt27bSrVs3mTdvnlSvXl1eeeUVr9snJiZKSkqKc9m9e7ffytajWQ3p2LCK3/YPAABOL1wCqFq1ahIWFiYHDhxwW6+3tS9NYUREREi7du1k69atXu+PiooyCwAAKBsCmrmJjIyU9u3by8KFC53rtJlJb2uGpjC0WWvDhg1Sq1YtP5YUAAAEi4BmbpQOAx88eLB06NBBOnbsKFOmTJH09HQzekppE1SdOnVM3xk1YcIEOf/886VJkyZy7NgxeeaZZ8xQ8Ntvvz3ArwQAAJQGAQ9uBgwYIAcPHpRx48aZTsTal2b+/PnOTsa7du0yI6gcjh49aoaO67aVK1c2mZ/ly5ebYeQAAAAhlmVZZakadCi4jprSzsU6GSAAALDX+TvoRksBAAAUhOAGAADYCsENAACwFYIbAABgKwQ3AADAVghuAACArRDcAAAAWyG4AQAAtkJwAwAAbCXgl18oaY4JmXWmQwAAEBwc5+3CXFihzAU3x48fN/8mJCQEuigAAKAY53G9DENByty1pXJzc2Xfvn1SsWJFCQkJ8XlUqUHT7t27uW6VH1HPJYN6pp7thmM6uOtZwxUNbGrXru12QW1vylzmRiukbt26fn0OfTO5KKf/Uc8lg3qmnu2GYzp46/l0GRsHOhQDAABbIbgBAAC2QnDjQ1FRUTJ+/HjzL/yHei4Z1DP1bDcc02Wnnstch2IAAGBvZG4AAICtENwAAABbIbgBAAC2QnADAABsheDGR6ZNmyYNGjSQ6Oho6dSpk6xcudJXu7aF77//Xq688kozs6TODP3xxx+73a/92seNGye1atWScuXKSc+ePWXLli1u2xw5ckQGDhxoJoWqVKmS3HbbbZKWlua2zS+//CL/+Mc/zPugM2ROmjQpT1nmzp0rzZs3N9u0atVKvvzyS7GDiRMnynnnnWdm365Ro4b069dPNm3a5LZNRkaGjBgxQqpWrSoVKlSQa665Rg4cOOC2za5du6RPnz4SExNj9nP//fdLdna22zZLliyRc88914yGaNKkicyaNatMfSZefvllad26tXOSss6dO8tXX33lvJ969r2nn37afHfcd9991LOPPfbYY6ZuXRf9jgzq41lHS+HMzJ4924qMjLRmzJhh/fbbb9awYcOsSpUqWQcOHKBq//bll19aDz/8sDVv3jwdnWd99NFHbnXz9NNPW3FxcdbHH39srV+/3urbt6/VsGFD6+TJk85tLrvsMqtNmzbWjz/+aC1dutRq0qSJdeONNzrvT0lJsWrWrGkNHDjQ+vXXX6333nvPKleunPXKK684t/nhhx+ssLAwa9KkSdbGjRutRx55xIqIiLA2bNgQ9O9Vr169rJkzZ5rXvm7dOuvyyy+36tWrZ6WlpTm3GT58uJWQkGAtXLjQWrVqlXX++edbXbp0cd6fnZ1ttWzZ0urZs6e1du1a875Vq1bNSkxMdG6zbds2KyYmxho9erSpw6lTp5o6nT9/fpn5THz66afWF198YW3evNnatGmT9dBDD5njSOteUc++tXLlSqtBgwZW69atrZEjRzrXU8++MX78eOucc86xkpKSnMvBgweDup4JbnygY8eO1ogRI5y3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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cell 5 — Running mean (LLN intuition): \\bar{X}_n vs n\n",
"running_mean = np.cumsum(X) / np.arange(1, N + 1)\n",
"\n",
"plt.figure()\n",
"plt.plot(running_mean, linewidth=1)\n",
"plt.axhline(EX, linewidth=1) # theoretical mean\n",
"plt.xlabel(\"n\")\n",
"plt.ylabel(\"Running mean\")\n",
"plt.title(\"Running mean vs n (stabilizes near E[X])\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "c8ce1f25",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>n</th>\n",
" <th>mean_hat</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5</td>\n",
" <td>0.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5</td>\n",
" <td>1.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>5</td>\n",
" <td>1.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" n mean_hat\n",
"0 5 0.8\n",
"1 5 1.2\n",
"2 5 1.0\n",
"3 5 1.2\n",
"4 5 1.0"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cell 6 — How the estimator of E[X] changes with sample size\n",
"# Create many repetitions for different n, store the sample mean each time.\n",
"n_list = [5, 10, 20, 50, 100, 200, 500, 1000]\n",
"R = 500 # repetitions per n (adjust for speed)\n",
"\n",
"rows = []\n",
"for n in n_list:\n",
" # Draw an R x n matrix of samples\n",
" samples = rng.choice(values, size=(R, n), p=probs)\n",
" means = samples.mean(axis=1)\n",
" for m in means:\n",
" rows.append({\"n\": n, \"mean_hat\": m})\n",
"\n",
"df_means = pd.DataFrame(rows)\n",
"df_means.head()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "71b37ec4",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/0c/2g7zyqyd3lj21c3yr8x3168m0000gn/T/ipykernel_42855/2654198260.py:6: MatplotlibDeprecationWarning: The 'labels' parameter of boxplot() has been renamed 'tick_labels' since Matplotlib 3.9; support for the old name will be dropped in 3.11.\n",
" plt.boxplot(groups, labels=[str(n) for n in n_list], showfliers=False)\n"
]
},
{
"data": {
"image/png": "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b8cJmuz7SuxGefjwYTP9g46ErHk2Bw8elLfeektu3bplao7i06Yy53LCO/T9ioiISHKdli1bJvm8BrrVq1f3cMkAAMEm2cFNo0aNTDPRF198IfPnzzffsHXqBbtdu3ZJqVKlxNvu3LljEpi/+uorU1OjN9Tjx4/LkCFDXAY3WiukOT3ONTcaoMGztNZFgxNXbty4YXKktPkwc+bMSW4DAACfBTeab9OsWTN5/PHHJWvWrPL9999LhgwZ4uTCPP30027tPE+ePCZAOX36dJzl+neBAgVcvkZ7SGkNkXMTVLly5eTUqVOmRsm5TEp7U+kD3qXBblK1LrVr1+YtAACkruBGAxGdO+ry5csmuImf3zJr1iyz3B0aiGjNy/Lly6Vp06aOmhn9u0uXLoneJKdOnWrW0/wctX//fhP0xA9sAABA8HF7+oWwsDCXibu5cuVKUXChTUba40prgjThtFOnTnL9+nVH76nWrVvHSTjW57W31Ntvv22CGu1Z9dlnn5kEYwAAgHseofheNW/eXM6ePSt9+vQxTUtVq1aVpUuXOpKMjx496qihUZovs2zZMjMNhE73oOPbaKCjvaUAAABCbDabLZhOgyYUa+2TNq9lz57dp/vWHmbaDEevIAAAvHf/drtZCgAAIDUjuAEAAJZCcAMAACyF4AYAAFgKwQ0AALAUghsAAGApBDcAAMBSCG4AAIClENwAAABLIbgBAACWQnADAAAsheAGAABYCsENAACwFIIbAABgKQQ3AADAUghuAACApRDcAAAASyG4AQAAlkJwAwAALIXgBgAAWArBDQAAsBSCGwAAYCkENwAAwFIIbgAAgKUQ3AAAAEshuAEAAJZCcAMAACyF4AYAAFgKwQ0AALAUghsAAGApBDcAAMBSCG4AAIClENwAAABLIbgBAACWQnADAAAsheAGAABYCsENAACwFIIbAABgKQQ3AADAUghuAACApRDcAAAASyG4AQAAlkJwAwAALIXgBgAAWArBDQAAsJRUEdyMHj1aihcvLpkyZZKHHnpIfv3112S9bvr06RISEiJNmzb1ehkBAEBg8HtwM2PGDOnRo4f07dtXtm3bJlWqVJH69evLmTNnknxddHS0vPPOO/Loo4/6rKwAACD183twM2zYMGnfvr20bdtWypcvL+PGjZPQ0FD57rvvEn3N7du3pUWLFtK/f38pWbKk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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cell 7 — Boxplots of \\hat{E}[X] across sample sizes\n",
"# This visually shows variability decreasing as n increases.\n",
"groups = [df_means.loc[df_means[\"n\"] == n, \"mean_hat\"].values for n in n_list]\n",
"\n",
"plt.figure()\n",
"plt.boxplot(groups, labels=[str(n) for n in n_list], showfliers=False)\n",
"plt.axhline(EX, linewidth=1) # theoretical mean\n",
"plt.xlabel(\"Sample size n\")\n",
"plt.ylabel(\"Sample mean (estimator of E[X])\")\n",
"plt.title(\"Distribution of the sample mean vs sample size\")\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv (3.14.2)",
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}