diff --git a/blogposts/cut_material.ipynb b/blogposts/cut_material.ipynb new file mode 100644 index 00000000..963ec3eb --- /dev/null +++ b/blogposts/cut_material.ipynb @@ -0,0 +1,604 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "92f808ae-02b1-4bd6-90dd-8102fc2723f4", + "metadata": { + "tags": [] + }, + "source": [ + "# CUT MATERIAL" + ] + }, + { + "cell_type": "markdown", + "id": "dac337c7-53e9-4349-8595-cb507487fc23", + "metadata": { + "tags": [] + }, + "source": [ + "### Notebook setup" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "a71509e5-eb93-4250-82e0-7ee7840158c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Figures setup\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "plt.clf() # needed otherwise `sns.set_theme` doesn't work\n", + "sns.set_theme(\n", + " style=\"whitegrid\",\n", + " rc={'figure.figsize': (6.25, 2.0)},\n", + ")\n", + "# High-resolution figures please\n", + "%config InlineBackend.figure_format = 'retina'\n", + "\n", + "def savefig(fig, filename):\n", + " fig.tight_layout()\n", + " fig.savefig(filename, dpi=300, bbox_inches=\"tight\", pad_inches=0)" + ] + }, + { + "cell_type": "markdown", + "id": "7a418434-46f0-4b33-a0a4-64630669f259", + "metadata": {}, + "source": [ + "#### Pandas equivalent" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "42fd08de-c1ad-4712-9114-1ebbadabb441", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "75.0" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "grades = [80, 90, 70, 60]\n", + "gseries = pd.Series(grades)\n", + "gseries.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d0a39b8-0714-43c6-b222-ec7772d5511e", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "b4747352-7fe2-49bf-b77c-87deb251c8d8", + "metadata": {}, + "source": [ + "$N \\sim \\mathcal{N}(\\mu,\\sigma)$ has the probability density function:\n", + "\n", + "$$\n", + " f_N(x) = \\tfrac{1}{\\sigma\\sqrt{2\\pi}} e^{ -\\frac{1}{2} \\left( \\frac{x-\\mu}{\\sigma} \\right)^2 },\n", + "$$\n", + "\n", + "where $\\mu$ is the mean and $\\sigma$ is the standard deviation.\n", + "We use the notation $\\mathcal{N}(\\mu, \\sigma)$ to describe the distribution as math,\n", + "and `norm(mu,sigma)` to describe as computer model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "450085fb-38a5-46c8-b211-a59112be5df1", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "243cc02d-a990-4901-957b-92ab13ce1ba9", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "def fN(x, mu=0, sigma=1):\n", + " const = 1 / (sigma*np.sqrt(2*np.pi))\n", + " exp = np.exp( -1/2 * ( (x-mu)/sigma )**2 )\n", + " return const * exp" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e2396cf3-13a3-403e-a69c-4a9c0ff1fa1b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.12579440923099774" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fN(3, 2, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c092803-18d8-4492-aac5-d56d0f421b8c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "da46076a-26aa-483b-871c-480ca39723de", + "metadata": {}, + "outputs": [], + "source": [ + "def mean(sample):\n", + " total = 0\n", + " for xi in sample:\n", + " total = total + xi\n", + " avg = total / len(sample)\n", + " return avg" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc011d84-50da-44e2-b03b-b3f49134955d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f9322b6c-fa42-40e1-b108-1fa628b4d3b6", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33b2a6b1-8577-46ba-a9cb-fc8e3291a3f1", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "3eec87b9-837b-4096-85b7-288780e65109", + "metadata": {}, + "source": [ + "### Problem NN (numerical math considerations)\n", + "\n", + "We'll use the Python library NumPy (module `numpy` imported as `np`) \n", + "to help us with the fancy math operations.\n", + "To compute $e^x$ we can call `np.exp(x)`,\n", + "and to compute the factorial of `n` we can call `np.math.factorial(n)`." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4872022e-13da-4a3a-bf77-ed919fe4adbe", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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d8sttxht1q5dazxe9X4b6uch/2rQaMnJycb2kSNHNHTo0DrbHjlyRFLlELhevXqZnht889FHH+mzzz5TYWGhfvzjH9d766zTp08b23Wtc4DQkpKSYmxXnYN1qb4/NTXVtJzgn3/84x/at2+fCgsLNXnyZK8Pi5fjHDWX2+3WvHnztH79euOx2bNn64EHHqj3eVwrQ0dj+5BrZfCtXbtW77//vr788kutXLnS6y/Pl6s+RD8uLk4S52EoaGofch5aX6ifhxRG0GgDBgyQ3W6Xy+VSdna2pk2bVmu7iooK7dmzR1Llwkn1vRGieW3ZskVr1qyRJA0ePFi33XZbnW137txpbH/72982OzUEQM+ePZWYmKizZ88qOzu73rZV++Pj4ymMhJDdu3frueeekyR16tSp3sLIjh07jO3rrrvO7NTCzpNPPml8oY6IiNDjjz9uLHhbH66VoaOxfci1Mvhyc3P19ttvS6p8jUeOHFln25ycHGO7akoF52HwNbUPOQ+D6/vf/36Di60WFhbq8ccflyRdf/31mj59uqRvRgCF+nnIVBo0Wps2bZSeni5J2rp1a523h9y4caMxDG7UqFHNlh8aVtV/krR69eo62xUVFekvf/mLJCkmJkbf+c53TM8NTRcREWFcxA4cOKB//vOftbb7xz/+YdwSb+TIkQEZTo7AqH6OvvHGG8bq/Je7ePGiXn75ZUmVf10ZO3Zss+QXLt566y3jPTAiIkJLly716Qu1xLUyVDSlD7lWBt9NN91kbK9atarOdg6Hw/jybLfb9e///u+SOA9DQVP7kPMwuPr27atbb7213v+GDRtmtO/SpYvxeNVIkVA/D/n0iyaZMWOGpMpbLs2dO1clJSVe+/Py8rR48WJJlUPhJk2a1Nwpoh633nqrOnfuLEnavn278cWqunPnzmnWrFnGIkj33HOPX/csR3B9//vfN+baPvzww/rqq6+89p8+fVqPPPKIpMoFz37wgx80e46o24ABA9S3b19JlcNKly5dKo/H49WmvLxcP//5z/X5559LksaOHes1XBVNc/bsWeM6JlWeR+PHj/crBtfK4GpqH3KtDL709HT16dNHkrRr1y798Y9/rNGmpKREDz74oPGFavLkyerUqZOxn/MwuJrah5yHV4ZQPg9tnss/YQF++slPfmIMjevatasyMjKUlJSkgwcPKjMzU6WlpZKkhQsXasqUKcFMFbX48MMPdf/99xt/iR42bJhGjhyp1q1b68iRI1qzZo3xZXro0KH64x//2Gz3E0fdsrOzjSGKs2bN0oMPPlhn22XLlhkfIBISEjR16lT17NlTx44d06pVq1RYWChJuu+++/TTn/7U/OQhyfc+/PTTTzVt2jRduHBBktS/f3+NGzdO7du31/Hjx/Xmm2/q+PHjkirXlfnzn/+s+Pj4ZvkdwsEzzzyjl156SVLlX8Dmz5/v0/OuvfZarwXjuFYGTyD6kGtl8F3+Xjh8+HB95zvfqbUPrr32Wq1atUoxMTFeMTgPg6upfch5GNry8/ONBVgnTJigX//617W2C9XzkMIImuzChQuaNWuW133Gq7PZbJo1a5ZmzZrVzJnBV3//+9/12GOPqaysrM42I0aM0G9+8xtjESwElz+FkYqKCs2fP9+4zVptJk2apF/+8pdMo2lG/vTh7t27NWfOHKOIVZuBAwfqt7/9rTp27BjwXMPZ8OHDa4y08sXSpUt15513Gj9zrQyeQPUh18rg8+W98KabbtJ///d/17ouAedh8DW1DzkPQ5evhZFQPQ9ZfBVNFhMToxUrVmj9+vVat26dDh06pPPnzys+Pl6DBg3S9OnTNWjQoGCniXqMGjVKgwYN0p///Gd99NFH+uKLL+RyuZSYmKjrrrtOEyZMMOZ4wnoiIyP161//WqNGjdLq1au1f/9+ORwOtWrVStddd50yMjL0H//xH8FOE/UYOnSoNm/erNWrV2vr1q06evSoLly4oPbt2+vaa6/VHXfcoTFjxshmswU71StKUVFRo75Q14ZrZXAEsg+5Vgbf0KFD9fe//11//vOftXXrVh07dkwXL15UQkKCBgwY0GAfcB4GX1P7kPPQ+kL1PGTECAAAAAAACFuMmQYAAAAAAGGLwggAAAAAAAhbFEYAAAAAAEDYojACAAAAAADCFoURAAAAAAAQtiiMAAAAAACAsEVhBAAAAAAAhC0KIwAAAAAAIGxRGAEAAAAAAGGLwggAAAAAAAhbFEYAAAAAAEDYojACAAAAAADCFoURAAAAAAAQtiiMAAAAAACAsEVhBAAAAAAAhC0KIwAAAAAAIGxRGAEAAAAAAGGLwggAAAAAAAhbFEYAAAAAAEDYojACAAAAAADCFoURAAAAAAAQtiiMAAAAAACAsEVhBAAAAAAAhC0KIwAAAAAAIGz9PxHefjMmD0zeAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 204, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "def fH(h):\n", + " lam = 20\n", + " return lam**h * np.exp(-lam) / np.math.factorial(h)\n", + "\n", + "# calculation is not stable for h > 14\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "hs = np.arange(0,40)\n", + "fHs = [fH(h) for h in hs]\n", + "plt.stem(fHs)" + ] + }, + { + "cell_type": "markdown", + "id": "3e0ad2c7-8931-467b-9614-f7e41f40960e", + "metadata": {}, + "source": [ + "We can apply the log-trick to the formula for ..." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "f523a8f2-d332-4d49-969f-036c16208a62", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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oFdffVXbtm1TSUmJ4uPjlZqaqltvvVW33XaboqIaf4LmcDi0cuVKvfvuuzp8+LDKy8uVmJioQYMGafLkycrKymp2PQEAMJNn29S8/GPNjsW2qWgOi8WizLTqBVknP7LB59wLc29USlLbINUMAIDaTE2MOBwOzZgxQx9//LHP748ePaqjR49q7dq1mjlzpu69994mv8eqVav06KOPyum8uHJ+WVmZysrKtGPHDq1evVrLli1TQkJCvTG+/PJLPfDAAzpy5IjP74uLi7Vu3TqtX79eP//5zzVz5swm1xMAgJYwKru3IYkRtk2FWeJiGLAMAAgtpl6ZFixY4E2KpKamasKECUpKStIXX3yhlStXqqKiQk899ZS6du2qsWPHBhx/48aNWrhwodxut2JjYzVx4kRlZGSotLRUb731lgoKCrRz507Nnj1bL730kqzW2kuqfPvtt7r77rtVVlYmSbr22mt18803KyEhQbt27dKqVat0/vx5vfDCC0pOTtbEiROb9TcBAMBMnm1TjxSfaXIMtk0FAACRxLTESF5ent555x1J0tChQ/WHP/xBbdq0kSTdcsstGjdunO68807Z7XYtXrxYN954o9q1a+d3/MrKSi1atEhut1txcXF64403dOWVV3rP5+TkaPbs2Xr//feVl5en9evX65ZbbqkV59FHH/UmRf7zP//TZ/TK6NGj9dOf/lSTJ0+W0+nU008/rdtvv13R0dFN+psAAGA2z7ap85ZtatIuNWybCgAAIo1pu9K88sorkqTLLrtMjz/+uDcp4pGamqqFCxdKkux2u1atWhVQ/Pfee09FRUWSpHvuuccnKSJJ0dHRWrp0qXcKzYsvvlgrxvbt27Vx40ZJ0u23317nlJ4f/ehH3lEidrtdW7ZsCaieAAC0NLZNBQAA8J8piRG73a7NmzdLkq6//nr16NGjznKjRo1SYmL1UN0NGzbUWaY+69evl1T9ZCwnJ6fOMm3bttXtt98uqXqB1sOHD/uc94xoadOmjWbNmlXve40bN04TJ07Ufffd560vAAChjG1TAQAA/GPKVJqdO3fK5XJJqp5GUx+r1arBgwdrw4YN+vzzz3Xq1Cl16NDBr/fYsWOHJKlfv37q1KlTveWGDh3qHb3y6aefqk+fi4vJ/f3vf5ckXXfdderSpf4bwf79++vRRx/1q14AAIQKtk0FAABonCmJ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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 201, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "from scipy.special import gammaln\n", + "\n", + "def fHalt(h):\n", + " lam = 20\n", + " return np.exp(h * np.log(lam) - lam - gammaln(h + 1))\n", + "\n", + "fHalts = [fHalt(h) for h in hs]\n", + "plt.stem(fHalts)" + ] + }, + { + "cell_type": "markdown", + "id": "b2e807f3-8a33-4fd8-8115-4211ffa47a2d", + "metadata": {}, + "source": [ + "The log-transform trick and `gammaln` function are really useful for dealing with large factorials and multiplications of small probabilities,\n", + "which occur a lot in statistical calculations.\n", + "The need for numerical stability is one thing you need to keep in mind when\n", + "you implement statistical algorithms in production." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20928f80-2bdf-40cb-a864-b2b719df58fd", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7aa0fd9e-1df3-4170-8e27-f8c2dfb47fb5", + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.stats import norm\n", + "rvZ = norm(0,1)" + ] + }, + { + "cell_type": "markdown", + "id": "52e55d96-3159-4c73-911b-bcbdd75e77c7", + "metadata": {}, + "source": [ + "The cumulative distribution function (CDF) $F_Z$ is defined as the integral \n", + "of the probability density function $f_Z$ up to some value $z=b$.\n", + "\n", + "$$\n", + " \\textrm{Pr}(\\{Z \\leq b\\}) = F_Z(b) = \\int_{z=-\\infty}^{z=b} f_Z(z)\\; dz.\n", + "$$\n", + "\n", + "The computer model `rvZ` provides the method `.cdf` which allows us to obtain the values of $F_Z$ directly." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "5609fb2f-5772-45d4-8615-ef7e3768d4b9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.9772498680518208" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rvZ.cdf(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "ab3a570d-64ee-451a-8889-660a7f6e0da4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IWo8DHLy5MmmxS7QFCEYDkjjYZC33nor3etj2FlnnWV6fOutt2rcuHGaO3euysrK9OCDD+rNN9+0pji0i3feeUdTpkwJP54wYYLGjBljYUUAWtI4nPb7/fsMwnw+X3ibD7qA6DN79myNHz9ewWBQknTTTTfpsssus7gqRMKoUaM0atSo8OObb75ZkydP1ocffqja2lrde++9+vLLL+VwOCysEoei8TDIiy66SOeee67FFXV8hGAx5IgjjtCtt956UOd26dLFNAxy0KBBuvvuu9u4QkTCod731kpMTNSzzz6rX/ziF6qoqNDixYu1ZcsWDR48+KCeG4cukvf+hRde0L///e/w4zvvvFM333zzQT0X2k57/byj80lJSQlve73eVodg+xs6CaBzmTFjhiZPnhzu5XnFFVcwdCqG2O12TZo0SatXr9bmzZu1detWLVq0iPmjOrE9wyD39PrD/hGCxZDBgwfrr3/960Gf/9577ykrK0t2u11TpkzhjXEncaj3/UCkpqbqkksu0VtvvSVJWrlyJSGYhSJx74PBoCZNmqQZM2aE2+666y5C8Q6iPX/e0bl07do1vO10OvcZejaeDJ+Vw4DosfcHWFdddZUef/xx2Ww2C6tCe3M4HLr66qvDixqtXLmSEKyTajwMcs+wV+wfIRhabdasWZIaVoK7/vrr93v8Cy+8oBdeeEGS9OSTT+rKK6+MaH3oGAYNGhTerqystLAStDWv1xse8ipJNptNf/3rX3XLLbdYXBmA/Rk4cGB4u6SkRAMGDGjx2MYTKTO3I9D5hUKh8BC4PW666SY98MADBGAxqvH79carB6Nz2fP3uSSNHz9e48eP3+fxn376aTg0i+UPsQnBAOzX1KlTtWLFClVWVmr69On7fMPk9XrD26mpqe1RHtqBx+PR7bffrqVLl0qS4uLi9NhjjxFuA51E4165eXl5+5y/Ly8vT1JD0D106NCI1wYgckKhkCZMmKCZM2eG28aNG6c777zTwqoQCZ9++qnmzp2rgoICvf3226YewHvj/TpiGSEYWm3cuHGmIRLNyc3N1fPPPy+pYWK+iy++WJJ07LHHRro8RNDq1av13XffSZI2bNig4447rsVj165dG94+6qijIl4bIi8YDGrcuHHhACwxMVH/+Mc/dM4551hcGYDWOumkkxQfHy+/36+srCzdeOONzR4XDAa1fPlySdLw4cP3+UcUgI5v8uTJ4QDMbrfr4YcfbtWIDnQ+ubm5+vbbbyVJS5Ys0fnnn9/isbxfjw6/+c1v9jsRfmVlpR5++GFJ0qmnnqqbbrpJkrk3YKwhBEOrnXLKKfs9pvEcI0cddRSrU0SJM888M/yi+v7775tWBGxsx44d4ePS09M1evTodqsRkfOf//xH8+bNk9SwwtxLL72kn/zkJ9YWBeCAdO3aVWPHjtXChQs1Z84cFRcXNzvU8auvvgoPjbnwwgvbu0wAbei///1veAik3W7Xk08+qcsvv9zaohAxZ555pqZOnSqp4f16SyGY0+kMz+0aHx/PfGCd2IgRIzRixIh9HlNYWBje7tevH3+fS7JbXQCAju+iiy5Sr169JDV0tf7666+bHFNWVqY//OEP8vv9kqTbbrttn6uPoXPYvHmzXn75ZUkNQ6P+/ve/E4ABndSeFVz9fr/Gjx+vuro60/78/PzwRMmpqam65ppr2rtEAG2koqIi/PMsSX/9618JwKLc2LFjNXz4cEnS0qVL9cYbbzQ5pq6uTnfffXf4w45rr71Wffr0adc6AavREwzAfqWmpurxxx/XnXfeqWAwqPHjx+vbb7/Vz372MyUkJGjDhg2aMWOGamtrJUk//elPmSw9SrzyyivhZdSPPfZYORyO8NDYfTn55JNZoQboYM444wydf/75+vbbb7Vq1Spddtlluv7663XYYYdp48aNmj59ulwulyRpwoQJ/AwDndjbb78dDrr79eunww8/vFWv38ceeywLYnRSdrtdU6ZM0Y033qj6+nr9/e9/1+LFi/WLX/xCXbp0UV5enmbMmKHy8nJJDff6L3/5i8VVA+2PEAxAq5x11ll67rnndP/998vtdmvWrFmmFUn2uPzyy/Xoo4/KbqejaWfncrk0e/bs8OMNGzboD3/4Q6vOfeedd3TqqadGqjQAB+mpp56Sy+XSokWLVFhYqKefftq032az6a677tJ1111nUYUA2sKeFeAkqbi4uNWv36zo3rmNGDFCr776qu655x5VVlZq0aJFWrRoUZPjzjzzTD333HNKTk62oErAWoRgAFrtggsu0EknnaRp06Zp/vz5KiwsVDAYVK9evTR69Ghde+21Ovnkk60uE21k69at4eGtAKJDcnKyXn/9dc2cOVOfffaZcnJyVFtbq/T0dI0aNUo33XSTRo0aZXWZAA5BVVVVuLcPYs+YMWP0zTff6L333tOcOXO0bds2eb1e9ejRQyeddJKuuOIK5gFDTLMZhmFYXQQAAAAAAAAQSYxXAgAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNQjBAMAAAAAAEDUIwQDAAAAAABA1CMEAwAAAAAAQNT7//cZHpmgewlOAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 184, + "width": 608 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# FIGURES ONLY\n", + "zs = np.linspace(-4, 4, 1000)\n", + "fZs = rvZ.pdf(zs)\n", + "ax = sns.lineplot(x=zs, y=fZs)\n", + "mask = (zs < 2)\n", + "ax.fill_between(zs[mask], y1=fZs[mask], alpha=0.6, facecolor=\"red\")\n", + "savefig(ax.figure, \"figures/pdf_of_rvZ_highlight_-infty_to_2.png\")" + ] + }, + { + "cell_type": "markdown", + "id": "e5f60d2d-429c-468c-9f5f-97cb652dbd97", + "metadata": {}, + "source": [ + "We're often interested in computing the complement,\n", + "\n", + "$$\n", + " \\textrm{Pr}(\\{Z \\geq b\\}) = 1- F_Z(b) = \\int_{z=b}^{z=\\infty} f_Z(z) \\; dz.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "73937fba-d67e-464a-8206-b4164990c09a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.02275013194817921" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "1 - rvZ.cdf(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "573ca0b9-ce5a-4aaa-bfd2-167f4bfc7244", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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8VMOJ6zqMMiOHTvqjjvuMLslmGDv3r3Vavv379dXX32lAwcOmNARzPLPf/5TK1eulFR5B0lth18AqD9VH1Zx5FMhj1T1Tk4ecgH4r48++kjffPONJCksLEy33XabyR2hrlWd/+uwvLw8fffddzwEwc8cHgZ5OOTE0XEnWAD5+eefTzqw+umnn9SyZUtJvw+DtNlsmjp1KsOeGri6Ou9HatOmjR599FFFRUVp165d+uyzz5Senq7//e9/WrBggT766CMlJSWdSus4Rb4691W99957eu211yRJNptNzzzzDMNtTFQf5xyNU0VFhXf5eL+3q66vuh8A//Hjjz/qscce834+ZcoUNW3a1MSO4AuxsbGaNGmS4uLitG/fPn355Zf69ddf9cMPP2jRokV655131K1bN7PbxCmqOgxyypQphoddoDpCMJyQqsMgb775Zm6vD2Bnnnmm4fObb75ZEyZM0M8//6ysrCw99NBDeuutt8xpDvXi3Xff1dSpU72f33fffRowYICJHQE4mqrhtNPpPGYQVl5e7l3mjS7A//zwww+aOHGiXC6XJGns2LG69NJLTe4KvtC3b1/17dvX+/lNN92kKVOm6OOPP1ZBQYHuvfdeff3117LZbCZ2iVNRdRjkhRdeqHPOOcfkjho+QrAA0qpVK918880ntW9kZKRhGGTbtm11991313GH8IVTPe+1FRwcrOeee07nnXeesrOztXDhQm3btk0pKSkn9do4db489y+++KL+85//eD+/6667dNNNN53Ua6Hu1Nf3OxqfsLAw73JZWVmtQ7DjDZ0E0LjMmDFDU6ZM8d7lefnllzN0KoBYrVZNnjxZq1ev1ubNm7V9+3bNnz+f+aMascPDIA/f9YfjIwQLICkpKfrb3/520vt/8MEHWrJkiaxWq6ZOncqFcSNxquf9RISHh+uiiy7S22+/LUlauXIlIZiJfHHuXS6XJk+erBkzZnhr48ePJxRvIOrz+x2NS1RUlHc5Ly/vmKFn1cnweXIY4D+OfAPryiuv1BNPPCGLxWJiV6hvNptNV111lfehRitXriQEa6SqDoM8POwVx0cIhlqbNWuWpMonwV177bXH3f7FF1/Uiy++KEl66qmndMUVV/i0PzQMbdu29S7n5OSY2AnqWllZmXfIqyRZLBb97W9/07hx40zuDMDxtGnTxru8d+9eJScnH3XbqhMpM7cj0Pi53W7vELjDxo4dqwcffJAALEBVvV6v+vRgNC6H/z6XpIkTJ2rixInH3P7zzz/3hmaB/CY2IRiA45o2bZpWrFihnJwcTZ8+/ZgXTGVlZd7l8PDw+mgP9aC0tFS33367Fi9eLEmy2+16/PHHCbeBRqLqXblbtmw55vx9W7ZskVQZdHfo0MHnvQHwHbfbrfvuu08zZ8701iZMmKC77rrLxK7gC59//rl+/vlnpaen65133jHcAXwkrtcRyAjBUGsTJkwwDJGoSVpaml544QVJlRPzjRw5UpLUtWtXX7cHH1q9erV+/PFHSdKGDRvUvXv3o267du1a73K7du183ht8z+VyacKECd4ALDg4WP/85z81fPhwkzsDUFu9e/eWw+GQ0+nUkiVLNGbMmBq3c7lcWrZsmSSpc+fOx/wjCkDDN2XKFG8AZrVa9cgjj9RqRAcan7S0NH3//feSpEWLFun8888/6rZcr/uHG2644bgT4efk5OiRRx6RJA0cOFBjx46VZLwbMNAQgqHW+vXrd9xtqs4x0q5dO55O4SeGDRvm/aX64YcfGp4IWNWuXbu828XExKh///711iN857///a/mzJkjqfIJcy+//LIGDx5sblMATkhUVJRSU1M1b948zZ49W3v27KlxqOM333zjHRozYsSI+m4TQB363//+5x0CabVa9dRTT+myyy4ztyn4zLBhwzRt2jRJldfrRwvB8vLyvHO7OhwO5gNrxLp166Zu3bodc5uMjAzvclJSEn+fS7Ka3QCAhu/CCy9UQkKCpMpbrb/99ttq22RlZemPf/yjnE6nJOm222475tPH0Dhs3rxZr7zyiqTKoVH/+Mc/CMCARurwE1ydTqcmTpyowsJCw/qtW7d6J0oODw/XqFGj6rtFAHUkOzvb+/0sSX/7298IwPxcamqqOnfuLElavHix3nzzzWrbFBYW6u677/a+2XH11VeradOm9donYDbuBANwXOHh4XriiSd01113yeVyaeLEifr+++91xhlnKCgoSBs2bNCMGTNUUFAgSTr99NOZLN1PvPrqq97HqHft2lU2m807NPZY+vTpwxNqgAZm6NChOv/88/X9999r1apVuvTSS3XttdeqefPm2rhxo6ZPn66ioiJJ0n333cf3MNCIvfPOO96gOykpSS1btqzV7++uXbvyQIxGymq1aurUqRozZoxKSkr0j3/8QwsXLtR5552nyMhIbdmyRTNmzNCBAwckVZ7rv/71ryZ3DdQ/QjAAtXLmmWfq+eef1wMPPKDi4mLNmjXL8ESSwy677DI99thjslq50bSxKyoq0g8//OD9fMOGDfrjH/9Yq33fffddDRw40FetAThJTz/9tIqKijR//nxlZGTomWeeMay3WCwaP368Ro8ebVKHAOrC4SfASdKePXtq/fubJ7o3bt26ddNrr72me+65Rzk5OZo/f77mz59fbbthw4bp+eefV2hoqAldAuYiBANQaxdccIF69+6t9957T7/88osyMjLkcrmUkJCg/v376+qrr1afPn3MbhN1ZPv27d7hrQD8Q2hoqN544w3NnDlTX3zxhTZt2qSCggLFxMSob9++Gjt2rPr27Wt2mwBOQW5urvduHwSeAQMG6LvvvtMHH3yg2bNna8eOHSorK1N8fLx69+6tyy+/nHnAENAsHo/HY3YTAAAAAAAAgC8xXgkAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+jxAMAAAAAAAAfo8QDAAAAAAAAH6PEAwAAAAAAAB+7/8BvdmAOEkrkhsAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 184, + "width": 608 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# FIGURES ONLY\n", + "zs = np.linspace(-4, 4, 1000)\n", + "fZs = rvZ.pdf(zs)\n", + "ax = sns.lineplot(x=zs, y=fZs)\n", + "mask = (zs > 2)\n", + "ax.fill_between(zs[mask], y1=fZs[mask], alpha=0.6, facecolor=\"red\")\n", + "savefig(ax.figure, \"figures/pdf_of_rvZ_highlight_2_to_infty.png\")" + ] + }, + { + "cell_type": "markdown", + "id": "488f92c0-3a39-4e33-aff3-3caad90d6ba3", + "metadata": {}, + "source": [ + "In statistics,\n", + "we often have to compute the probability in one or both tails of the distribution,\n", + "which corresponds the probability of observing \"extreme values\"\n", + "\n", + "$\\textrm{Pr}(\\{Z \\geq 2\\}) = \\int_{z=2}^{z=\\infty} f_Z(z) dz$" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "9c33ed03-9a98-4fec-8767-de730b91ea72", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.02275013194817598" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from scipy.integrate import quad\n", + "quad(rvZ.pdf, 2, np.inf)[0]" + ] + }, + { + "cell_type": "markdown", + "id": "54ba7416-3937-4510-b8f9-f9b84f53842f", + "metadata": {}, + "source": [ + "The cumulative distribution function (CDF) $F_Z$ is defined as the integral \n", + "of the probability density function $f_Z$ up to some value $z=b$.\n", + "\n", + "$$\n", + " F_Z(b) = \\textrm{Pr}(\\{Z \\leq b\\}) = \\int_{z=-\\infty}^{z=b} f_Z(z)\\; dz.\n", + "$$\n", + "\n", + "The computer model `rvZ` provides the method `.cdf` which allows us to obtain the values of $F_Z$ directly.\n", + "For example, $F_Z(-2) = \\textrm{Pr}(\\{Z \\leq -2\\})$ can be computed as follows." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "92cf77ae-1f0e-42ad-a1d6-b360ca431fcb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.022750131948179195" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rvZ.cdf(-2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0fc48598-a48c-4836-837c-6192de63df52", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "157f99fa-f54e-437c-9d0f-6abe30e23bd4", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ec0bada-61f4-4ebb-a808-0a2799daed97", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a0be774a-8f3b-4e9a-9323-399e62d6c726", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/blogposts/python_for_stats.ipynb b/blogposts/python_for_stats.ipynb index 97476259..5a562e08 100644 --- a/blogposts/python_for_stats.ipynb +++ b/blogposts/python_for_stats.ipynb @@ -29,12 +29,47 @@ "cell_type": "markdown", "id": "ff950e24-931e-454c-8c45-45eb6823aa7d", "metadata": { + "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "### Notebook setup" ] }, + { + "cell_type": "code", + "execution_count": 1, + "id": "db0ba656-cf8d-47fb-a889-52f03722f26d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Figures setup\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "plt.clf() # needed otherwise `sns.set_theme` doesn't work\n", + "sns.set_theme(\n", + " style=\"whitegrid\",\n", + " rc={'figure.figsize': (6.25, 2.0)},\n", + ")\n", + "# High-resolution figures please\n", + "%config InlineBackend.figure_format = 'retina'\n", + "\n", + "def savefig(fig, filename):\n", + " fig.tight_layout()\n", + " fig.savefig(filename, dpi=300, bbox_inches=\"tight\", pad_inches=0)" + ] + }, { "cell_type": "markdown", "id": "3f689330-7def-4935-be79-520d1c0190b6", @@ -48,12 +83,12 @@ "id": "7bf445c3-2d7c-48ac-90be-84417d51f685", "metadata": {}, "source": [ - "### Python as a calculator" + "### Using Python as a calculator" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "6ff440f2-f2c4-4821-8af0-1bec72c2b608", "metadata": {}, "outputs": [ @@ -63,7 +98,7 @@ "5.5" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -74,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "a5d156a0-ac2f-4271-95e6-1f22f499b535", "metadata": {}, "outputs": [], @@ -84,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "1d87588a-e92e-4225-9ace-dbe533c4f4f6", "metadata": {}, "outputs": [], @@ -94,7 +129,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "a7eaa89b-cf12-477c-94b6-30641373ea55", "metadata": {}, "outputs": [ @@ -104,7 +139,7 @@ "5.5" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -131,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "305c829d-680e-4652-8399-2f55b40bee57", "metadata": {}, "outputs": [ @@ -141,7 +176,7 @@ "2.75" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -171,12 +206,12 @@ "id": "a63a1efe-8635-45a9-8beb-9c9d05fad193", "metadata": {}, "source": [ - "### Powerful primitives and built-ins" + "### Powerful primitives and builtin functions" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "57b9fab6-d2bd-4ebf-a191-eb83f81d6a0b", "metadata": {}, "outputs": [ @@ -186,7 +221,7 @@ "75.0" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -215,7 +250,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "e097b267-e125-4f0f-bb06-5e6ef837fb48", "metadata": {}, "outputs": [ @@ -225,7 +260,7 @@ "75.0" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -290,7 +325,7 @@ "id": "f5142273-ad49-459a-8b55-32ffccee1db1", "metadata": {}, "source": [ - "#### Example\n", + "#### Example 1: sample mean\n", "\n", "We want to define a Python function `mean` that computes the mean from a given sample (a list of values).\n", "\n", @@ -302,7 +337,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "ab6e7d58-79f9-4afd-9f85-b814b45eb1bb", "metadata": {}, "outputs": [], @@ -323,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "ab56d567-0758-4b70-9b97-fb2cd1283deb", "metadata": {}, "outputs": [ @@ -333,7 +368,7 @@ "75.0" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -356,7 +391,7 @@ "id": "795538a1-fa68-43c8-b8ce-461d67d57842", "metadata": {}, "source": [ - "#### Math function example (bonus topic)\n", + "#### Exmample 2: math function (bonus topic)\n", "\n", "In math, \n", "a function is a mapping from input values (usually denoted x) to output values (usually denoted y).\n", @@ -371,7 +406,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "00fd3024-4329-4899-af02-2023a5e722f1", "metadata": {}, "outputs": [], @@ -392,7 +427,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "88d9656c-913f-4617-999b-d98460ec070d", "metadata": {}, "outputs": [ @@ -402,7 +437,7 @@ "11" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -413,7 +448,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "2d8c7281-2d21-4f92-8951-4ef76cd99144", "metadata": {}, "outputs": [], @@ -429,6 +464,14 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c4a84ba-e05d-4714-a525-8a2640147321", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "id": "2483aa87-3da4-4b21-9f1c-be9899ba851f", @@ -447,133 +490,142 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "a70a4bc4-50a7-4b50-8706-b2295bf57eb4", "metadata": {}, "outputs": [], "source": [ - "pricesW = [11.8, 10, 11, 8.6, 8.3, 9.4, 8, 6.8, 8.5]" + "prices = [11.8, 10, 11, 8.6, 8.3, 9.4, 8, 6.8, 8.5]" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "5891ee22-6a6c-416d-a1bb-b283bb6a6519", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 14, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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woULo6qqqtSjlD1rPTCs88CwzgPDOg+M/l7nPp8ICQB8tJTtkQYAoH+JBgAgRTQAACmiAQBIKbtomDx5clRUVHS7zJ8/v9SjlZXt27fHFVdcEVOmTInq6uqYOnVqfPOb34zOzs5Sj1Z2WlpaYsGCBTFp0qSorq6Oo48+OlatWlXqsQa9Bx98ME4//fSor6+PioqKuPvuu7t8vSiK+MY3vhH19fVRXV0dxx9/fDzzzDOlGXYQ+6B1Xrp0aZxyyimx//77R0VFRTz11FMlmXOw29U6t7e3xyWXXBKHHXZYjBw5Murr6+Pcc8+NjRs39no/ZRcNq1atitdee23HZfny5RERceaZZ5Z4svLy7W9/O2666aZYvHhxPPvss3HdddfFd77znbjxxhtLPVrZufDCC2P58uVx2223xZo1a+Lkk0+OE088MV599dVSjzaobd26NQ4//PBYvHhxj1+/7rrrYtGiRbF48eJYtWpV1NXVxUknnbTjc3fI+aB13rp1axxzzDFx7bXXDvBk5WVX69za2hqrV6+OK6+8MlavXh1Lly6NdevWxac//ene76gocxdddFExbdq0orOzs9SjlJXZs2cX8+bN67LtjDPOKM4555wSTVSeWltbi8rKyuKee+7psv3www8vLr/88hJNVX4iorjrrrt2/Lmzs7Ooq6srrr322h3b2traitra2uKmm24qwYTl4f3r/PsaGhqKiCiefPLJAZ2pHO1qnd/z+OOPFxFRNDY29uq+y+5Iw+9755134vbbb4958+btkR+qNZjNmjUr7r333li3bl1ERDz99NOxcuXKOO2000o8WXnZvn17dHR0xPDhw7tsr66ujpUrV5ZoqvLX0NAQmzZtipNPPnnHtqqqqjjuuOPikUceKeFk0D+ampqioqIi9tlnn17drs8fWDUY3H333bFly5Y477zzSj1K2bnkkkuiqakpDj744KisrIyOjo646qqr4gtf+EKpRysro0aNiqOOOiq+9a1vxSGHHBJjxoyJO+64Ix577LGYPn16qccrW5s2bYqIiDFjxnTZPmbMmGhsbCzFSNBv2tra4tJLL405c+b0+sPCyvpIw8033xynnnpq1NfXl3qUsnPnnXfG7bffHj//+c9j9erVceutt8b1118ft956a6lHKzu33XZbFEUR48aNi6qqqrjhhhtizpw5UVlZWerRyt77j1AWReGoJYNae3t7nH322dHZ2Rk/+MEPen37sj3S0NjYGCtWrIilS5eWepSydPHFF8ell14aZ599dkREHHbYYdHY2BjXXHNNzJ07t8TTlZdp06bFAw88EFu3bo3m5uYYO3ZsnHXWWTFlypRSj1a26urqIuLdIw5jx47dsf2NN97odvQBBov29vb4/Oc/Hw0NDXHffff16SPJy/ZIw5IlS+LAAw+M2bNnl3qUstTa2hpDhnT99amsrPSWyw/RyJEjY+zYsfHWW2/FsmXL4jOf+UypRypbU6ZMibq6uh3vvop49xypBx54II4++ugSTgZ9814wPP/887FixYrYb7/9+nQ/ZXmkobOzM5YsWRJz586NoUPL8lssudNPPz2uuuqqmDhxYnzsYx+LJ598MhYtWhTz5s0r9WhlZ9myZVEURcycOTPWr18fF198ccycOTPOP//8Uo82qL399tuxfv36HX9uaGiIp556KkaPHh0TJ06MBQsWxNVXXx3Tp0+P6dOnx9VXXx0jRoyIOXPmlHDqweeD1nnz5s3x8ssv7/g/A9auXRsR7x7tee+IDx9sV+tcX18fn/vc52L16tVxzz33REdHx47zdkaPHh3Dhg3L76ivb+nYky1btqyIiGLt2rWlHqVsNTc3FxdddFExceLEYvjw4cXUqVOLyy+/vNi2bVupRys7d955ZzF16tRi2LBhRV1dXTF//vxiy5YtpR5r0Lv//vuLiOh2mTt3blEU777tcuHChUVdXV1RVVVVHHvsscWaNWtKO/Qg9EHrvGTJkh6/vnDhwpLOPdjsap3feztrT5f777+/V/vx0dgAQErZntMAAPQv0QAApIgGACBFNAAAKaIBAEgRDQBAimgAAFJEAwCQIhoAgBTRAACkiAYAIEU0AAAp/wvFOrzvx0VmyAAAAABJRU5ErkJggg==\n", + "image/png": "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iKw9J79169ZV3m7WrFkUFRVl68MDAABAwSgrK4sdO3Zk3t67metK1p6TDwAAAOSW0/UBAAAgESIfAAAAEiHyAQAAIBEiHwAAABIh8gEAACARIh8AAAASIfIBAAAgESIfAAAAEiHyAQAAIBEiHwAAABIh8gEAACARIh8AAAASIfIBAAAgESIfAAAAEiHyAQAAIBEiHwAAABIh8gEAACARIh8AAAASIfIBAAAgESIfAAAAEiHyAQAAIBEiHwAAABLRJNcDNDRjx46Nn//85zW+3RVXXBEPPPBAHUwEtbNz5874wx/+EH/+859j0aJFsXXr1mjVqlV07949Lr/88ujTp080atQo12PCPm3evDkmTpwYM2fOjOXLl8fOnTujQ4cOcc4558R1110XRx99dK5HhCruueeemDRpUgwZMiRuu+22avcvKSmJyZMnx7x58+Ljjz+Odu3aRY8ePaJ///7xla98pR4mhqpquob3uPnmm+OVV16J+++/P6688so6nBD2rSZrd9u2bfH000/HzJkzY/HixbFp06Zo0aJFHHPMMdGrV6/o379/tGjRos5nFvkFQiyRT9asWRM333xz/Pvf/67y7x988EHMmjUrZs2aFeedd16MGTMmmjdvnqMpYd/mzZsXt956a6xbt67Kvy9fvjyWL18eU6ZMieHDh8cNN9yQmwFhL6+99lpMmTLloPYtLy+Pu+66K6ZOnVrl31evXh2rV6+OGTNmxMCBA+NHP/qRny2oNzVZw5VNmzYtXnnllewPBAepJmt34cKFMWTIkFi5cmWVf9+4cWO8+eab8eabb8Zvf/vbGDduXJx00kl1MW6GyK9nF198cZx44onV7rdhw4a4++67Y9euXdGiRYsYPHhwPUwH1SstLa0S+J///OfjqquuiiOPPDLefffdmDJlSnz44YdRUlISw4YNi/Hjx+d4YvivZcuWxQ033BBbtmyJiIjOnTtH3759o0OHDvHuu+/G5MmTY926dXH//fdHWVmZx15ybv78+TFkyJAoLy8/qP0feeSRTOAfeeSRMWDAgOjYsWMsW7YsJk2aFB9++GFMnDgx2rVrF7feemtdjg4RUfM1vEdJSUncdddddTQVVK8ma3fNmjUxePDg+OCDDyIi4otf/GJcfPHF0b59+1i3bl08//zzMXfu3Fi9enUMHjw4nn766ejYsWOdzS7y69mxxx4bxx577AH3qaioiBtvvDF27doVERH33XdfdO3atT7Gg2pNnz49E/jnn39+jBkzJg455JDM+6+99toYNGhQLFy4MF5++eWYPXt29OzZM1fjQhUjRozIBH6fPn1i1KhR0bRp08z7Bw4cGIMGDYoFCxbE6NGj45xzzonjjz8+V+PSwJWUlMTw4cNj8+bNB7X/O++8ExMmTIiIiOOOOy5+97vfRatWrTLvv/rqq2PgwIHx3nvvxbhx4+Kyyy6r0x8yoaZreI9p06bFyJEjo7S0tI4mgwOr6dodPXp0JvBvuummGD58eJX3X3fddTFq1KiYMGFCbNiwIR544IEYO3Zs1ufew4X38tDkyZNj9uzZERHxjW98Iy6++OIcTwT/NWPGjIiIaNy4cdx7771VAj8iom3btvHDH/7wE/tDrr355psxd+7ciIg45phj4qGHHqoS+BERrVq1ikceeSSKi4tj165d8Ytf/CIXo9LA7dy5M372s5/FLbfcEh9//PFB3+6JJ56IsrKyiIi4++67qwR+RET79u3jwQcfjIjdZ2X95je/yd7QUElt1/CmTZvirrvuih/84Aexc+fOOpwQ9q02a3fTpk3x3HPPRUTESSedFMOGDdvnfsOGDcucpv/iiy/Ghg0bsjP0Poj8PLN27doYNWpURES0bt06RowYkeOJoKr3338/InbHfPv27fe5zymnnJLZXrVqVb3MBdV59dVXM9vf+ta3olmzZvvcr1OnTnH++edHRMRLL70UW7durZf5ICLi73//e1x00UXx6KOPRnl5eTRv3jwGDRpU7e3Ky8vjhRdeiIiI448/Pk4//fR97nfqqadmfsh84YUXoqKiInvDQ9R+Df/pT3+KPn36xFNPPRURu3/O6NevX12PCxm1Xbv/+te/MmedfP3rX9/v9U4aNWoUffr0iYjdj9lvv/129obfi8jPM6NGjcqcSjp8+PBo06ZNjieCqj772c9GRMT69esza3VvlcO+bdu29TIXVOedd97JbFd3dfEePXpERMT27dtj/vz5dToXVPbss89mfpl68sknx9SpUzO/dDqQxYsXx8aNGyMi4swzzzzgvnvev3bt2li0aNGnGxj2Uts1/NRTT8X69esjIqJnz54xffr0Kn80gLpW27W7a9eu6NatW7Rq1So6d+58wH0rn2FVk7Ncaspz8vPIwoUL49lnn42I3b+Fv+qqq3I8EXxSjx49Yt68eVFRURGPP/74Pl9K5Fe/+lVm2/PxyRebNm3KbO/vLJQ9WrdundlesmRJnHHGGXU1FnxC27ZtY8iQIdGvX78oKirKhM+BLF68OLNd3XUkKl/nZ+HChXHCCSfUfljYh9qs4YiIjh07xrBhw+KSSy6p4wlh32qzdnv37h29e/c+qI+/dOnSzHblnzWyTeTnkbFjx2ZOm/vud78bjRs70YL8c/3118e0adNi69atMW7cuPj444+jX79+0aFDh1ixYkX8+te/jmeeeSYiIs4444y49NJLczwx7Fb55Rx37NgRxcXF+9238oV21q5dW6dzQWXXXHNN3H333Z+43kl1Kp9BVd3F9I488sh93g6yobZreOjQodG9e/do0kSekBu1XbsHa/v27Znn7hcVFcXJJ59cJ58nQuTnjRUrVsTLL78cEbsvCNWrV68cTwT7dvTRR8eECRNi6NChsWbNmnjyySfjySefrLJPcXFx9OvXL4YNGxZFRUU5mhSqOuqoozLb8+fPP+ApzQsWLMhs1+XpdLC37t271+p2H374YWa7uqf6VT5ddM8p/pAttV3Dp556apYngZqp7do9WI8++mjmsfrcc8+t07/k+1Nxnpg4cWLmNRgHDRq03ws2QD44/fTTY/To0ft9cDr00EOjS5cuAp+8UjnqJ06cuN/91q9fHy+99FLmbVd4phBs3749s733q0bsrfJFJyvfDoC6UVJSknk6a1FRUdx+++11+vn8JT8PbNmyJaZNmxYREYcddlhcfvnluR0IDqC0tDTuvPPOzOlGZ555ZlxwwQXRpk2beP/99+OZZ56JpUuXxr333ht/+ctfYsKECXV22hPUxLnnnhtHH310rFixImbOnBkTJkyIm266qco+27Zti6FDh1a5or5fulIIdu3aldmuLvIrv7/y7QDIvrfeeivuuOOOzB90hwwZEl/4whfq9HOK/Dzw/PPPZy4I1bdv32q/OUMuDRs2LPMyTT/+8Y9j4MCBVd4/ePDguOeee+Kpp56KOXPmxIgRI2L06NG5GBWqKCoqivvuuy8GDRoUZWVlMWrUqCgpKYmLLroo2rZtG++99178/ve/j1WrVsV5550XJSUlERH7fak9yCeVf5m656Wc9qfy2SkHujYFAJ/OG2+8Ed/+9rczfzzo3bt33HLLLXX+eZ2unwde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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": {}, + "metadata": { + "image/png": { + "height": 201, + "width": 508 + } + }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", - "sns.stripplot(x=pricesW, jitter=0)" + "sns.stripplot(x=prices, jitter=0)" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "02caade4-678c-4681-893b-04e22a865903", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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xBN64YUXlJCQIElqamrSqlWrlJ2dPaBBHn/8cb3zzjt66623vnTfL34JqWVZvW6XpMLCQhUUFATX/X6/EhMTBzQjACB8tba26uLFC/qrJesV7Uq2exxj+X0f6vc7N6i1tTW8Y2fr1q164IEHlJycrMTERDkcDnm9Xt16662qqKjo9/MtX75cL7/8smpqajR58uQ+942Pj1dzc3PItpaWFkVERGjixIk99nc6nXI6nf2eCQBgpmhXsiYkue0eA8NoQLGTmJiouro6VVZW6uTJk7IsS9OmTdO9997br+exLEvLly/Xvn37VFVVpZSUlC89JisrS7/+9a9Dth08eFCZmZm9frQGAABGt3796Pkbb7yhadOmBW/yve+++7R8+XKtWLFCM2fOVHp6ut58882rfr5ly5apoqJCzz//vMaPH6/m5mY1Nzfr4sWLwX0KCwu1ePHi4Hp+fr5Onz6tgoICnThxQjt37lRZWZlWr17dn7cCAABGiX7FTklJib73ve8pOjq6x2MxMTH6p3/6J23evPmqn2/79u06e/as5s2bJ5fLFVz27NkT3Mfn88nr9QbXU1JStH//flVVVen222/X008/rS1btvBj5wAAoFf9+hjrD3/4g372s59d8fGcnBwVFxdf9fNdvrG4L+Xl5T22zZ07V3V1dVf9OgAAYPTq15Wdjz/+uM/7YiIiIvr1G5QBAACGWr9i56tf/aqOHz9+xcffeeedHr/nBgAAwE79ip3c3Fz98z//sz7//PMej128eFHr16/X3/zN3wzacAAAANeqX/fs/OhHP9LevXv1jW98Q48//rjcbrccDodOnDihbdu2qaurS+vWrRuqWQEAAPqtX7ETFxent99+W9///vdVWFgY8puL58+fr2effbbHVzkAAADYqd+/VPCWW27R/v379ec//1kffPCBLMvSlClTdNNNNw3FfAAAANdkQL9BWZJuuukmzZw5czBnAQAAGHT9ukEZAAAg3BA7AADAaMQOAAAwGrEDAACMRuwAAACjETsAAMBoxA4AADAasQMAAIxG7AAAAKMROwAAwGjEDgAAMBqxAwAAjEbsAAAAoxE7AADAaMQOAAAwGrEDAACMRuwAAACjETsAAMBoxA4AADAasQMAAIxG7AAAAKMROwAAwGjEDgAAMBqxAwAAjEbsAAAAoxE7AADAaLbGTk1NjRYuXKiE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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABE4AAAGTCAYAAAA2pFfaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAB7CAAAewgFu0HU+AAA1yElEQVR4nO3deZgdZYE+7Oekkw4kISv7GiRABIFBQKKCyIAsgd+wyb4MfDgKTFgMKAwKBGQRRcABwZEZZ1iEZBgJm8qaEAUjsmkMkkDYiUIgoQlZSHe6z/dHzLEDqWykz+lO3/d1cVHdp+rUc+Hb5emn33qrVC6XywEAAADgI7rUOgAAAABAe6U4AQAAACigOAEAAAAooDgBAAAAKKA4AQAAACigOAEAAAAooDgBAAAAKKA4AQAAACigOAEAAAAooDgBAAAAKKA4AQAAACigOAEAAAAooDgBAAAAKKA4AQAAACigOAEAAAAooDgBAAAAKKA4AQAAACjQtdYBWLLGxsY0NDRUvu7evXvq6upqFwgAAABqoLm5OfPmzat83bdv39TX17f5eRUn7VxDQ0Nef/31WscAAACAdmfttddu83O4VQcAAACggOIEAAAAoIBbddq57t27L/L1RhttlB49etQoTcczZcqUNDc3p66uLoMGDap1HFguxi8dmfFLR2b80pEZv3R0SxrDc+bMWWQpiw//vtxWFCdLMXPmzOy3336ZNm1aDjrooHz3u9+t6vk/vBBsjx490qtXr6pm6Mi6dOmS5ubmdOnSxX83Ohzjl47M+KUjM37pyIxfOrrlGcPVenCKW3WW4tJLL820adNqHQMAAACoAcXJEjzyyCMZPXp0rWMAAAAANaI4KTBz5sycd955tY4BAAAA1JDipMDCW3R69+5d6ygAAABAjShOFqP1LTrf/OY3a5wGAAAAqBXFyYe0vkXn8MMPz2c/+9kaJwIAAABqRXHyIQtv0VlvvfXMNgEAAIBOTnHSSutbdC688ELPPQcAAIBOTnHyN61v0TnwwAOz22671TgRAAAAUGtdax2gvVh4i85aa62Vc889t9ZxCk2ZMiVduui7llVTU1Pl3xMmTKhxGjqCQYMGpWvX9nFpHDx4cGW7sbGxhknoaObPn58pU6bUNIPrLx2Z8UtHZvzS0S1pDLe0tNQikuIkWfQWnREjRqRPnz41TlSsubk5zc3NtY7RIS38AYQl6dq1a+rr62sdAz629nTNa09ZYHkZv3Rkxi8dXXsZw52+OGl9i87QoUOz55571jjRktXV1Zlxshxa/6B169athknoaFpaypk5e15NM5RbbZdqloKOpHfP7unSZcFoqfU1z/WXjsz4pSMzfunoljSGW1paajKRoNMXJwtv0enXr1+lQGnPBg0aZNHa5TBhwoQ0NTWlW7du2XbbbWsdhw7k/TmN+d7NT9U0w6zZs1JuKafUpZRePf3cs3RnH7dj+vTqnvr6+ppf81x/6ciMXzoy45eObkljeNasWZk8eXLVM3XqqQutb9E577zz0r9//xonAgAAANqTTj3j5L777qtsDx8+PMOHD1/i/qNHj64ULcOGDcupp57apvkAAACA2urUM04AAAAAlqRTzzg59thjl7oY7PTp03P++ecnSXbeeeccd9xxSZJNN920zfMBAAAAtdWpi5Ott946W2+99RL3eeONNyrb66+/frt/6g4AAACw8rhVBwAAAKCA4gQAAACggOIEAAAAoIDiBAAAAKBAp14cdllsuOGGmTx5cq1jAAAAADVgxgkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQAHFCQAAAEABxQkAAABAAcUJAAAAQIGutQ7Qnrzzzju5+eabM27cuLz66qtJknXXXTe77LJLDj/88AwaNKjGCQEAAIBqUpz8zWOPPZbhw4enoaFhke+/9NJLeemll3Lbbbdl2LBhOemkk2oTEAAAAKg6xUmSSZMm5eSTT868efOSJF/84hezyy67pFevXnnuuecyatSofPDBB7nqqqvSq1evHHPMMTVODAAAAFSD4iTJd77znUppMmLEiBx55JGV1w466KAcddRROfTQQzNz5sxcddVVOfDAA9OrV69axQUAAACqpNMvDjtlypQ8+eSTSZJddtllkdJkoYEDB+YrX/lKkmTWrFn59a9/XdWMAAAAQG10+uKkoaEhQ4YMyZprrpl99tmncL/BgwdXtqdOnVqNaAAAAECNdfpbdXbcccfceOONS93vzTffrGyvtdZabRkJAAAAaCc6/YyTZdHQ0JCf/vSnSZLVV189X/jCF2qcCAAAAKiGTj/jpMi8efMyderUPPzww7npppsybdq0JMk555yT/v371zgdAAAAUA2Kk8WYOHFiDjnkkEW+t9Zaa+Xcc8/N0KFDa5QKAAAAqDbFyWK0Xs9koYaGhvzqV7/KVlttlYEDB1Y/1N9MmTIlXbq4w2pZNTU1Vf49YcKEGqehIxg8eHDq6+tTLpcza/asmmYpt5Qr/651FjqGcnnBmGlsbMykSZNqmsX1l47M+KUjM37p6JY0hltaWmoRSXGyOP369ct5552X/v37580338xdd92VSZMm5YEHHsj48eNz4403Zuutt65Jtubm5jQ3N9fk3B3dwh9AWBbl/L24aA/aUxbar9ajpD1d89pTFlhexi8dmfFLR9dexrDiZDF22GGH7LDDDpWvjz/++IwYMSKjRo3K+++/n7POOiv33ntv6urqqp6trq7OjJPl0PoHrVu3bjVMQkdTSlLqUqpphtZlSa2z0DG0HiW1vua5/tKRGb90ZMYvHd2SxnBLS0tNJhIoTpZBly5dcsEFF+QPf/hDJk+enJdeeimPPvpodtttt6pnGTRoUHr16lX183ZUEyZMSFNTU7p165Ztt9221nHoQEqlUnr1rO3P2qzZs1JuKafUpfZZ6BhKpQXVSX19fc2vea6/dGTGLx2Z8UtHt6QxPGvWrEyePLnqmUxdWEZ1dXX58pe/XPn66aefrmEaAAAAoBoUJ8th0003rWzPmDGjhkkAAACAauj0t+qMHj06Y8eOzeuvv54bb7wxvXv3Ltx33rx5le2ePXtWIx4AAABQQ51+xsnzzz+f+++/P3/+858zfvz4Je7b+lFIn/jEJ9o6GgAAAFBjnb442XXXXSvbt956a+F+DQ0Nuf3225MsWNm3FgvDAgAAANXV6YuTIUOGZPDgwUmS3/3ud/mv//qvj+wza9asnHrqqZV1TQ477LCss846Vc0JAAAAVF+nX+OkS5cuufTSS3P00Udn7ty5+d73vpff/va32WuvvbLGGmvkhRdeyO2335633347SbLVVlvlG9/4Ro1TAwAAANXQ6YuTJNl6663zk5/8JGeccUamT5+eRx99NI8++uhH9tt1111z5ZVXZvXVV69BSgAAAKDaFCd/85nPfCa/+tWv8rOf/SxjxozJyy+/nHnz5mXAgAHZfvvtc9BBB1nXBAAAADoZxUkrffr0ySmnnJJTTjml1lEAAACAdqDTLw4LAAAAUERxAgAAAFBAcQIAAABQQHECAAAAUEBxAgAAAFBAcQIAAABQQHECAAAAUEBxAgAAAFBAcQIAAABQQHECAAAAUEBxAgAAAFCgazVP9sQTTyRJNt5446yzzjrLdeyLL76YRx99NLNnz84pp5zSFvEAAAAAFlHVGSfHHntsjjvuuPzyl79c7mPvv//+XHbZZbnxxhvbIBkAAADAR3WYW3WampqSJLNnz65xEgAAAKCzWOm36syfPz/PPPPMEvd57bXXKrftLE1zc3OmTp2aW2+9NUnSp0+fj50RAAAAYFms9OKka9eu+Z//+Z+MGTNmsa+Xy+WMHDkyI0eOXO73LpVK2WGHHT5uRAAAAIBl0ia36px33nlZbbXVUi6XF/lnoQ9/f1n/6d27d84444y2iAwAAADwEW3yVJ111103l1xySX7zm98s8v3Ro0enVCpl6623zuabb75M71VXV5devXplww03zD777JM111yzLSIDAAAAfESbPY546NChGTp06CLfGz16dJJkv/32ywknnNBWpwYAAABYKdqsOFmcnXbaKcmCGSkAAAAA7V1Vi5Obb765mqcDAAAA+FjaZHFYAAAAgFVBVWectNbU1JQJEybknXfeybx589LS0rLMxx544IFtFwwAAADgb6penMyfPz/XXHNNbrnllsyZM2e5jy+VSooTAAAAoCqqXpycdtppGTt2bMrlcrVPDQAAALBcqlqcPPTQQxkzZkxKpVKSZOONN84OO+yQ/v37Z/XVV69mFAAAAIClqmpxcuedd1a2Tz755Jx22mmVEgUAAACgvalqcfLHP/4xpVIpn/zkJ3P66adX89QAAAAAy62qjyNuaGhIkuy6667VPC0AAADACqlqcdKvX78kyWqrrVbN0wIAAACskKoWJ1tssUWSZMqUKdU8LQAAAMAKqWpxsv/++6dcLmfMmDF5++23q3lqAAAAgOVW1eLkgAMOyI477pi5c+fmjDPOyPvvv1/N0wMAAAAsl6o+VadUKuXaa6/NKaeckqeeeip77rln9t1332y33XYZMGBAVl999WV6n5122qmNkwIAAABUuTjZbrvtkiQtLS0plUp57733MmrUqIwaNWqZ36NUKuXPf/5zW0UEAAAAqKhqcTJv3ryPfK9cLlczAgAAAMAyq2pxctBBB1XzdAAAAAAfS1WLk8suu6yapwMAAAD4WKr6VB0AAACAjkRxAgAAAFBAcQIAAABQoKprnBx33HEf+z1KpVJuvPHGlZAGAAAAYMmqWpz8/ve/T6lUWqFjFz62eEWPBwAAAFheVS1Okr8XIMujVCplk002yeqrr94GiQAAAAAWr6rFycMPP7zUfcrlcubNm5e33347f/rTn/Kzn/0sb775Znr27JkbbrghAwYMqEJSAAAAgCoXJxtssMEy77vZZptlyJAhOfroo/O1r30tTz75ZE477bTccsstbtcBAAAAqqLdP1WnR48eufrqq1NfX5+nn346d911V60jAQAAAJ1Euy9OkmTAgAHZc889Uy6Xc+edd9Y6DgAAANBJdIjiJEk+8YlPJEmmTJlS4yQAAABAZ1H1p+qsqFmzZiVJ3n///TY7x3vvvZeRI0dm7NixefnllzN79uysscYa2XLLLbPPPvvk4IMPTn19fZudHwAAAGhfOkRx0tLSkjFjxiRJmz1VZ/z48Rk+fHhmzJixyPdnzJiR8ePHZ/z48bnlllty/fXXZ6ONNmqTDAAAAED70u6Lk9mzZ+eiiy7Kq6++mlKplJ133nmln2PSpEk5+eSTM3fu3CTJLrvskj322CN9+/bNX/7yl9x555154YUX8sILL+TEE0/M//3f/6V3794rPQcAAADQvlS1OPm3f/u3Zd63sbExM2bMyB//+MdKoZEkRxxxxErPdfHFF1fOMWLEiBx55JGLvH788cfnnHPOyT333JNXX3011113Xc4555yVngMAAABoX6panIwePTqlUmm5jyuXy0kWFBjbbbfdSs304osv5oknnkiS7Lnnnh8pTZKka9euueSSS/L4449n2rRpueOOO/KNb3wjdXV1KzULAAAA0L5U/ak65XJ5uf/ZfPPN853vfCdnn332Ss8zfvz4yvYBBxxQuF/37t2z++67J1mwiOwrr7yy0rMAAAAA7UtVZ5zcdNNNy7xvly5dsvrqq2e99dZL//792yxTly5dsvnmm+evf/1rBg4cuMR9+/TpU9meOXNmm2UCAAAA2oeqFief+cxnqnm6ZXLUUUflqKOOWqZ9p0yZUtnu27dvGyUCAAAA2ouq36rTUb311lv5zW9+kyTp169fNtlkkxonAgAAANpau3gc8WuvvZbXX3897733XpKkd+/e2WijjdpVOXH55ZenqakpSbLffvulSxedEwAAAKzqalacNDQ05H/+53/y85//PO+8885i9+nXr1+GDh2ak08+OQMGDKhywr8bOXJkfvGLXyRJevToka9+9as1yzJlyhSlzXJYWHY1NTVlwoQJNU5DRzB48ODU19enXC5n1uxZNc1SbilX/l3rLHQMC59C19jYmEmTJtU0i+svHZnxy/IaNGhQunZtF3+TzuDBgyvbjY2NNUxCRzN//vxFlqeolSVdg1taWmoRqTbFyRNPPJGvf/3rmT59epK/f9D7sBkzZuRnP/tZ7rvvvnzve9/L5z73uWrGTJI89NBDueiiiypfjxgxIuuss07VcyzU3Nyc5ubmmp2/I1v4AwjLopy/FxftQXvKQvvVepS0p2tee8oCy8v4ZVl07do19fX1tY4BH1t7u+a1lzxVL04mTJiQr3zlK2lsbKwUJn379s3gwYPTt2/ftLS05N13383kyZMzc+bMlMvlvPPOOznppJMyatSofPKTn6xa1gceeCDDhw+vFBXHHXfcEh9ZXA11dXVmnCyH1j9o3bp1q2ESOppSklKXUk0ztC5Lap2FjqH1KKn1Nc/1l47M+GVFtbSUM3P2vJpmaF2i+/TAsujds3u6/O2zZnu45i3pGtzS0lKTiQRVLU6ampoyfPjwzJu34GKy1VZb5Rvf+EY++9nPLnb/xx57LFdeeWWeffbZNDY25owzzsi9995blf8xb7/99owYMSLz589Pkhx00EE599xz2/y8SzNo0KD06tWr1jE6jAkTJqSpqSndunXLtttuW+s4dCClUim9etb2Z23W7Fkpt5RT6lL7LHQMpdKCDz319fU1v+a5/tKRGb+sqPfnNOZ7Nz9V0ww+P7C8zj5ux/Tp1b1dfH5IlnwNnjVrViZPnlz1TFWdunDnnXfmjTfeSKlUym677ZZRo0YVliZJ8vnPfz6jRo3KF7/4xSQLFpG999572zzntddem29/+9uV0uSQQw7JpZdeWvlACgAAAHQOVS1OHn744STJGmuskcsvv3yZZo507do1l19+eXr37p0kuf/++9ssX0tLS84///xcc801le8dd9xxueSSS9weAwAAAJ1QVduA5557LqVSKXvssUf69u27zMf16dMne+yxR8rlciZOnNgm2VpaWvLNb34zo0aNqnzv9NNPz7e+9S0zTQAAAKCTquoaJ++++26SZJNNNlnuYxce09DQsDIjVYwYMSL33HNPkqRLly45//zzc+SRR7bJuQAAAICOoarFSffu3dPU1JQ5c+Ys97ELj+nRo8fKjpU77rijMtOkS5cuueyyy3LggQeu9PMAAAAAHUtVb9VZf/31Uy6X8/jjjy/3sQuPWXfddVdqpnfeeSeXXHJJ5euzzz5baQIAAAAkqfKMk5133jmTJ0/OhAkTMmbMmPzjP/7jMh338MMP549//GNKpVJ23nnnlZrpxhtvzKxZs5IsKHY23HDDPPTQQ0s9bquttsr666+/UrMAAAAA7UtVi5PDDz88N998c5LkG9/4Rn7wgx9UHjVcZOzYsfnmN7+ZJCmVSjn00ENXaqbRo0dXtv/yl7/kX//1X5fpuMsuuywHH3zwSs0CAAAAtC9VLU4222yzHHnkkbn11lszZ86cnHzyydlpp52y9957Z/DgwZUn7bz77ruZPHly7rvvvjz55JMpl8splUr58pe/nC222GKl5ZkxY0befvvtlfZ+AAAAwKqlqsVJkpxzzjmZOnVqxo0bl1KplCeeeCJPPPFE4f7lcjlJ8rnPfS7nn3/+Ss3Sv3//TJ48eaW+JwAAALDqqOrisElSX1+f6667Lv/6r/+aHj16pFwuL/GfHj165JRTTskNN9yQrl2r3vMAAAAAnVhNmoi6urqceuqpOfbYYzN27Nj87ne/yxtvvJGGhoaUy+X07t07AwcOzA477JC99947vXv3rkVMAAAAoJOr6RSOvn375qCDDspBBx1UyxgAAAAAi1XVW3Vee+21Zdrvxz/+ce6///40Nja2cSIAAACAYlWZcXLnnXfm2muvTbdu3fKrX/1qifs2NTXlxz/+cebNm5d11lknp556ag455JBqxAQAAABYRJsWJ3Pnzs2ZZ56ZsWPHVh4pPGPGjPTv37/wmD/84Q/54IMPUiqV8uabb+bb3/52fv3rX+f73/9+6uvr2zIuAAAAwCLa7Fad5ubmnHLKKRk7duwi33/++eeXeFz37t2z2267pa6uLsmCxxE/8MAD+frXv155NDEAAABANbRZcXL99ddn/Pjxla8PPvjgPPDAAxkyZMgSj9t2223zH//xH3n44Ycri8aWy+WMGTMmN954Y1vFBQAAAPiINilOZsyYkf/8z/9MsuDRwz/84Q9z6aWXZqONNlrm91hnnXVy2WWX5aKLLkqpVEq5XM4111yT2bNnt0VkAAAAgI9ok+Lk7rvvrqxTctZZZ2WvvfZa4fc67LDDctRRRyVJ5syZk7vvvntlxQQAAABYojYpTn73u98lSQYMGJBjjz32Y7/fqaeemtVWWy1J8thjj33s9wMAAABYFm1SnEyePDmlUimf+9znKou8fhx9+/bNkCFDUi6X8+c//3klJAQAAABYujYpThoaGpIkm2yyyUp7zy233DJJ8u6776609wQAAABYkjYpTubPn58k6dat20p7z549eyZJmpqaVtp7AgAAACxJmxQnvXv3TrJyZ4fMnDkzyd8LFAAAAIC21ibFyaabbrrS1yOZOHFikmTdddddae8JAAAAsCRtUpxsv/32SZKnnnoq06dP/9jvN23atDz55JMplUoZPHjwx34/AAAAgGXRJsXJXnvtlSRpbm7Otdde+7Hf79prr62sm7Lbbrt97PcDAAAAWBZtUpxss802+Yd/+IeUy+WMHDky99xzzwq/11133ZX//d//TalUyoABA7LHHnusxKQAAAAAxdqkOEmSb37zmymVSkmSs88+O//+7/+exsbGZT7+gw8+yFVXXZVzzz238r3TTz893bt3X+lZAQAAABana1u98ac//emcfPLJue6665Ik119/fUaNGpWhQ4dmyJAh+fSnP51+/fpV9i+Xy5k+fXqeeuqpPPbYY3nwwQfT0NCQcrmcJNl///1z6KGHtlVcAAAAgI9os+IkSU477bTMnTs3//3f/51SqZTp06fnlltuyS233JIk6datW/r27ZvGxsbMnDmzUpIkWWT70EMPzYUXXtiWUQEAAAA+ok2Lk2TBbTrbbbddLr300kybNi3lcjmlUinlcjmNjY2ZNm1a4bEbb7xxzjrrrMpiswAAAADV1ObFSZLss88++cd//Mfc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uHHjctttt2XChAmZOXNmBgwYkG233TZHHnlkPve5z1UhMSxqecfwQl/72tfyyCOP5LLLLsvBBx/chglh8ZZn7M6dOzc///nP8+CDD+b555/P+++/n549e+YTn/hE9thjjxx55JHp2bNnm+ZVnNCp+QWU9uStt97K1772tTz33HOLfP+dd97J2LFjM3bs2Oy22265+uqr06NHjxqlhMWbMGFCTjnllLz99tuLfP+VV17JK6+8kpEjR+ass87K8ccfX5uA8CHjx4/PyJEjl2nflpaWnH/++bn99tsX+f6bb76ZN998Mw888ECOOeaYfPvb3/bZgqpZnjHc2h133JFHHnlk5QeCZbQ8Y3fSpEkZNmxYXn/99UW+39DQkKeffjpPP/10br755lx33XXZeuut2yJuEsUJq4ihQ4fmk5/85FL3e/fddzNixIjMnz8/PXv2zIknnliFdLB0TU1Ni5Qmm2yySQ455JCst956efnllzNy5MjMmDEj48aNy5lnnpnrr7++xonh71566aUcf/zxmT17dpJk4MCBOfTQQ7P++uvn5Zdfzm233Za33347l112WZqbm117qbmJEydm2LBhaWlpWab9f/jDH1ZKk/XWWy9HHXVUNthgg7z00ku59dZbM2PGjNxyyy0ZMGBATjnllLaMDkmWfwwvNG7cuJx//vltlAqWbnnG7ltvvZUTTzwx77zzTpLkH/7hHzJ06NCsvfbaefvtt/PLX/4yzzzzTN58882ceOKJ+fnPf54NNtigTXIrTlglbLbZZtlss82WuE+5XM5XvvKVzJ8/P0ly8cUXZ9CgQdWIB0s1evToSmmy++675+qrr85qq61Wef3YY4/NCSeckEmTJmXMmDF59NFHs8suu9QqLizi3HPPrZQme++9d6644orU19dXXj/mmGNywgkn5Nlnn82VV16ZXXfdNVtssUWt4tLJjRs3LmeddVZmzZq1TPu/+OKLueGGG5Ikm2++eX72s5+lT58+ldcPP/zwHHPMMXn11Vdz3XXX5YADDmizD+6QLP8YXuiOO+7IBRdckKampjZKBku2vGP3yiuvrJQm//Iv/5KzzjprkdePO+64XHHFFbnhhhvy7rvv5rvf/W6uueaalZ47sTgsnchtt92WRx99NEnyT//0Txk6dGiNE8HfPfDAA0mSLl265KKLLlqkNEmS/v3751vf+tZH9odae/rpp/PMM88kST7xiU/k+9///iKlSZL06dMnP/zhD9OtW7fMnz8/P/7xj2sRlU6usbEx//7v/56TTjopM2fOXObjbrzxxjQ3NydJRowYsUhpkiRrr712Lr/88iQLZg/+93//98oLDa2s6Bh+//33c/755+ff/u3f0tjY2IYJYfFWZOy+//77+cUvfpEk2XrrrXPmmWcudr8zzzyzcovOQw89lHfffXflhP4QxQmdwrRp03LFFVckSfr27Ztzzz23xolgUW+88UaSBQXJ2muvvdh9tttuu8r21KlTq5ILluY3v/lNZfv/+//+v3Tv3n2x+2200UbZfffdkyQPP/xw5syZU5V8kCS//e1vs+++++ZHP/pRWlpa0qNHj5xwwglLPa6lpSX3339/kmSLLbbIjjvuuNj9tt9++8oH9/vvvz/lcnnlhYes+Bi+9957s/fee2fUqFFJFnzOOOKII9o6LlSs6Nh98sknK7Oj/t//+3+F60eVSqXsvffeSRZcs//0pz+tvPCtKE7oFK644orKNPKzzjor/fr1q3EiWNQaa6yRJJk+fXplrH5Y67Kkf//+VckFS/Piiy9Wtpf2VJFtt902SfLBBx9k4sSJbZoLWrv77rsrBfWnPvWp3H777ZUib0mef/75NDQ0JEmGDBmyxH0Xvj5t2rRMnjz54wWGD1nRMTxq1KhMnz49SbLLLrtk9OjRi/whBtraio7d+fPnZ8stt0yfPn0ycODAJe7beibg8szGWh7WOGGVN2nSpNx9991JFvy16JBDDqlxIviobbfdNhMmTEi5XM5Pf/rTxT6W7T//8z8r29Y3ob14//33K9tFs6UW6tu3b2X7hRdeyGc+85m2igUf0b9//wwbNixHHHFE6urqKr9MLsnzzz9f2V7aujyt102bNGlSBg8evOJhYTFWZAwnyQYbbJAzzzwz++23XxsnhMVbkbH7pS99KV/60peW6f2nTJlS2W79WWNlUpywyrvmmmsqU2ZPP/30dOliohXtzz//8z/njjvuyJw5c3Lddddl5syZOeKII7L++uvntddey3/913/lrrvuSpJ85jOfyf7771/jxLBA60djz5s3L926dSvct/VicNOmTWvTXNDa0UcfnREjRnxk/ailaT3Tb2kLvq633nqLPQ5WhhUdw8OHD88222yTrl392kdtrOjYXVYffPBBZS2Uurq6fOpTn2qT8/gJYpX22muvZcyYMUkWLFq4xx571DgRLN7GG2+cG264IcOHD89bb72Vm266KTfddNMi+3Tr1i1HHHFEzjzzzNTV1dUoKSxqww03rGxPnDhxibczPPvss5XttppKC4uzzTbbrNBxM2bMqGwv7Tbf1lPFF97eAyvLio7h7bfffiUngeWzomN3Wf3oRz+qXKu/8IUvtNmME396Z5V2yy23VJ4RfsIJJxQuKgTtwY477pgrr7yy8ILfu3fvbLrppkoT2pXWRcktt9xSuN/06dPz8MMPV772ZAc6gg8++KCy/eGnRX1Y64WRWx8HQNsYN25c5Vb2urq6nHbaaW12LjNOWGXNnj07d9xxR5JkzTXXzIEHHljbQLAETU1NOfvssytTDYcMGZK99tor/fr1yxtvvJG77rorU6ZMyUUXXZT77rsvN9xwQ5tNeYTl8YUvfCEbb7xxXnvttTz44IO54YYb8i//8i+L7DN37twMHz58kSfpKLLpCObPn1/ZXlpx0vr11scBsPL94Q9/yBlnnFH5I/mwYcOy1VZbtdn5FCessn75y19WFi089NBDl/qBB2rpzDPPrDzy8rzzzssxxxyzyOsnnnhiLrzwwowaNSq///3vc+655+bKK6+sRVRYRF1dXS6++OKccMIJaW5uzhVXXJFx48Zl3333Tf/+/fPqq6/mf//3fzN16tTstttuGTduXJIUPrYY2pPWBfXCx2IWaT2Laklr/QDw8Tz11FP56le/WvmDzJe+9KWcdNJJbXpOt+qwynrooYcq2/vss08Nk8CS/f73v6+UJgcddNBHSpNkwS+nF1xwQeVxrr/4xS/ywgsvVDUnFNl5551z5ZVXVn7JfOKJJ3LRRRfljDPOyFVXXZWpU6dmv/32y9lnn105ZuEjuKE9a7348dJuL5s3b15l24xAgLYxbty4fOUrX6ksOP/5z38+V155ZZs/AERxwipp7ty5GT9+fJJk4MCBHglIu/bAAw9Uto866qjC/erq6hYpVR555JG2jAXLZZ999skvf/nLHHXUUdloo41SX1+fNddcM7vttluuv/76XHnllZk9e3Zl/7XWWquGaWHZ9O7du7K9tAVf33vvvcp2//792yoSQKd1++2355RTTqnMNNl1111z/fXXV+XOArfqsEp67LHHKn/52XvvvWucBpbs1VdfrWxvueWWS9y39b2bb7zxRptlghWxwQYb5IILLih8ffLkyZXtTTfdtBqR4GMZOHBgZfuvf/3rEvdt/fr666/fVpEAOqXrrrsuP/zhDytf77333rniiiuqthyDGSeskn7zm99Utvfcc88aJoGlK5fLle3WU70Xp/U0RE/XoaP5/e9/n2TBwrCf/OQna5wGlm7QoEGV7aXdHtn69S222KLNMgF0Nj/4wQ8WKU0OP/zwXH311VVdw1JxwirpmWeeSbJgcTa36dDerbvuupXtiRMnLnHf559/vrLtL5q0B5MnT85pp52WI444Io8++mjhfh988EF+/etfJ0k+9alPpV+/ftWKCCts0003zZprrpkkefzxx5e478LX+/btqzgBWEl+8pOf5Cc/+Unl65NOOikXXXRRm69p8mGKE1Y58+bNy5QpU5Is+IuPp+nQ3n32s5+tbN90002F+5XL5dx6662Vr3fZZZc2zQXLomfPnrn//vvzzDPPVB6nvTi33nprZY2IL3/5y1VKBx9Ply5dKjNXJ06cmD/84Q+L3e+pp57Ks88+m2TB9PFqf6AHWBX97ne/W+QpkmeccUa+/vWv1ySLqzqrnJdeeinNzc1JYio4HcKXvvSlbLDBBkmSsWPH5vrrr//IPuVyOd///vcrtzrssssuZlPRLmy44YbZZpttkiT33HPPYn+xHDduXK666qokyUYbbZSDDz64mhHhYzn22GPTteuCZQHPPvvsvP3224u8/tZbb+Wcc85JsuAWyn/+53+uekaAVc28efNy7rnnVm5pP/bYY3PyySfXLI/FYVnlvPbaa5XtAQMG1DAJLJv6+vpcfvnlOeGEE9LU1JSrr746Dz30UPbff/+ss846mTZtWu6+++7KXzP79++f73znOzVODX935plnVsbvMccck0MPPTTbbbddmpqa8uijj+aBBx5IS0tLunXrlu9973tmAtKhDBo0KMcdd1x++tOf5pVXXskBBxyQo446Kptuumlefvnl3HrrrZk+fXqS5MQTT8xmm21W48QAHd/o0aMzderUJAtmt37605/OQw89tNTjNt100za5DitOWOW89dZble1evXrVMAksu5122in/8R//keHDh6ehoSETJ05c7HonAwcOzHXXXWd9E9qVz372s7ngggty8cUXp6mpKbfeeusit5UlSb9+/XLVVVfl05/+dI1Swoo766yz8u6772b06NGZPn16rrnmmo/sc+ihh9ZsCjnAqmb06NGV7dmzZy/z9XXYsGE59dRTV3oexQmrnNmzZ1e2e/fuXcMksHw+//nP58EHH8xtt92WsWPH5qWXXsrs2bPTu3fvDB48OHvttVcOOeQQf62nXTryyCOz/fbb58Ybb8zjjz+eadOmpVu3btl0002zxx575Oijj07fvn1rHRNWSF1dXb773e9m3333zciRI/OnP/0pDQ0N6dWrV7bbbrsceeSR+eIXv1jrmACrjNYPRGgPSuXWz8EEAAAAoMLisAAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAFFCcAAAAABRQnAAAAAAUUJwAAAAAF/n8dYRsg/HuzEAAAAABJRU5ErkJggg==\n", "text/plain": [ - "
" + "
" ] }, - "metadata": {}, + "metadata": { + "image/png": { + "height": 201, + "width": 551 + } + }, "output_type": "display_data" } ], "source": [ - "sns.histplot(x=pricesW)" + "sns.histplot(x=prices)" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "8455cb4d-6c7b-4341-80a2-bd67126f5383", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 16, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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ESIfAAAAEiHyAQAAIBEiHwAAABIh8gEAACARIh8AAAASIfIBAAAgESIfAAAAEtE26wEAWrrK8m1RkfUQn0Lljm01fq01/5mAnc9NALArkQ9Qiy0rHs96hEa35a30/kwAADhcHwAAAJIh8gEAACARIh8AAAAS4Zx8gCr22WefmDFjRtZj0Mxef/31KCsri4KCgjjyyCOzHgfqper63WeffbIeB4CMiXyAKvLy8qJz585Zj0EzKywszEWS//60NlXXb16egzQB9nb+JgAAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEtG2sByovL692e8uWLY310HuFioqK3D83b96c8TRQP9YvrZ01TGtm/dKaWb+0ZrWt312beNdmbiptKisrKxvjgdauXRvvvPNOYzwUAAAAJKVHjx7RtWvXJv85DtcHAACARIh8AAAASESjnZNfVFRU7Xb79u0jPz+/sR4eAAAAWo3y8vLYtm1b7vauzdxUGu2cfAAAACBbDtcHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEhE26wH2NtMmTIlfvnLX9b7+y688MK49dZbm2AiaJjt27fHH//4x3j88cdj6dKlsWXLlujcuXP06dMnLrjggujfv3+0adMm6zGhRps3b44ZM2bE/PnzY+XKlbF9+/bo1q1bnHrqqXH55ZfHQQcdlPWIUM3NN98cM2fOjFGjRsW1115b6/7FxcUxa9aseOWVV2Ljxo2x3377xTHHHBODBw+Or3zlK80wMVRX3zX8sREjRsQzzzwTP/3pT+Oiiy5qwgmhZvVZux999FE89NBDMX/+/Fi2bFls2rQpCgsL4+CDD44zzzwzBg8eHIWFhU0+s8hvJcQSLcmaNWtixIgR8e9//7va199///1YsGBBLFiwIE4//fSYPHlydOjQIaMpoWavvPJKjBw5MtatW1ft6ytXroyVK1fG7NmzY+zYsXHllVdmMyDs4rnnnovZs2fXad+Kioq48cYb48EHH6z29ffeey/ee++9mDdvXgwdOjR+9KMfeW1Bs6nPGq5qzpw58cwzzzT+QFBH9Vm7S5YsiVGjRsU777xT7eslJSXx0ksvxUsvvRS/+93vYurUqXHUUUc1xbg5Ir+ZnXPOOXHEEUfUut+GDRvipptuih07dkRhYWEMHz68GaaD2pWVlVUL/P/7v/+Liy++OA444IB46623Yvbs2fHBBx9EcXFxjBkzJqZNm5bxxPA/K1asiCuvvDJKS0sjIqJnz54xcODA6NatW7z11lsxa9asWLduXfz0pz+N8vJyz71kbvHixTFq1KioqKio0/533nlnLvAPOOCAGDJkSHTv3j1WrFgRM2fOjA8++CBmzJgR++23X4wcObIpR4eIqP8a/lhxcXHceOONTTQV1K4+a3fNmjUxfPjweP/99yMi4otf/GKcc8450bVr11i3bl089thjsWjRonjvvfdi+PDh8dBDD0X37t2bbHaR38wOOeSQOOSQQ/a4T2VlZVx11VWxY8eOiIi45ZZbonfv3s0xHtRq7ty5ucA/44wzYvLkyfGZz3wmd/9ll10Ww4YNiyVLlsTTTz8dCxcujL59+2Y1LlQzbty4XOD3798/Jk6cGO3atcvdP3To0Bg2bFi89tprMWnSpDj11FPj0EMPzWpc9nLFxcUxduzY2Lx5c532f/PNN2P69OkREfGFL3whfv/730fnzp1z919yySUxdOjQePvtt2Pq1Klx/vnnN+mLTKjvGv7YnDlzYvz48VFWVtZEk8Ge1XftTpo0KRf4V199dYwdO7ba/ZdffnlMnDgxpk+fHhs2bIhbb701pkyZ0uhzf8yF91qgWbNmxcKFCyMi4hvf+Eacc845GU8E/zNv3ryIiMjLy4sJEyZUC/yIiC5dusQPf/jDT+wPWXvppZdi0aJFERFx8MEHx+23314t8CMiOnfuHHfeeWcUFBTEjh074le/+lUWo7KX2759e/ziF7+Ia665JjZu3Fjn77vvvvuivLw8IiJuuummaoEfEdG1a9e47bbbImLnUVm//e1vG29oqKKha3jTpk1x4403xg9+8IPYvn17E04INWvI2t20aVM8+uijERFx1FFHxZgxY2rcb8yYMbnD9J988snYsGFD4wxdA5HfwqxduzYmTpwYERFFRUUxbty4jCeC6t59992I2BnzXbt2rXGfY489Nre9evXqZpkLavPss8/mtr/1rW9F+/bta9yvR48eccYZZ0RExFNPPRVbtmxplvkgIuLvf/97DBgwIO66666oqKiIDh06xLBhw2r9voqKinjiiSciIuLQQw+NE044ocb9jjvuuNyLzCeeeCIqKysbb3iIhq/hP//5z9G/f/944IEHImLn64xBgwY19biQ09C1+69//St31MnXv/713V7vpE2bNtG/f/+I2Pmc/eqrrzbe8LsQ+S3MxIkTc4eSjh07Nvbdd9+MJ4Lq9tlnn4iIWL9+fW6t7qpq2Hfp0qVZ5oLavPnmm7nt2q4ufswxx0RExNatW2Px4sVNOhdU9cgjj+R+mXr00UfHgw8+mPul054sW7YsSkpKIiLipJNO2uO+H9+/du3aWLp06acbGHbR0DX8wAMPxPr16yMiom/fvjF37txqbxpAU2vo2t2xY0ccdthh0blz5+jZs+ce9616hFV9jnKpL+fktyBLliyJRx55JCJ2/hb+4osvzngi+KRjjjkmXnnllaisrIx77723xo8S+fWvf53bdj4+LcWmTZty27s7CuVjRUVFue033ngjTjzxxKYaCz6hS5cuMWrUqBg0aFDk5+fnwmdPli1bltuu7ToSVa/zs2TJkjj88MMbPizUoCFrOCKie/fuMWbMmDj33HObeEKoWUPWbr9+/aJfv351evzly5fntqu+1mhsIr8FmTJlSu6wue9+97uRl+dAC1qeK664IubMmRNbtmyJqVOnxsaNG2PQoEHRrVu3WLVqVfzmN7+Jhx9+OCIiTjzxxDjvvPMynhh2qvpxjtu2bYuCgoLd7lv1Qjtr165t0rmgqksvvTRuuummT1zvpDZVj6Cq7WJ6BxxwQI3fB42hoWt49OjR0adPn2jbVp6QjYau3braunVr7tz9/Pz8OProo5vk50SI/BZj1apV8fTTT0fEzgtCnXnmmRlPBDU76KCDYvr06TF69OhYs2ZN3H///XH//fdX26egoCAGDRoUY8aMifz8/IwmheoOPPDA3PbixYv3eEjza6+9lttuysPpYFd9+vRp0Pd98MEHue3aTvWrerjox4f4Q2Np6Bo+7rjjGnkSqJ+Grt26uuuuu3LP1aeddlqTvpPvreIWYsaMGbnPYBw2bNhuL9gALcEJJ5wQkyZN2u2TU6dOnaJXr14CnxalatTPmDFjt/utX78+nnrqqdxtV3imNdi6dWtue9dPjdhV1YtOVv0+AJpGcXFx7nTW/Pz8uO6665r053knvwUoLS2NOXPmRETE/vvvHxdccEG2A8EelJWVxQ033JA73Oikk06Ks846K/bdd99499134+GHH47ly5fHhAkT4i9/+UtMnz69yQ57gvo47bTT4qCDDopVq1bF/PnzY/r06XH11VdX2+ejjz6K0aNHV7uivl+60hrs2LEjt11b5Fe9v+r3AdD4Xn755bj++utzb+iOGjUqjjzyyCb9mSK/BXjsscdyF4QaOHBgrX85Q5bGjBmT+5imH//4xzF06NBq9w8fPjxuvvnmeOCBB+KFF16IcePGxaRJk7IYFarJz8+PW265JYYNGxbl5eUxceLEKC4ujgEDBkSXLl3i7bffjj/84Q+xevXqOP3006O4uDgiYrcftQctSdVfpn78UU67U/XolD1dmwKAT+fFF1+Mb3/727k3D/r16xfXXHNNk/9ch+u3AE8++WRu++yzz85wEtizF154IRf4F1544ScCP2JnSI0fPz73EWSPPvpovPHGG806J+zOl7/85Zg0aVIuiP75z3/GhAkT4vrrr4877rgjVq9eHeeee27ccMMNue/5+GMjoSWremHJ2k4x2bZtW27bkVYATaO4uDiuuuqq3MV8TznllJg0aVKzXFxd5Gfso48+iueeey4iInr27OljbGjR5s2bl9seMmTIbvfLz8+v9guAZ555pinHgno5++yz47HHHoshQ4ZEjx49ol27drH//vvH6aefHtOmTYtJkyZFaWlpbv/PfvazGU4LddOpU6fcdm0X0/vwww9z2126dGmqkQD2Wg8++GCMHDky9w7+qaeeGtOmTWu2I7Ydrp+xv/3tb7nfqPfv3z/jaWDP3n777dz2YYcdtsd9q55r9O677zbZTNAQ3bt3j/Hjx+/2/qVLl+a2e/Xq1RwjwafSs2fP3PZ//vOfPe5b9f5u3bo11UgAe6WpU6fGnXfembvdv3//mDhxYrOeku2d/Iw9++yzue2vfe1rGU4CtausrMxtVz3csyZVD0VylX1amxdeeCEidl5074gjjsh4Gqhd7969c9u1nSJV9f5DDz20yWYC2Nv8/Oc/rxb4l1xySUyePLnZr7km8jO2aNGiiNh54RuH6tPSff7zn89tL168eI/7Llu2LLftnSJagqVLl8Z1110XgwYNioULF+52v61bt8Zf//rXiIg4+uija/3McWgJevXqFfvvv39ERDz//PN73Pfj+4uKikQ+QCO555574p577sndvuaaa2LChAnNcg7+rkR+hrZt2xbLly+PiJ2/SXdVfVq6k08+Obd9//3373a/ysrKmDlzZu523759m3QuqIvCwsJ44oknYtGiRbmPgKzJzJkzc+c0f/Ob32ym6eDTycvLyx0RuHjx4nj55Zdr3O/FF1+M1157LSJ2HkKaxYtPgNT84x//qPZpUtdff31873vfy2wez+wZWrFiRZSXl0dEOByUVqFfv37RvXv3iIhYsGBBTJs27RP7VFZWxu2335473Llv376OUqFFOPDAA6NPnz4REfGnP/2pxggqLi6OO+64IyIievToERdddFFzjgifymWXXRZt2+683NINN9wQ69atq3b/mjVr4vvf/35E7DyN6oorrmj2GQFSs23bthg3blzutNbLLrssvvOd72Q6kwvvZWjVqlW57f322y/DSaBu2rVrF7fddlsMGzYsysrKYvLkyfHkk0/GeeedF5/73Odi7dq18cgjj+TeJerSpUv85Cc/yXhq+J8xY8bk1u/QoUNj4MCBceyxx0ZZWVksXLgw5s2bFxUVFVFQUBA/+9nPHGFFq9K7d++4/PLL4957742VK1fG+eefH0OGDIlevXrFW2+9FTNnzoz169dHRMTw4cPjkEMOyXhigNZv7ty5sXr16ojYedTg8ccfX+0j0nenV69eTfY8LPIztGbNmtx2x44dM5wE6u5LX/pS3H333TF69OgoKSmJxYsX13h+fs+ePWPq1KnOx6dFOfnkk2P8+PFxyy23RFlZWcycObPaqSUREfvuu2/ccccdcfzxx2c0JTTc2LFjY8OGDTF37txYv359TJky5RP7DBw4MNPDSAFSMnfu3Nx2aWlpnZ9fR40aFddee22TzCTyM1T1c5irfr4ttHSnnHJKzJ8/P2bNmhULFiyIFStWRGlpaXTq1CkOP/zwOOuss+Liiy/2Ligt0uDBg+O4446L++67L55//vlYu3ZtFBQURK9eveLMM8+MSy+9NIqKirIeExokPz8/br311hgwYEDMnj07Xn311SgpKYmOHTvGscceG4MHD46vfvWrWY8JkIyqF5tuKdpUVv1MLAAAAKDVcuE9AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASITIBwAAgESIfAAAAEiEyAcAAIBEiHwAAABIhMgHAACARIh8AAAASMT/A5Dw7bMLqbh4AAAAAElFTkSuQmCC\n", "text/plain": [ - "
" + "
" ] }, - "metadata": {}, + "metadata": { + "image/png": { + "height": 201, + "width": 508 + } + }, "output_type": "display_data" } ], "source": [ - "sns.boxplot(x=pricesW)" + "sns.boxplot(x=prices)" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "7d6743af-1055-416f-9e1d-517c2ef1e988", "metadata": {}, "outputs": [ - { - "ename": "NameError", - "evalue": "name 'savefig' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[17], line 20\u001b[0m\n\u001b[1;32m 17\u001b[0m sns\u001b[38;5;241m.\u001b[39mboxplot(x\u001b[38;5;241m=\u001b[39mpricesW, ax\u001b[38;5;241m=\u001b[39max3)\n\u001b[1;32m 18\u001b[0m ax3\u001b[38;5;241m.\u001b[39mset_xticks(\u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m7\u001b[39m,\u001b[38;5;241m13\u001b[39m))\n\u001b[0;32m---> 20\u001b[0m \u001b[43msavefig\u001b[49m(fig, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfigures/epricesW_strip_hist_box_plots.png\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[0;31mNameError\u001b[0m: name 'savefig' is not defined" - ] - }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAowAAADaCAYAAAAsexMVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtUUlEQVR4nO3deVxU9d4H8M+wzQACCsgmIKDGomK5iwuiQg+pdeuW5Ypat3yyzHxuT5m3ULuGWnnrZuq163bzuqSpt8UlJLdyQ9RyT00BRUJcGEBmWOb3/OEzExPDYRhm5uD4eb9e83oxZ5nzGThfznfONgohhAARERERUT2c5A5ARERERM0bG0YiIiIiksSGkYiIiIgksWEkIiIiIklsGImIiIhIEhtGIiIiIpLEhpGIiIiIJLFhJCIiIiJJbBiJiIiISNJ90TDOnj0bcXFx0Ol0jZ53wIABmDp1qtWynD59GjNnzsTly5cbNd/AgQMxcOBAq+VojJkzZ0KhUFg075o1a/Dhhx9aNxDdE35fd5cvX4ZCocD777/f4LzLli1DmzZtUF5ebtayBg4ciE6dOjU4nT7DypUrzXpdPVutx5bmASz/X0KOyZLtXFVVFdq1a2f2ur17924oFAps3LjRwpTyYJ1Zh8M3jAUFBZg/fz5mz54NJ6fGv9133nkHixYtwrlz56yS5/Tp05g1a1ajV75FixZh0aJFVslgT2wY709Nrbu0tDR4enpi/vz5Vs0VHByMAwcOYOjQoY2arzmux5b+LyHHY2m9ubq64u2338bs2bNx48YNGya8d7HOfuPwDeNHH32Eli1b4oknnrBo/sTERERHR+ODDz6wcjLz3LlzBwAQFxeHuLg4WTIQNVZT687FxQUvvPACPvroI0MNWINSqUTv3r3RunVrq70mkdyaUm8jR46EQqHAP/7xDxskI0fi0A1jZWUlli1bhlGjRtX51DVr1iz06tULvr6+8Pb2RteuXbFs2TIIIeq8ztixY7FmzRqUlpY2uMzFixejS5cuaNGiBby8vBATE4M333wTALBy5Uo89dRTAICkpCQoFAqj3eT6w2p79+5FQkICPDw8MHHiRMO42oek9bvY58+fjzlz5iA8PBwqlQrdu3dHVlZWgzn1hxZWr16NadOmISgoCO7u7khMTMSxY8canF+n02H+/PmIiYmBUqlEQEAAxo0bhytXrhimGThwIL755hvk5uYa3qulh7bp3iFVd8DddcecdXb06NFQq9VYt26d2cvOzs5G//794eHhgaioKMydO9foEJ2pQ1PXr1/H888/j7CwMCiVSrRu3Rp9+/bFzp07AVi2HkdERGDYsGHYvHkz4uPjoVKpEBUVhb///e9mvY/vv/8egwcPhpeXFzw8PJCQkIBvvvnGML6h/yV0/5CqN61Wi9mzZyM2NhYqlQp+fn5ISkrC/v37DdO4ubnh6aefxtKlS01u/0zRaDRmbTe+/PJL9OnTBx4eHvDy8kJycjIOHDhgGL9u3TooFAosXLjQaL709HQ4OzsjMzNTMgfrzM6EA9u7d68AILZu3Vpn3Pjx48WyZctEZmamyMzMFO+8845wd3cXs2bNqjPtoUOHBADx5ZdfSi5v7dq1AoB4+eWXxbfffit27twplixZIqZMmSKEEKKoqEi8++67AoD45JNPxIEDB8SBAwdEUVGREEKIxMRE4evrK8LCwsTHH38sdu3aJfbs2WMYl5iYaFjWpUuXBAARFhYm+vXrJ7744guxYcMG0aNHD+Hq6ir2798vmXXXrl2G+R977DHx1VdfidWrV4v27dsLb29vcfHiRcO06enp4veryvPPPy8AiJdeekls375dLFmyRLRu3VqEhYWJ69evCyGEOHXqlOjbt68ICgoyvNcDBw5I5qJ7X311Z8k6GxsbK5544okGl5mYmCj8/PxEhw4dxJIlS0RmZqZ48cUXBQCxatWqOhlWrFhhGPbwww+L1q1bi6VLl4rdu3eLLVu2iLffflusW7dOCGHZety2bVvRpk0bER4eLpYvXy62bt0qRo8eLQCI9957TzLP7t27haurq+jWrZtYv3692LJli0hJSREKhcKQqaH/JXT/qK/eqqqqRFJSknBxcRF//vOfxdatW8WXX34p3nzzTbF27VqjadevXy8AiJ9++klyWY3Zbvz73/8WAERKSorYsmWLWL9+vejWrZtwc3MT+/btM0w3adIk4ebmJrKzs4UQQmRlZQknJyfxl7/8pcH3zjqzL4duGOfNmycAiMLCQsnpampqRFVVlZg9e7bw8/MTOp3OaHxlZaVQKBTi9ddfl3ydl156SbRs2VJymg0bNggAYteuXXXGJSYmCgAiKyvL5DhTDWNISIioqKgwDFer1cLX11cMGTJEMoe+8Lt27Wr0fi9f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\n", + "image/png": "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8pC///5bX375pTZv3qy///5biYmJCgsLU+3atXXvvfdm+D1sz+zzI2nMyI2uzzOioqIUFBSksmXLqkmTJurWrZsaNmyY4bpPPPGE1q9fL0kqW7asVq5cmWl/vvjii/rqq68kSTfddJOWLFmiggULOn2snPsAcofiA9xi0aJFSkxMlCTde++9WbY9f/68RowYoe3bt6d7LTExUbGxsTp58qS+//57ffLJJ5o1a5ZKly6d6fYKFSqktm3baunSpdq0aZNOnDihSpUquXwM165d06hRo7R27dp0r/3zzz/6559/tH79ek2fPl3Tp09X/fr1Xd7H9VatWqXhw4fLZrNJks6cOaMzZ84oMjLSpe3YbDaNGTNGX375pcPzp0+f1vLly7V8+XL1799fL774ogICcn8DlNVq1RNPPKENGzY4PH/ixAmdOHFCixcv1lNPPaVHH300x/tYuHCh3nzzzXQTV0ZFRSkqKko7d+7URx99pBdeeEH3339/jvcDAPBfruQnaU6cOKFBgwbpxIkTDs///vvv+v333zV37ly9/vrrateuXZbbueGGG3Tbbbdp27ZtWrZsmZ555hmnix+ZOXnypB5//HEdOnTI4flTp07p1KlTWrVqlbp3767XX38924s3rhcdHa0hQ4Zo165dDs9brVbFx8fr5MmTWrFihWbMmKFZs2aZcsLfGTExMXr00Uf122+/OTx/9OhRHT16VAsWLND48ePVpUuXHG0/JSVFM2fO1IwZM5SUlOTw2vnz53X+/Hlt3bpVs2bN0htvvKG77rorp4cCAMhnXMlDUlJSNHnyZH388cdKTk52eO38+fPauHGjNm7cqLlz52rGjBkqW7Zshtsx6/yIPTNyo8OHD2vUqFE6cOCAw/MJCQk6duyYjh07poULF6pjx44aP358uoL/a6+9pp07dyomJkbnzp3Tu+++q7Fjx6bbz4YNG4zCQ3BwsCZOnOhS4eF6nPsAXEfxAW6xdOlSSamTLDZq1CjTdvHx8erbt68x/ECxYsXUqlUrVa1aVSEhITp37py2bNmiI0eOSEr9MnvxxRf14YcfZrn/Fi1aaOnSpbLZbPrmm29cPnkvpX6ZpRUeChcurNatW6tatWqyWCw6efKkVq1apbi4OJ07d06DBw/W6tWrVaJECUlSp06dVLNmTW3evFmbN282nqtbt64kqV69eun2d+nS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equ+/fZbzZ07Vz/++KNOnDghq9WqwoULq0KFCqpbt666dOmixo0bKyEhQcWKFdPly5e1bds2/fPPP6pQoUKG200bHiAgIED/+c9/cnQMwcHBevPNN3X//ffrm2++0e7du3Xq1CkjjgoVKqhly5bq3r27KleunOE2ChYsqHnz5mnSpEnavHmzYmJiVKBAASUkJOQoJmeFhobqk08+0eLFi/XVV1/p0KFDSkhIUOXKlXXnnXdqwIABmfZdTpQqVUpffvml5s+fr2XLlunYsWOy2WyqVq2a2rZtq759++bq6gJJ6tevn9q3b68FCxZo06ZN+vvvv3X58mWFhoaqevXquuuuu/TAAw9kuR+LxaLZs2frvffeM65ctL+jBgDg35zNT+zVqVNHy5Yt00cffaR169bp9OnTKlSokGrUqKFOnTqpZ8+eWf7Bby8tPylatGie/8OvSJEi+vjjj7Vx40Z999132rt3r86ePSur1aoSJUqoUqVKatWqlbp3766yZctmuI0yZcroiy++0Hvvvaft27fr8uXLKly4cLaTKGalatWqWrZsmT799FN9//33OnHihAICAhQeHq4OHTrogQceyNUVnRaLRcOHD1f37t21cOFCbdmyRadOndKVK1dUtGhRRUREqG3bturevbvDkAbX81YOCADIu1zJQywWi0aMGKEuXbpowYIF2rJli06fPq1r166pZMmSuuWWW9SjRw+1atUq2/2acX7Enhm5UY0aNbRs2TKtWLFCa9as0d69e405nSpUqKDGjRure/fuxjwI9g4cOGBc0CBJzz//fKbnAUJCQvTqq6+qX79+stlsWrVqlb777jvde++9OTp2zn0ArrPYMhrIHsilCxcuqHXr1rJarWrfvn2uKsuuunz5spo3by6r1aq7775b06dP99i+vWnx4sV6/vnnJaVWy4cOHerW/U2dOtWYBGnChAnq3r27W/cHAEBueTM/OXLkiDFR4oMPPpjh+LzI2OjRo427HObOneswdAUAAL7CG3lIfj0/YibOfQC5w4TTcIvSpUvrvvvukyRt2LBB0dHRHtv3t99+a4z79/DDD3tsvwAAIG/zZn7y9ddfS0odB/jBBx/02H4BAEDe4I08hPMjALyN4gPc5vHHH1dwcLCsVmuG4wC6g81m07x58yRJzZs312233eaR/QIAAN/gjfzk6tWr+uqrryRJ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\n", "text/plain": [ "
" ] }, - "metadata": {}, + "metadata": { + "image/png": { + "height": 184, + "width": 783 + } + }, "output_type": "display_data" } ], @@ -585,17 +637,17 @@ " fig, (ax1, ax2, ax3) = plt.subplots(1,3)\n", "\n", " ax1.set_title(\"(a) strip plot\")\n", - " sns.stripplot(x=pricesW, ax=ax1, jitter=0)\n", - " ax1.set_xticks(range(7,13))\n", + " sns.stripplot(x=prices, ax=ax1, jitter=0)\n", + " ax1.set_xticks(range(6,13))\n", "\n", " ax2.set_title(\"(b) hist plot\")\n", - " sns.histplot(x=pricesW, ax=ax2)\n", - " ax2.set_xticks(range(7,13))\n", + " sns.histplot(x=prices, ax=ax2)\n", + " ax2.set_xticks(range(6,13))\n", " ax2.set_yticks(range(0,5))\n", "\n", " ax3.set_title(\"(c) box plot\")\n", - " sns.boxplot(x=pricesW, ax=ax3)\n", - " ax3.set_xticks(range(7,13))\n", + " sns.boxplot(x=prices, ax=ax3)\n", + " ax3.set_xticks(range(6,13))\n", "\n", "savefig(fig, \"figures/epricesW_strip_hist_box_plots.png\")" ] @@ -626,22 +678,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "a746d4e7-a90b-498f-ac4b-67521aadd149", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "9" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "len(pricesW)" + "len(prices)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "71a0a111-acc0-4140-ad01-49a3959e5ee9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "9.155555555555555" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "mean(pricesW)" + "mean(prices)" ] }, { @@ -662,10 +736,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "e4b22ff8-db8a-413b-bc55-61f2b64a0de9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " East West\n", + "0 7.7 11.8\n", + "1 5.9 10.0\n", + "2 7.0 11.0\n", + "3 4.8 8.6\n", + "4 6.3 8.3\n", + "5 6.3 9.4\n", + "6 5.5 8.0\n", + "7 5.4 6.8\n", + "8 6.5 8.5\n" + ] + } + ], "source": [ "DATA_URL = \"https://nobsstats.com/datasets/epriceswide.csv\"\n", "\n", @@ -676,7 +767,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "38c52689-1b5a-4053-8f76-c10a7b76cd72", "metadata": {}, "outputs": [], @@ -686,17 +777,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "927b21a6-7b75-4ac5-b93c-2b5632e0b608", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.series.Series" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(pricesW)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "id": "cd3b487a-545b-4680-b315-2e7d0471d63d", "metadata": {}, "outputs": [], @@ -723,30 +825,92 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "70075246-d2b0-48f0-9c26-b00b20c05bc7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "9" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "pricesW.count()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "4bf01229-90ea-4352-a26e-7d4fa6c766c2", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "9.155555555555557" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "pricesW.mean()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, + "id": "aaff543c-6428-48b7-922a-3b3273324402", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.5621388471508475" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pricesW.std()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, "id": "81a08643-8207-4130-93f8-8e9227f54c2e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "count 9.000000\n", + "mean 9.155556\n", + "std 1.562139\n", + "min 6.800000\n", + "25% 8.300000\n", + "50% 8.600000\n", + "75% 10.000000\n", + "max 11.800000\n", + "Name: West, dtype: float64" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "pricesW.describe()" ] @@ -761,1061 +925,135 @@ }, { "cell_type": "markdown", - "id": "66858e0a-d5d6-4d19-8023-d5cc3c9629b3", + "id": "345999ef-eab8-4c4d-b590-38cffc41460f", "metadata": {}, "source": [ - "### Understanding probability distributions" + "### Data cleaning" ] }, { - "cell_type": "markdown", - "id": "ebd06710-51b1-4486-84f3-3d5c24db0471", + "cell_type": "code", + "execution_count": 29, + "id": "70161723-bfab-4810-9cef-49cff61aa74d", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " East West\n", + "0 7.7 11.8\n", + "1 5.9 10.0\n", + "2 7.0 11.0\n", + "3 4.8 8.6\n", + "4 6.3 8.3\n", + "5 6.3 9.4\n", + "6 5.5 8.0\n", + "7 5.4 6.8\n", + "8 6.5 8.5\n" + ] + } + ], "source": [ - "A random variable ...\n", + "import pandas as pd\n", "\n", - "described by\n", - "\n" + "DATA_URL = \"https://nobsstats.com/datasets/epriceswide.csv\"\n", + "epriceswide = pd.read_csv(DATA_URL)\n", + "print(epriceswide)" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "ec5cff0c-043f-46e2-b9dd-55b61562311f", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "16767a22-5e52-4303-9ac6-00380ac765ea", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", - "id": "ca16dacc-b0bb-4219-8a9e-fb64976d41ed", + "id": "7a20430b-47bc-4eed-b536-d2c220f6bc3b", "metadata": {}, "source": [ - "#### Building computer models for probability distributions" + "Click [here](https://pandastutor.com/vis.html#code=import%20pandas%20as%20pd%0Aimport%20io%0A%0Aepriceswide_csv%20%3D%20'''%0AEast,West%0A7.7,11.8%0A5.9,10.0%0A7.0,11.0%0A4.8,8.6%0A6.3,8.3%0A6.3,9.4%0A5.5,8.0%0A5.4,6.8%0A6.5,8.5%0A'''%0A%0Aepriceswide%20%3D%20pd.read_csv%28io.StringIO%28epriceswide_csv%29%29%0A%0Aepriceswide.melt%28var_name%3D%22end%22,%20value_name%3D%22price%22%29&d=2023-07-02&lang=py&v=v1) to see a visualization of the above melt operation." ] }, { - "cell_type": "markdown", - "id": "8b2acf54-1940-466d-8289-cd2c223f124e", + "cell_type": "code", + "execution_count": 30, + "id": "f2172968-641c-4951-a722-029ac2bc853b", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " end price\n", + "0 East 7.7\n", + "1 East 5.9\n", + "2 East 7.0\n", + "3 East 4.8\n", + "4 East 6.3\n", + "5 East 6.3\n", + "6 East 5.5\n", + "7 East 5.4\n", + "8 East 6.5\n", + "9 West 11.8\n", + "10 West 10.0\n", + "11 West 11.0\n", + "12 West 8.6\n", + "13 West 8.3\n", + "14 West 9.4\n", + "15 West 8.0\n", + "16 West 6.8\n", + "17 West 8.5\n" + ] + } + ], "source": [ - "The standard normal distribution is denoted $Z \\sim \\mathcal{N}(\\mu=0,\\sigma=1)$,\n", - "where $Z$ is the name has the probability density function:\n", - "\n", - "$$\n", - " f_Z(z) = \\tfrac{1}{\\sqrt{2\\pi}} e^{ - \\frac{1}{2}z^2}.\n", - "$$\n", - "\n", - "The standard normal is a special case of the general normal $\\mathcal{N}(\\mu, \\sigma)$\n", - "where $\\mu$ is the mean and $\\sigma$ is the standard deviation.\n" + "eprices = pd.melt(epriceswide, var_name=\"end\", value_name='price')\n", + "print(eprices)" ] }, { - "cell_type": "markdown", - "id": "b15f8536-7e94-43fc-9c01-ac115e24a710", + "cell_type": "code", + "execution_count": 31, + "id": "37ed70f2-0a06-42bb-be5f-9bef646f44f2", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([11.8, 10. , 11. , 8.6, 8.3, 9.4, 8. , 6.8, 8.5]),\n", + " array([7.7, 5.9, 7. , 4.8, 6.3, 6.3, 5.5, 5.4, 6.5]))" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "To create a computer model for the random variable $Z$,\n", - "we can define the following Python function that performs the same calculation as the math function $f_Z$." + "pricesW = eprices[eprices[\"end\"]==\"West\"][\"price\"]\n", + "pricesE = eprices[eprices[\"end\"]==\"East\"][\"price\"]\n", + "\n", + "pricesW.values, pricesE.values" ] }, { "cell_type": "code", "execution_count": null, - "id": "eabedcd7-cb40-4806-9eab-f1e860a9b14c", + "id": "157b54eb-72ff-404a-a5c9-7b330fdba7dc", "metadata": {}, "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "def fZ(z):\n", - " const = 1 / np.sqrt(2*np.pi)\n", - " exp = np.exp(-1/2 * z**2)\n", - " return const*exp" - ] + "source": [] }, { "cell_type": "markdown", - "id": "29209544-25de-4cd2-a0e7-915219c4657c", + "id": "d23d66f9-3842-41c4-b6d4-48e039a9c42b", "metadata": {}, "source": [ - "Note the definition of the Python function `fZ` matches exactly the \n", - "calculations described in the complicated-looking math definition of $f_Z$ we saw above.\n", - "This is one of the key benefits of learning Python:\n", - "you can convert any math expressions into code expressions\n", - "then do computations with it." - ] - }, - { - "cell_type": "markdown", - "id": "61d16ed1-112e-4169-b1da-7a799cd14bb6", - "metadata": {}, - "source": [ - "We can now compute the value $f_Z(1)$ by calling the function `fZ` with input `1`:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cea5af88-b561-4d81-916f-dc13cb9145aa", - "metadata": {}, - "outputs": [], - "source": [ - "fZ(1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7e06bc6b-03bb-4da3-bc6d-097bec212140", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "da9e61a8-0caa-4ffa-9182-a274fefffb0e", - "metadata": {}, - "source": [ - "#### Predefined computer models\n", - "\n", - "Instead of defining our own function to use for computations,\n", - "we can use one of the pre-defined probability model families in the SciPy library.\n", - "\n", - "To create a computer model for the standard normal random variable $Z \\sim \\mathcal{N}(\\mu=0, \\sigma=1)$,\n", - "we need to \"import\" the `norm` model family form `scipy.stats` then call `norm(0,1)`\n", - "to initialize the model with parameters $\\mu=0$ and $\\sigma=1$." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bbaf06c0-d415-46fd-9002-70896cd3b00c", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.stats import norm\n", - "rvZ = norm(0,1)\n", - "# rvZ" - ] - }, - { - "cell_type": "markdown", - "id": "983cef74-990e-4539-8b7f-429b84ec15be", - "metadata": {}, - "source": [ - "The probability density function $f_Z$ is available as the `.pdf` method on the model `rvZ`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f6a34bd0-37ca-4347-a82f-9cfbabcdf2c8", - "metadata": {}, - "outputs": [], - "source": [ - "rvZ.pdf(1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0fab2bab-dfac-4ce4-960d-b614a8bf425c", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "8191f640-7916-456b-8946-1ddb19ae9991", - "metadata": {}, - "source": [ - "#### Probability model visualizations" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b1061670-cdb0-4de7-8136-d343c5cf17b6", - "metadata": {}, - "outputs": [], - "source": [ - "zs = np.linspace(-4, 4)\n", - "fZs = rvZ.pdf(zs)\n", - "sns.lineplot(x=zs, y=fZs)\n", - "\n", - "# FIGURES ONLY\n", - "ax = sns.lineplot(x=zs, y=fZs, color=\"b\")\n", - "ax.set_xlabel(\"$z$\")\n", - "ax.set_ylabel(\"$f_Z$\")\n", - "savefig(ax.figure, \"figures/pdf_of_rvZ.png\")" - ] - }, - { - "cell_type": "markdown", - "id": "e88417e2-1fef-4b14-b496-08595a587974", - "metadata": {}, - "source": [ - "The above graph tells you everything you need to know about the random variable $Z$.\n", - "The possible values of $Z$ are concentrated around the mean $\\mu=0$.\n", - "The region of highest density is roughly between $z=-1$ and $z=1$,\n", - "with most of values between $z=-2$ and $z=2$,\n", - "then the probability densities drops off to form long tails." - ] - }, - { - "cell_type": "markdown", - "id": "03cd7d2d-81ba-41f3-9b09-3dc01e3bc830", - "metadata": {}, - "source": [ - "The above graph shows the \"shape\" of the normal distribution $\\mathcal{N}(\\mu=0, \\sigma=1)$,\n", - "which is just one representative of the general normal distribution.\n", - "Here some examples of graphs of the normal distribution for choices of the parameters $\\mu$ and $\\sigma$\n", - "to give you an idea of what they do.\n", - "\n", - "![normal_panel.png](./attachments/normal_panel.png)" - ] - }, - { - "cell_type": "markdown", - "id": "f2bd2819-9ff6-45fa-b2ba-8ec0580659d3", - "metadata": {}, - "source": [ - "There are dozens of other probability distributions that can be useful for modelling \n", - "\n", - "You can take a look at the probability distirbution graphs here\n", - "\n", - "TODO links to other panels of pdfs\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ab2bd740-8baf-4642-a4a6-4399d37c9db1", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "7a061b53-653c-4dab-a5f1-f0fcda47123e", - "metadata": {}, - "source": [ - "### Doing probability calculations" - ] - }, - { - "cell_type": "markdown", - "id": "4be97b22-714f-4364-bb59-865c5bbee078", - "metadata": {}, - "source": [ - "Calculating probabilities with the continuous random variable $Z$ requires using *integration*,\n", - "which the process of computing the total are under a curve for some region.\n", - "For example, \n", - "the probability that the random variable $Z$ will have a value somewhere\n", - "between $a$ and $b$ is defined as $\\textrm{Pr}(\\{a \\leq Z \\leq b\\}) = \\int_{z=a}^{z=b} f_Z(z) dz$.\n", - "\n", - "In words ..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f9ec594b-dfa7-471f-b689-ac82c586d11b", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.integrate import quad\n", - "quad(rvZ.pdf, 1, 2)[0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9763d430-2b9e-4358-998a-066ea1227f71", - "metadata": {}, - "outputs": [], - "source": [ - "# FIGURES ONLY\n", - "zs = np.linspace(-4, 4, 1000)\n", - "fZs = rvZ.pdf(zs)\n", - "ax = sns.lineplot(x=zs, y=fZs)\n", - "mask = (1 < zs) & (zs < 2)\n", - "ax.fill_between(zs[mask], y1=fZs[mask], alpha=0.6, facecolor=\"red\")\n", - "savefig(ax.figure, \"figures/pdf_of_rvZ_highlight_1_to_2.png\")" - ] - }, - { - "cell_type": "markdown", - "id": "4806383c-0f6e-4922-958f-f74ab94c1765", - "metadata": {}, - "source": [ - "In statistics,\n", - "we often have to compute the probability in one or both tails of the distribution,\n", - "which corresponds the probability of observing \"extreme values\"\n", - "\n", - "$\\textrm{Pr}(\\{Z \\geq 2\\}) = \\int_{z=2}^{z=\\infty} f_Z(z) dz$" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1b986752-36ec-4aed-ae45-6aa0a19eed1d", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.integrate import quad\n", - "quad(rvZ.pdf, 2, np.inf)[0]" - ] - }, - { - "cell_type": "markdown", - "id": "a939e55f-3f47-429b-9130-1e0e3c31e08a", - "metadata": {}, - "source": [ - "The cumulative distribution function (CDF) $F_Z$ is defined as the integral \n", - "of the probability density function $f_Z$ up to some value $z=b$.\n", - "\n", - "$$\n", - " F_Z(b) = \\textrm{Pr}(\\{Z \\leq b\\}) = \\int_{z=-\\infty}^{z=b} f_Z(z)\\; dz.\n", - "$$\n", - "\n", - "The computer model `rvZ` provides the method `.cdf` which allows us to obtain the values of $F_Z$ directly.\n", - "For example, $F_Z(-2) = \\textrm{Pr}(\\{Z \\leq -2\\})$ can be computed as follows." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "68239ec2-b5b0-480a-a013-0b6e9e1b4e62", - "metadata": {}, - "outputs": [], - "source": [ - "rvZ.cdf(-2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a043f55f-1cbe-4f0b-a38f-9c19adbb11e0", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "28cf8a39-4e3b-4f98-9f07-efb5dca10ce1", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "#### Discrete random variables (bonus topic)" - ] - }, - { - "cell_type": "markdown", - "id": "e7225000-23a5-478e-8a13-37ad2c8eb2f6", - "metadata": {}, - "source": [ - "There is a whole other type of random variables called \"discrete\" random variables,\n", - "which are defined only for integers, like $0$, $1$, $2$, etc.\n", - "\n", - "For example, the Poisson random variable $H$ is defined by the probability mass function,\n", - "\n", - "$$ \n", - " f_H(h) = \\frac{\\lambda^{h}e^{-\\lambda }}{h!},\n", - "$$\n", - "\n", - "for $h$ any natural number, $0, 1, 2, 3, \\ldots$.\n", - "The parameter $\\lambda$ (the Greek letter lambda) is used to control the shape of the distribution.\n", - "This math formula includes the lambda raised to the power $h$,\n", - "the exponential function $e^x$,\n", - "and the factorial function $n!$.\n", - "That's a lot of math!\n", - "If you need to do some probability calculations for the random variable $H$,\n", - "and you're ever forced to do the calculations using only pen and paper,\n", - "that would be quite the chore!" - ] - }, - { - "cell_type": "markdown", - "id": "cdbe61f9-d5b9-43c8-90b4-8a32db6330f4", - "metadata": {}, - "source": [ - "Wouldn't it be simpler (and more efficient) to define a Python function\n", - "that corresponds to the math function $f_H$,\n", - "then do all the calculations using Python as a calculator?" - ] - }, - { - "cell_type": "markdown", - "id": "7a447e70-187c-400a-af85-9bbec207f51e", - "metadata": {}, - "source": [ - "Let's see this in action!\n", - "We'll initialize a `poisson` model with the parameter $\\lambda=20$." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5ddee77a-7061-4392-a886-59e15e719a3e", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.stats import poisson\n", - "\n", - "rvH = poisson(20)\n", - "# rvH" - ] - }, - { - "cell_type": "markdown", - "id": "5f1f8d6c-ebf1-468c-bde7-2342495563e4", - "metadata": {}, - "source": [ - "Having defined the computer model `rvH`, we can use it to:\n", - "- generate visualizations\n", - "- compute probabilities\n", - "- run simulations\n", - "- use `rvH` it as part of multi-step probability calculations\n", - "- anything else you might want to do with random variable $H$" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a561d5b3-4d81-48a0-9bf7-afdd77a5fb3f", - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "hs = np.arange(0,40)\n", - "fHs = rvH.pmf(hs)\n", - "plt.stem(fHs)" - ] - }, - { - "cell_type": "markdown", - "id": "3cb23373-0e13-408a-97c6-fa7405c0fb27", - "metadata": {}, - "source": [ - "Calculating the probability of $H$ being between $10$ and $20$\n", - "is done by summing over all the probabilities for that range of values of $h$.\n", - "\n", - "$$\n", - " \\textrm{Pr}(\\{10 \\leq H \\leq 20\\})\n", - " = \\sum_{h=10}^{h=20} f_H(h)\n", - " = f_H(10) + f_H(11) + f_H(12) + \\cdots + f_H(20).\n", - "$$\n", - "\n", - "This calculation can be done using a Python summation:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "76ba3d2f-a01f-4d9d-b371-c99a55171c87", - "metadata": {}, - "outputs": [], - "source": [ - "sum([rvH.pmf(h) for h in range(10,20+1)])" - ] - }, - { - "cell_type": "markdown", - "id": "873749d7-803e-4747-b94e-0414aa717fbb", - "metadata": {}, - "source": [ - "To see a complete worked example based on the \n", - "see [Example 3: hard disk failures](https://minireference.com/static/excerpts/noBSstats/noBSstats_ch02_PROB.pdf#page=15) and\n", - "[Section 2.1.5 Hard disks example](https://minireference.com/static/excerpts/noBSstats/noBSstats_ch02_PROB.pdf#page=29) in the PDF preview of Chapter 2." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "305d9abd-6c0a-403c-981e-5691d5d80043", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "fb5bc2bd-a3d2-4f8e-b9d4-aa67908b5245", - "metadata": {}, - "source": [ - "### Running statistical simulations" - ] - }, - { - "cell_type": "markdown", - "id": "31162a34-a280-434e-b7a7-6bda0a7fa7b2", - "metadata": {}, - "source": [ - "#### Sampling distributions\n", - "\n", - "The *sampling distribution* of the mean for samples\n", - "of size $n=20$ from the standard normal distribution $Z \\sim \\mathcal{N}(0,1)$\n", - "is denoted $\\overline{\\mathbf{Z}} = \\mathbf{Mean}(\\mathbf{Z})$,\n", - "where $\\mathbf{Z} = (Z_1, Z_2, \\ldots, Z_{20})$ is a *random sample*.\n", - "\n", - "The random variable $\\overline{\\mathbf{Z}}$ describes the kind of means we can expect to observe if\n", - "we compute the mean for a sample of size $n=20$ from the standard normal.\n", - "\n", - "Let's generate $N=10$ samples $\\mathbf{z}_1, \\mathbf{z}_2, \\mathbf{z}_3, \\ldots, \\mathbf{z}_{10}$ of size $n=20$\n", - "from $Z \\sim \\mathcal{N}(0,1)$, and compute the mean in each sample.\n", - "\n", - "![samples_from_rvZ_n20_w_means_n_stds.png](./attachments/samples_from_rvZ_n20_w_means_n_stds.png)\n", - "\n", - "The diamond markers indicate the position of the sample means computed from each sample:\n", - "$[\\overline{\\mathbf{z}}_1, \\overline{\\mathbf{z}}_2, \\overline{\\mathbf{z}}_3, \\ldots, \\overline{\\mathbf{z}}_{10}]$.\n", - "\n", - "Now imagine we generate 9990 more samples to obtain a total of $N=10000$ samples from the population model:\n", - "$\\mathbf{z}_1, \\mathbf{z}_2, \\mathbf{z}_3, \\ldots, \\mathbf{z}_{1000}$.\n", - "We can visualize the sampling distribution of the mean $\\overline{\\mathbf{Z}} = \\texttt{mean}(\\mathbf{Z})$\n", - "by plotting a histogram of the means computed from the $10000$ random samples,\n", - "`zbars` = $[\\overline{\\mathbf{z}}_1, \\overline{\\mathbf{z}}_2, \\overline{\\mathbf{z}}_3, \\ldots, \\overline{\\mathbf{z}}_{1000}]$,\n", - "where $\\overline{\\mathbf{z}}_j$ denotes the sample mean computed from the data in the $j$th sample,\n", - "$\\overline{\\mathbf{z}}_j = \\texttt{mean}(\\mathbf{z}_j)$." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1f27f30f-dd5c-4bf1-a4e4-f73b406b812e", - "metadata": {}, - "outputs": [], - "source": [ - "zbars = []\n", - "for i in range(0, 10000):\n", - " sample = rvZ.rvs(20)\n", - " zbar = mean(sample)\n", - " zbars.append(zbar)\n", - "\n", - "# zbars[0:5]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "86ea33f6-2eac-4a20-9f41-7404548872c4", - "metadata": {}, - "outputs": [], - "source": [ - "ax = sns.histplot(zbars)\n", - "\n", - "savefig(plt.gcf(), \"figures/hist_sampling_dist_mean_rvZ_n20.png\")" - ] - }, - { - "cell_type": "markdown", - "id": "98f5867a-2c76-4088-8f8b-a9cabe188a04", - "metadata": {}, - "source": [ - "The above figure shows the sampling distribution of the mean for samples of size $n=20$ from the standard normal.\n", - "The histogram shows the \"density of diamond shapes,\"\n", - "and provides a representation of the sampling distribution of the mean $\\overline{\\mathbf{Z}} = \\Mean(\\mathbf{Z})$." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "53ca2c67-5dfd-4f11-b09d-79df63f415a3", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "285187ea-e9ef-4a20-bb1f-05a41aa0a259", - "metadata": {}, - "source": [ - "#### Verifying p-values" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3cbe13fa-2b49-44d9-b1e1-5a13d7f08b71", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.stats import norm, ttest_1samp\n", - "\n", - "muK = 1000\n", - "sigmaK = 10\n", - "rvK = norm(muK, sigmaK)\n", - "\n", - "count = 0\n", - "for j in range(0, 10000):\n", - " sample = rvK.rvs(20)\n", - " res = ttest_1samp(sample, popmean=muK)\n", - " if res.pvalue < 0.05:\n", - " count = count + 1\n", - "\n", - "count / 10000" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "28424dd6-5f88-4430-b687-b4b9c62ae0c7", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "025f07b0-2443-4e6a-9779-6173bf37aa20", - "metadata": {}, - "source": [ - "#### Verifying confidence intervals" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6bfd78ff-0981-48c4-9b9c-4a51b61b57b6", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "np.random.seed(10)\n", - "\n", - "muK = 1000\n", - "sigmaK = 10\n", - "rvK = norm(muK, sigmaK)\n", - "\n", - "count = 0\n", - "for j in range(0, 10000):\n", - " sample = rvK.rvs(20)\n", - " res = ttest_1samp(sample, popmean=1000)\n", - " ci = res.confidence_interval(confidence_level=0.90)\n", - " if ci.low <= muK <= ci.high:\n", - " count = count + 1\n", - "\n", - "count / 10000" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4230b1f6-e1c3-4958-86e4-0b610cd248f8", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "1de45e91-cf6d-4c20-8d06-100488b548ad", - "metadata": {}, - "source": [ - "### Resampling methods\n", - "\n", - "Clever techniques that reuse data from observed sample to simulate the variability in the population.\n" - ] - }, - { - "cell_type": "markdown", - "id": "3029a7e9-2f11-4b1f-a179-947df756fd2d", - "metadata": {}, - "source": [ - "#### Bootstrap estimation" - ] - }, - { - "cell_type": "markdown", - "id": "f879348d-1bf5-434f-af5b-84ff45a20294", - "metadata": {}, - "source": [ - "Generate 5000 bootstrap samples (sampling with replacement) from the sample `pricesW`.\n", - "Use the bootstrap samples to approximate the sampling distribution of the mean." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c7b71806-22c0-4ae0-9433-c1385e589be8", - "metadata": {}, - "outputs": [], - "source": [ - "n = len(pricesW)\n", - "xbars_boot = []\n", - "for i in range(0, 5000):\n", - " bsample = np.random.choice(pricesW, n, replace=True)\n", - " xbar_boot = mean(bsample)\n", - " xbars_boot.append(xbar_boot)\n", - "\n", - "sns.histplot(xbars_boot)\n", - "\n", - "savefig(plt.gcf(), \"figures/bootstrap_dist_mean_epricesW.png\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7c5b254d-d587-488f-8037-89d17e45f7d2", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "8b0a8e9e-3e3b-4ed8-9927-a546792932c3", - "metadata": {}, - "source": [ - "#### Permutation test" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "37420af1-c6c6-4594-9b0c-39ac34057189", - "metadata": {}, - "outputs": [], - "source": [ - "DATA_URL = \"https://nobsstats.com/datasets/epriceswide.csv\"\n", - "import pandas as pd\n", - "epriceswide = pd.read_csv(DATA_URL)\n", - "pricesW = epriceswide[\"West\"]\n", - "pricesE = epriceswide[\"East\"]" - ] - }, - { - "cell_type": "markdown", - "id": "3474a99e-c385-449b-85af-fb74ca97b297", - "metadata": {}, - "source": [ - "We'll compare the prices in the two parts of the city in terms\n", - "of the difference between the average price in each sample." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c8204bcd-6126-4e57-9198-ae3a62b45912", - "metadata": {}, - "outputs": [], - "source": [ - "def dmeans(xsample, ysample):\n", - " dhat = mean(xsample) - mean(ysample)\n", - " return dhat\n", - "\n", - "# Calculate the observed difference between means\n", - "dprice = dmeans(pricesW, pricesE)\n", - "dprice" - ] - }, - { - "cell_type": "markdown", - "id": "603905d8-59ae-457c-8535-852a6b54665f", - "metadata": {}, - "source": [ - "Obtain sampling distribution of the difference between means under the null hypothesis." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb0fd666-98ba-4a13-aa05-782b095886d8", - "metadata": {}, - "outputs": [], - "source": [ - "np.random.seed(42)\n", - "\n", - "pdhats = []\n", - "for i in range(0, 10000):\n", - " allprices = np.concatenate((pricesW, pricesE))\n", - " pallprices = np.random.permutation(allprices)\n", - " psampleW = pallprices[0:len(pricesW)]\n", - " psampleE = pallprices[len(pricesW):]\n", - " pdhat = dmeans(psampleW, psampleE)\n", - " pdhats.append(pdhat)" - ] - }, - { - "cell_type": "markdown", - "id": "f509ba5b-62e2-4710-90e7-29395685ff4b", - "metadata": {}, - "source": [ - "Compute the p-value of the observed difference between means `dprice` under the null hypothesis." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8cd155d6-635b-4b87-ba69-d731e27722f5", - "metadata": {}, - "outputs": [], - "source": [ - "tails = [d for d in pdhats if abs(d) > dprice]\n", - "pvalue = len(tails) / len(pdhats)\n", - "pvalue" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "77788fef-cb44-4123-b71a-553f7206b9c5", - "metadata": {}, - "outputs": [], - "source": [ - "# plot the sampling distribution in blue\n", - "ax = sns.histplot(pdhats, bins=100)\n", - "\n", - "# plot red line for the observed statistic\n", - "plt.axvline(dprice, color=\"red\")\n", - "\n", - "# plot the values that are equal or more extreme in red\n", - "sns.histplot(tails, ax=ax, bins=100, color=\"red\")\n", - "_ = ax.set_ylabel(\"$f_{\\widehat{D}_0}$\")\n", - "\n", - "savefig(plt.gcf(), \"figures/pvalue_viz_permutation_test_eprices.png\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f812d89a-d782-4879-a7f0-51b587ca2a51", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "345999ef-eab8-4c4d-b590-38cffc41460f", - "metadata": {}, - "source": [ - "### Data cleaning" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "70161723-bfab-4810-9cef-49cff61aa74d", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "\n", - "DATA_URL = \"https://nobsstats.com/datasets/epriceswide.csv\"\n", - "epriceswide = pd.read_csv(DATA_URL)\n", - "print(epriceswide)" - ] - }, - { - "cell_type": "markdown", - "id": "7a20430b-47bc-4eed-b536-d2c220f6bc3b", - "metadata": {}, - "source": [ - "Click [here](https://pandastutor.com/vis.html#code=import%20pandas%20as%20pd%0Aimport%20io%0A%0Aepriceswide_csv%20%3D%20'''%0AEast,West%0A7.7,11.8%0A5.9,10.0%0A7.0,11.0%0A4.8,8.6%0A6.3,8.3%0A6.3,9.4%0A5.5,8.0%0A5.4,6.8%0A6.5,8.5%0A'''%0A%0Aepriceswide%20%3D%20pd.read_csv%28io.StringIO%28epriceswide_csv%29%29%0A%0Aepriceswide.melt%28var_name%3D%22end%22,%20value_name%3D%22price%22%29&d=2023-07-02&lang=py&v=v1) to see a visualization of the above melt operation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f2172968-641c-4951-a722-029ac2bc853b", - "metadata": {}, - "outputs": [], - "source": [ - "eprices = pd.melt(epriceswide, var_name=\"end\", value_name='price')\n", - "print(eprices)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "37ed70f2-0a06-42bb-be5f-9bef646f44f2", - "metadata": {}, - "outputs": [], - "source": [ - "pricesW = eprices[eprices[\"end\"]==\"West\"][\"price\"]\n", - "pricesE = eprices[eprices[\"end\"]==\"East\"][\"price\"]\n", - "\n", - "pricesW.values, pricesE.values" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "157b54eb-72ff-404a-a5c9-7b330fdba7dc", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "f84ed421-3c6e-40cf-bd87-53d286620a07", - "metadata": {}, - "source": [ - "### Statistics procedures as code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a362074c-72c6-477c-8245-2af319c0a390", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "3819cfff-67ec-4a1d-ba2a-9070c49d24d4", - "metadata": {}, - "source": [ - "#### Generating sampling distributions" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c717d785-0490-4807-97a3-4c8c94666e95", - "metadata": {}, - "outputs": [], - "source": [ - "def gen_sampling_dist(rv, estfunc, n, N=10000):\n", - " \"\"\"\n", - " Simulate `N` samples of size `n` from the random variable `rv` to\n", - " generate the sampling distribution of the estimator `estfunc`.\n", - " \"\"\"\n", - " estimates = []\n", - " for i in range(0, N):\n", - " sample = rv.rvs(n)\n", - " estimate = estfunc(sample)\n", - " estimates.append(estimate)\n", - " return estimates\n", - "\n", - "zbars = gen_sampling_dist(rvZ, estfunc=mean, n=20)\n", - "sns.histplot(zbars)" - ] - }, - { - "cell_type": "markdown", - "id": "013420b6-a902-44a9-b0d8-c46d53209a5a", - "metadata": {}, - "source": [ - "#### Generating bootstrap approximations to sampling distributions" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6ddb08ce-799d-4388-9371-95dcd47866e3", - "metadata": {}, - "outputs": [], - "source": [ - "def gen_boot_dist(sample, estfunc, B=5000):\n", - " \"\"\"\n", - " Generate estimates from the sampling distribution of the estimator `estfunc`\n", - " based on `B` bootstrap samples (sampling with replacement) from `sample`.\n", - " \"\"\"\n", - " n = len(sample)\n", - " bestimates = []\n", - " for i in range(0, B):\n", - " bsample = np.random.choice(sample, n, replace=True)\n", - " bestimate = estfunc(bsample)\n", - " bestimates.append(bestimate)\n", - " return bestimates\n", - "\n", - "\n", - "zbars_boot = gen_boot_dist(pricesW, estfunc=mean)\n", - "sns.histplot(zbars_boot)" - ] - }, - { - "cell_type": "markdown", - "id": "0cac9088-21b9-4642-b9e1-9ca61571e3ff", - "metadata": {}, - "source": [ - "#### The permutation test for comparing two groups" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a3359c3d-32b2-44bc-863a-c35c2a8e5e24", - "metadata": {}, - "outputs": [], - "source": [ - "def permutation_test_dmeans(xsample, ysample, P=10000):\n", - " \"\"\"\n", - " Compute the p-value of the observed difference between means\n", - " `dmeans(xsample,ysample)` under the null hypothesis where\n", - " the group membership is randomized.\n", - " \"\"\"\n", - " # 1. Compute the observed difference between means\n", - " obsdhat = dmeans(xsample, ysample)\n", - "\n", - " # 2. Get sampling dist. of `dmeans` under H0\n", - " pdhats = []\n", - " allprices = np.concatenate((pricesW, pricesE))\n", - " for i in range(0, P):\n", - " pallprices = np.random.permutation(allprices)\n", - " psampleW = pallprices[0:len(pricesW)]\n", - " psampleE = pallprices[len(pricesW):]\n", - " pdhat = dmeans(psampleW, psampleE)\n", - " pdhats.append(pdhat)\n", - "\n", - " # 3. Compute the p-value\n", - " tails = [d for d in pdhats if abs(d) > obsdhat]\n", - " pvalue = len(tails) / len(pdhats)\n", - " return pvalue\n", - "\n", - "np.random.seed(42)\n", - "permutation_test_dmeans(pricesW, pricesE)" - ] - }, - { - "cell_type": "markdown", - "id": "5889118e-4d74-425c-8e84-c4eef002dadf", - "metadata": {}, - "source": [ - "\n", - "See the file [stats_helpers.py](https://github.com/minireference/noBSstatsnotebooks/blob/main/notebooks/stats_helpers.py)\n", - "for more examples of Python functions that \n", - "for definitions all the important statistical analysis procedures in STATS 101.\n", - "\n", - "In the past, students first contact with statistics was presented as a bunch of procedures\n", - "without explanation, and students were supposed to memorize when to use which \"recipe\".\n", - "Statistics instructors always had to \"skip the details\" because it's super complicated to\n", - "explain all the details (probability models, sampling distributions, p-value calculations, etc.).\n", - "\n", - "Now that we have Python on our side, we don't have to water-down the material,\n", - "but can instead show all the detailed calculations for statistical tests,\n", - "as easy-to-understand Python source code, which makes it much much easier to understand what is going on.\n", - "Currently,\n", - "the file [stats_helpers.py](https://github.com/minireference/noBSstatsnotebooks/blob/main/notebooks/stats_helpers.py)\n", - "is 400 lines of code.\n", - "With a little bit of Python knowledge,\n", - "you can read this file and understand all of statistics." - ] - }, - { - "cell_type": "markdown", - "id": "d23d66f9-3842-41c4-b6d4-48e039a9c42b", - "metadata": {}, - "source": [ - "## How much Python do you need to know?\n", - "\n", - "I remind you the key aspect is to learn how to use Python as a calculator.\n", - "\n", - "I talked about the `for`-loops and function definitions only to make sure you can **read Python code**,\n", - "but you don't need to write any such code to learn statistics.\n", - "As long as you know how to call functions and run code cells in a notebook,\n", - "then you'll still benefit from all the educational power that Python has to offer.\n", - "\n" + "## How much Python do you need to know?\n", + "\n", + "I remind you the key aspect is to learn how to use Python as a calculator.\n", + "\n", + "I talked about the `for`-loops and function definitions only to make sure you can **read Python code**,\n", + "but you don't need to write any such code to learn statistics.\n", + "As long as you know how to call functions and run code cells in a notebook,\n", + "then you'll still benefit from all the educational power that Python has to offer.\n", + "\n" ] }, { @@ -1866,8 +1104,8 @@ " - [Outline of the stats curriculum research](https://minireference.com/blog/fixing-the-introductory-statistics-curriculum/)\n", " - [Book proposal](https://minireference.com/blog/no-bullshit-guide-to-statistics-progress-update/)\n", " - [Stats survey results](https://minireference.com/blog/what-stats-do-people-want-to-learn/)\n", - "- [There's Only One Test](https://www.youtube.com/watch?v=S41zQEshs5k) talk by Allen B. Downey\n", - "- [Statistics for Hackers](https://www.youtube.com/watch?v=Iq9DzN6mvYA) talk by Jake Vanderplas\n" + " - Part 2\n", + " - Part 3" ] }, { @@ -1909,305 +1147,6 @@ "source": [ "_____" ] - }, - { - "cell_type": "markdown", - "id": "345abe39-4b08-4ec3-8f8f-e0744cccf067", - "metadata": { - "tags": [] - }, - "source": [ - "# CUT MATERIAL" - ] - }, - { - "cell_type": "markdown", - "id": "c55a4b4b-af80-455c-94ea-5c4fdc526db1", - "metadata": {}, - "source": [ - "#### Pandas equivalent" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6ad028fd-5c2d-4423-a113-42f883ab3538", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "gseries = pd.Series(grades)\n", - "gseries.mean()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3304087a-cf2c-4243-9c24-a85f43c69795", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "7ce05d09-db37-41c1-b083-0df4f34a16f9", - "metadata": {}, - "source": [ - "$N \\sim \\mathcal{N}(\\mu,\\sigma)$ has the probability density function:\n", - "\n", - "$$\n", - " f_N(x) = \\tfrac{1}{\\sigma\\sqrt{2\\pi}} e^{ -\\frac{1}{2} \\left( \\frac{x-\\mu}{\\sigma} \\right)^2 },\n", - "$$\n", - "\n", - "where $\\mu$ is the mean and $\\sigma$ is the standard deviation.\n", - "We use the notation $\\mathcal{N}(\\mu, \\sigma)$ to describe the distribution as math,\n", - "and `norm(mu,sigma)` to describe as computer model." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2eb43e7b-273d-4f31-81ac-e2927aa6fbdc", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cbc42451-cf62-417f-a9ed-0d3c608ca935", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "def fN(x, mu=0, sigma=1):\n", - " const = 1 / (sigma*np.sqrt(2*np.pi))\n", - " exp = np.exp( -1/2 * ( (x-mu)/sigma )**2 )\n", - " return const * exp" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e526f8ba-33f9-4d36-a6cf-49b655d47d03", - "metadata": {}, - "outputs": [], - "source": [ - "fN(3, 2, 3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "12fa2efa-a483-421b-ad6b-376c79f33090", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e55c4dd3-fbb0-4044-91cf-b6ee104ba292", - "metadata": {}, - "outputs": [], - "source": [ - "def mean(sample):\n", - " total = 0\n", - " for xi in sample:\n", - " total = total + xi\n", - " avg = total / len(sample)\n", - " return avg" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ba8aaac6-3208-45bf-865c-9d73553caa24", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5900b927-4053-4a93-b12a-1d6801ccc91a", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "25a881c3-8725-466b-9d71-cc646a3febe4", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "e42d0803-84f2-4efc-b4d0-aded6496f610", - "metadata": {}, - "source": [ - "### Problem NN (numerical math considerations)\n", - "\n", - "We'll use the Python library NumPy (module `numpy` imported as `np`) \n", - "to help us with the fancy math operations.\n", - "To compute $e^x$ we can call `np.exp(x)`,\n", - "and to compute the factorial of `n` we can call `np.math.factorial(n)`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fda48f99-b838-4784-89aa-7ef40742938e", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "def fH(h):\n", - " lam = 20\n", - " return lam**h * np.exp(-lam) / np.math.factorial(h)\n", - "\n", - "# calculation is not stable for h > 14\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "hs = np.arange(0,40)\n", - "fHs = [fH(h) for h in hs]\n", - "plt.stem(fHs)" - ] - }, - { - "cell_type": "markdown", - "id": "6733bd48-7efd-4576-85d9-1fb06d106b04", - "metadata": {}, - "source": [ - "We can apply the log-trick to the formula for ..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "21d0b54d-e5e9-446a-83e9-517c4102c8e7", - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.special import gammaln\n", - "\n", - "def fHalt(h):\n", - " lam = 20\n", - " return np.exp(h * np.log(lam) - lam - gammaln(h + 1))\n", - "\n", - "fHalts = [fHalt(h) for h in hs]\n", - "plt.stem(fHalts)" - ] - }, - { - "cell_type": "markdown", - "id": "e690dd10-13ba-4935-8004-5a15a58c8c4f", - "metadata": {}, - "source": [ - "The log-transform trick and `gammaln` function are really useful for dealing with large factorials and multiplications of small probabilities,\n", - "which occur a lot in statistical calculations.\n", - "The need for numerical stability is one thing you need to keep in mind when\n", - "you implement statistical algorithms in production." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b21aac3c-0921-4e58-8e77-b1a9980928ec", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cfa36e08-6a82-4939-a5e9-62cfc4dcd3a8", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "01a6e381-d092-4ea4-906e-fe2b161bff55", - "metadata": {}, - "source": [ - "The cumulative distribution function (CDF) $F_Z$ is defined as the integral \n", - "of the probability density function $f_Z$ up to some value $z=b$.\n", - "\n", - "$$\n", - " \\textrm{Pr}(\\{Z \\leq b\\}) = F_Z(b) = \\int_{z=-\\infty}^{z=b} f_Z(z)\\; dz.\n", - "$$\n", - "\n", - "The computer model `rvZ` provides the method `.cdf` which allows us to obtain the values of $F_Z$ directly." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "36b0686c-fe69-49cb-98ec-22baa56de926", - "metadata": {}, - "outputs": [], - "source": [ - "rvZ.cdf(2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5cec486c-9b1e-4748-939e-23ffecd257ac", - "metadata": {}, - "outputs": [], - "source": [ - "# FIGURES ONLY\n", - "zs = np.linspace(-4, 4, 1000)\n", - "fZs = rvZ.pdf(zs)\n", - "ax = sns.lineplot(x=zs, y=fZs)\n", - "mask = (zs < 2)\n", - "ax.fill_between(zs[mask], y1=fZs[mask], alpha=0.6, facecolor=\"red\")\n", - "savefig(ax.figure, \"figures/pdf_of_rvZ_highlight_-infty_to_2.png\")" - ] - }, - { - "cell_type": "markdown", - "id": "b1340dda-d1cb-4189-b1ac-fe1546a2774d", - "metadata": {}, - "source": [ - "We're often interested in computing the complement,\n", - "\n", - "$$\n", - " \\textrm{Pr}(\\{Z \\geq b\\}) = 1- F_Z(b) = \\int_{z=b}^{z=\\infty} f_Z(z) \\; dz.\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e3750693-6415-4b09-9642-df1f7f8e0f29", - "metadata": {}, - "outputs": [], - "source": [ - "1 - rvZ.cdf(2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4fa95c21-9874-4021-a629-79baea87433a", - "metadata": {}, - "outputs": [], - "source": [ - "# FIGURES ONLY\n", - "zs = np.linspace(-4, 4, 1000)\n", - "fZs = rvZ.pdf(zs)\n", - "ax = sns.lineplot(x=zs, y=fZs)\n", - "mask = (zs > 2)\n", - "ax.fill_between(zs[mask], y1=fZs[mask], alpha=0.6, facecolor=\"red\")\n", - "savefig(ax.figure, \"figures/pdf_of_rvZ_highlight_2_to_infty.png\")" - ] } ], "metadata": { @@ -2226,7 +1165,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.15" + "version": "3.9.4" } }, "nbformat": 4, diff --git a/blogposts/python_for_stats2.ipynb b/blogposts/python_for_stats2.ipynb new file mode 100644 index 00000000..3aa700c7 --- /dev/null +++ b/blogposts/python_for_stats2.ipynb @@ -0,0 +1,1335 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ae0788bf-c856-4118-adfe-8028b4f14fff", + "metadata": {}, + "source": [ + "# Using Python for learning statistics Part 2" + ] + }, + { + "cell_type": "markdown", + "id": "ff7f1294-525c-4adc-a95a-ce8465d568dd", + "metadata": {}, + "source": [ + "This Juppyter notebook contains the code examples form the blog post [Python coding skills for statistics Part 2](https://docs.google.com/document/d/1XusbfJoZ7CQxbeWPPXMM84BA-VeUn8lkPUuUy7RcW8M/edit).\n", + "\n", + "I've intentionally left empty code cells throughout the notebook,\n", + "which you can use to try some Python commands on your own.\n", + "For example,\n", + "you can copy-paste some of the commands in previous cells,\n", + "modify them and run to see what happens.\n", + "Try to break things.\n", + "\n", + "**To run a code cell, press** the play button in the menu bar, or use the keyboard shortcut **SHIFT+ENTER**." + ] + }, + { + "cell_type": "markdown", + "id": "7afd4148-7f0f-4cdc-a11f-7bf8be06c52c", + "metadata": { + "tags": [] + }, + "source": [ + "### Notebook setup" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0042b56d-8c03-4fe5-8119-6cb1043080d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Figures setup\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "plt.clf() # needed otherwise `sns.set_theme` doesn't work\n", + "sns.set_theme(\n", + " style=\"whitegrid\",\n", + " rc={'figure.figsize': (6.25, 2.0)},\n", + ")\n", + "# High-resolution figures please\n", + "%config InlineBackend.figure_format = 'retina'\n", + "\n", + "def savefig(fig, filename):\n", + " fig.tight_layout()\n", + " fig.savefig(filename, dpi=300, bbox_inches=\"tight\", pad_inches=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f2a17d1d-a564-4939-89c4-49283d08a675", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "66910667-e79e-4c51-8c31-6b1d4ca1ee24", + "metadata": {}, + "source": [ + "### Understanding probability distributions" + ] + }, + { + "cell_type": "markdown", + "id": "ea2106b1-9747-43fb-bda2-e9bc058156b3", + "metadata": {}, + "source": [ + "A random variable ...\n", + "\n", + "described by\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ec5cff0c-043f-46e2-b9dd-55b61562311f", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16767a22-5e52-4303-9ac6-00380ac765ea", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "fc0eb9a6-d8fa-44f3-8de8-5f3f6601711f", + "metadata": {}, + "source": [ + "#### Building computer models for probability distributions" + ] + }, + { + "cell_type": "markdown", + "id": "8b85e7a0-dfd3-42ab-a4ba-1e6605018b6c", + "metadata": {}, + "source": [ + "The standard normal distribution is denoted $Z \\sim \\mathcal{N}(\\mu=0,\\sigma=1)$,\n", + "where $Z$ is the name has the probability density function:\n", + "\n", + "$$\n", + " f_Z(z) = \\tfrac{1}{\\sqrt{2\\pi}} e^{ - \\frac{1}{2}z^2}.\n", + "$$\n", + "\n", + "The standard normal is a special case of the general normal $\\mathcal{N}(\\mu, \\sigma)$\n", + "where $\\mu$ is the mean and $\\sigma$ is the standard deviation.\n" + ] + }, + { + "cell_type": "markdown", + "id": "1a3454db-6832-46d3-af83-a8615f1154de", + "metadata": {}, + "source": [ + "To create a computer model for the random variable $Z$,\n", + "we can define the following Python function that performs the same calculation as the math function $f_Z$." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "eabedcd7-cb40-4806-9eab-f1e860a9b14c", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "def fZ(z):\n", + " const = 1 / np.sqrt(2*np.pi)\n", + " exp = np.exp(-1/2 * z**2)\n", + " return const*exp" + ] + }, + { + "cell_type": "markdown", + "id": "aafee685-fdcc-4a54-b0b5-17d2e79fedcd", + "metadata": {}, + "source": [ + "Note the definition of the Python function `fZ` matches exactly the \n", + "calculations described in the complicated-looking math definition of $f_Z$ we saw above.\n", + "This is one of the key benefits of learning Python:\n", + "you can convert any math expressions into code expressions\n", + "then do computations with it." + ] + }, + { + "cell_type": "markdown", + "id": "fc99acc6-9ff2-4543-9a6d-e2ee3d19edb5", + "metadata": {}, + "source": [ + "We can now compute the value $f_Z(1)$ by calling the function `fZ` with input `1`:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cea5af88-b561-4d81-916f-dc13cb9145aa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.24197072451914337" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fZ(1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e06bc6b-03bb-4da3-bc6d-097bec212140", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "91d4e038-e6a5-4d09-9a15-d7fea12d56d6", + "metadata": {}, + "source": [ + "#### Predefined computer models\n", + "\n", + "Instead of defining our own function to use for computations,\n", + "we can use one of the pre-defined probability model families in the SciPy library.\n", + "\n", + "To create a computer model for the standard normal random variable $Z \\sim \\mathcal{N}(\\mu=0, \\sigma=1)$,\n", + "we need to \"import\" the `norm` model family form `scipy.stats` then call `norm(0,1)`\n", + "to initialize the model with parameters $\\mu=0$ and $\\sigma=1$." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "bbaf06c0-d415-46fd-9002-70896cd3b00c", + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.stats import norm\n", + "rvZ = norm(0,1)\n", + "# rvZ" + ] + }, + { + "cell_type": "markdown", + "id": "4e5ecbdb-69ab-4d01-b81b-edeaa41c5923", + "metadata": {}, + "source": [ + "The probability density function $f_Z$ is available as the `.pdf` method on the model `rvZ`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f6a34bd0-37ca-4347-a82f-9cfbabcdf2c8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.24197072451914337" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rvZ.pdf(1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0fab2bab-dfac-4ce4-960d-b614a8bf425c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "d5db9eb1-9f05-4828-8857-00d0c19e68b8", + "metadata": {}, + "source": [ + "#### Probability model visualizations" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b1061670-cdb0-4de7-8136-d343c5cf17b6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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6+/9KQrw81Hf9uUu6/i4ePz8ejfOr3cryefX6XQW+M01hRJ2+fn5yWaz5Zkm/vHHH5o3b55Onz7tEXYFBwerQYMG+X6dp59+WhaLRZ988okkFcgdUKGhoe7H8fHxCgkJOefY7IvSX04otXXrVj388MPuqYtVq1bVtGnTLrgbZFGqW7eugoODjS7jomzdulUZGRny9fVV8+YspOxtOL/ejfNb9JZsOqzf1u73aK9cLkgfPdNdFkvBfeDB+fVunF/vVtDnt3lzadynq/V3VM5dX9fsSlT1qpV0dx92fS1K/Px6N86vdyvJ5zcpKUm7d+8u0GMWyq06WbsUHjt2rDAOn8MTTzyhxx57rMCOV6tWLffjuDjPHaiyO3r0qPtxlSpVLun1VqxYoXvuuccddNWtW1fTp09X9erVL+l4AABcrLXb4vTO9395tJcLD9CHBRx0AUBuLz10pRrW9NwF/adFe/TL4igDKgIAlHSFcvVat25duVwurVmzpkgCr0cffVQ//vhjgSxUHxkZ6X68Z8+e847N6jeZTKpXz3NXmQtZvHixHnnkEaWkZN663aJFC3377beqWJFFOQEARWPDjqOa+NV65V75MizYqo9Hd5eVoAtAEZg0vJNqVQ71aP9q7k7937K9BlQEACjJCuUKNmtRepvNpttvv13fffedYmJiCuOl3Fq0aKFBgwZd9nFatmzpnt+6bt26c45zOBzasGGDJKlhw4Y5pj/mx/r16zVixAj3VM+rrrpKX331lSIiPD/VAgCgMKzdFqeXvlin3Hu8BAf46pPRPeRvLfKlPQGUUmazWe880UWVywV59E39bZt+XXz+D6EBAMiuUMKu/v37q2bNmnK5XDp27Jhefvll9erVS1dddZV7zMGDB7Vz585it0tAaGioOnToICnzzqsjR47kOW7u3Lk6ffq0JOm66667qNc4deqURowY4V7gvlu3bvrkk09yLI4PAEBhWrklNvOOrlxBV4CfRR+N6q7gwMvfZRgALobFYtaHz3RXufAAj74v5+7QT38ypREAkD+FEnZZrVZ9/fXXatmypVwul/t/WeGQJK1cuVK33HKLWrZsqX79+mnMmDH66quvtG7dOp0967kTVFEaMmSIpMzdDEaOHKmkpKQc/dHR0XrllVckSUFBQerfv/9FHf+ll15y/100b95c77333nl3fQQAoCAt3xyj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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 186, + "width": 605 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "zs = np.linspace(-4, 4)\n", + "fZs = rvZ.pdf(zs)\n", + "sns.lineplot(x=zs, y=fZs)\n", + "\n", + "# FIGURES ONLY\n", + "ax = sns.lineplot(x=zs, y=fZs, color=\"b\")\n", + "ax.set_xlabel(\"$z$\")\n", + "ax.set_ylabel(\"$f_Z$\")\n", + "savefig(ax.figure, \"figures/pdf_of_rvZ.png\")" + ] + }, + { + "cell_type": "markdown", + "id": "aecdb50b-591f-4f82-b89f-e0c9de1a7f09", + "metadata": {}, + "source": [ + "The above graph tells you everything you need to know about the random variable $Z$.\n", + "The possible values of $Z$ are concentrated around the mean $\\mu=0$.\n", + "The region of highest density is roughly between $z=-1$ and $z=1$,\n", + "with most of values between $z=-2$ and $z=2$,\n", + "then the probability densities drops off to form long tails." + ] + }, + { + "cell_type": "markdown", + "id": "33bbcbf6-d36f-41e1-865f-a015411faf91", + "metadata": {}, + "source": [ + "The above graph shows the \"shape\" of the normal distribution $\\mathcal{N}(\\mu=0, \\sigma=1)$,\n", + "which is just one representative of the general normal distribution.\n", + "Here some examples of graphs of the normal distribution for choices of the parameters $\\mu$ and $\\sigma$\n", + "to give you an idea of what they do.\n", + "\n", + "![normal_panel.png](./attachments/normal_panel.png)" + ] + }, + { + "cell_type": "markdown", + "id": "6cf4ed2a-9077-4091-9c1a-85c25bc08451", + "metadata": {}, + "source": [ + "There are dozens of other probability distributions that can be useful for modelling \n", + "\n", + "You can take a look at the probability distirbution graphs here\n", + "\n", + "TODO links to other panels of pdfs\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ab2bd740-8baf-4642-a4a6-4399d37c9db1", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "af748763-9483-494b-972c-5e70e655b945", + "metadata": {}, + "source": [ + "### Doing probability calculations" + ] + }, + { + "cell_type": "markdown", + "id": "5013327a-4104-4586-af4a-1cafbe20fb1f", + "metadata": {}, + "source": [ + "Calculating probabilities with the continuous random variable $Z$ requires using *integration*,\n", + "which the process of computing the total are under a curve for some region.\n", + "For example, \n", + "the probability that the random variable $Z$ will have a value somewhere\n", + "between $a$ and $b$ is defined as $\\textrm{Pr}(\\{a \\leq Z \\leq b\\}) = \\int_{z=a}^{z=b} f_Z(z) dz$.\n", + "\n", + "In words ..." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "f9ec594b-dfa7-471f-b689-ac82c586d11b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.13590512198327787" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from scipy.integrate import quad\n", + "quad(rvZ.pdf, 1, 2)[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9763d430-2b9e-4358-998a-066ea1227f71", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABMEAAAFxCAYAAAB6Jr/fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAB7CAAAewgFu0HU+AAButUlEQVR4nO3dd3xUZdrG8WtmMumdhN5Db0rv9o6KDXvXta0uLrquDcGG61pWd3Xt2EVF14IFeRWRHnpHEnoKBJKQXqa+f0SGHBIgQCYnmfl9P8snZ+5TcmePSU6uOc9zLF6v1ysAAAAAAAAggFnNbgAAAAAAAADwN0IwAAAAAAAABDxCMAAAAAAAAAQ8QjAAAAAAAAAEPEIwAAAAAAAABDxCMAAAAAAAAAQ8QjAAAAAAAAAEPEIwAAAAAAAABDxCMAAAAAAAAAQ8QjAAAAAAAAAEPEIwAAAAAAAABDxCMAAAAAAAAAQ8QjAAAAAAAAAEPEIwAAAAAAAABDxCMAAAAAAAAAQ8QjAAAAAAAAAEPEIwAAAAAAAABLwQsxsIZA6HQwUFBb7XYWFhstls5jUEAAAAAADQBLjdblVWVvpex8fHKzQ09LiOSQjmRwUFBcrIyDC7DQAAAAAAgCavefPmx7W/30Mwr9er7777Tl9++aU2btyosrIyJScna/DgwbrmmmvUr18/v3zexx9/XJ988okkadOmTX75HAAAAAAAAGga/BqCVVRUaPz48ZozZ46hnpWVpaysLM2YMUP33nuvbrvttnr9vIsXL9a0adPq9ZgAAAAAAABouvwagj3yyCO+ACwlJUWXX365kpKStH79en366acqKyvTCy+8oBYtWmjs2LH18jlLS0v1yCOPyOv11svxjkdYWJjhdbt27RQZGWlSN8dn8+bNcrvdstls6tKli9ntoIFw3oMT5z04cd6DE+c9OHHegxPnPThx3oNToJz3srIywxRTB2csx8JvIdiCBQv03XffSZKGDRumN99809fw+eefr8suu0xXX321CgoKNGXKFJ1++umKjo4+7s/7/PPPKzMz87iPUx8OngQ/MjKyXr5GM1itVrndblmt1ib7NeDocd6DE+c9OHHegxPnPThx3oMT5z04cd6DU6Ce9/p40KC1Hvqo1dSpUyVJISEheuqpp2okdikpKZo4caKkqgnkp0+fftyfs/owyJiYmOM+HgAAAAAAAAKDX0KwgoICLVy4UJI0evRotWvXrtbtzjvvPDVr1kySNHPmzOP6nNWHQY4dO1Y9e/Y8ruMBAAAAAAAgcPglBFu2bJk8Ho+kqqGQh/zkVqsGDx4sSVq9erUKCwuP+XPuHwaZnJyshx9++JiPAwAAAAAAgMDjlxAsPT3dt9ytW7fDbrt/kjav16u0tLRj+nzVh0FOmjRJ8fHxx3QcAAAAAAAABCa/hGBZWVm+5TZt2hx225YtW9a6X11VHwZ57rnn6swzzzzqYwAAAAAAACCw+SUEy8/P9y0nJCQcdtvqd20VFBQc9efaPwwyISFBjz322FHvDwAAAAAAgMAX4o+DVlRU+JYPfirkwUJDQ2vdry6qD4OcOHGiEhMTj2p/AACAQFbpdCsnr1Q5+WUqKnWouMypkjKHissccrm9ysvLk8vtkcVi1dxNqxQRFqLIcLuiwkMUGx2m5PgINU+IVGJcuGxWi9lfDgAAwHHxSwjmcrl8y9VDrtpUX199vyOpPgzy9NNP15gxY46+0Qa2efNmWa1+ufnO75xOp+/jmjVrTO4GDYXzHpw478GJ8960uT1e7S1wKju/Utl5Du3Kr1ResUvF5e66H2RrySFXWS1SQnSIWiaEqkVCqFomhKp1s1DFR4XIYiEca2r4fg9OnPfgxHkPToFy3vc/cLE++SUECw8P9y07nc7DBmEOh8O3fKTArLr9wyDj4uI0efLkY+qzobndbrndR3Ex2kjt/4ZCcOG8ByfOe3DivDd+bo9X2XkObc2p1LacSmXmVsrlx0sMj1fKK3Ypr9il9TvLfPXYSJs6NA9Th+ah6tg8TM1iCMWaGr7fgxPnPThx3oMT593ILyFYZGSkb7mysrLOIdiRhk7uV30Y5IMPPqjmzZsfY6cNy2azNfk7wSTJbreb2AkaEuc9OHHegxPnvfGrcHi0KbNM63eWKj2rXA6X1+yWVFTm1trtZVq7vSoYaxYbop5tI9WjXaTaN2cIZWPF93tw4rwHJ857cAqU8+7xeOr9RiK/hGCxsbG+5YKCAsXExBxy2+qT4ddlTq/qwyBHjx6tSy655Lh6bUhdunRRdHS02W0ckzVr1sjpdMput6tfv35mt4MGwnkPTpz34MR5b5wqKl1asCZbc1dlaU36XrncxxZ8xUeHKTEuXDGRdkVHhiomMlShdqvycnPl9Xpks9oUF5+oskqXSsudKqtwKb+oXHv3lcvhqvtQhLwil+ZvKNL8DUWKiQzVqBNb67SB7dS9QwJ3iDUifL8HJ857cOK8B6dAOe8lJSXatGlTvR7TLyFYx44dfcu7du1Su3btDrnt7t27fcutW7c+4rHXrVunzMxMSdK8efPUvXv3I+6zf5s2bdpo9uzZR9weAADALF6vVxu25euXpTs1f3WWyivr/g5o88RIdWkbp5Q28WrfMkatmkWpRWKkwsNqv+Q70kWy1+tVUalDOfll2rm7WNt2FWp7dpG2ZRequOzwwyuKyxz6ceF2/bhwu1olRem0Qe105pD2ahYXUeevBwAAoD75JQRLSUnxLaenp2vIkCGH3DY9PV2SZLFY1LVrV3+0AwAA0OhVOt2aszxD38zdqoyc4jrt07FVrPp1SVK/Lknq2amZYqPqPr9qXVgsFsVFhykuOkzd2if46l6vV5l7SrRua57WbcnVui25yi+qPORxduWW6uOZv+vTWZs0vG8rnT+qs3p1SuTuMAAA0KD8EoL1799fdrtdTqdTqampuuaaa2rdzu12a+nSpZKkHj16GIZRHkrXrl316quvHnG7l156yRew7d+++oT9AAAAjUFeYbm+X7BNMxftUHGZ47DbhtisOrFbskb0baVBvVooIcacaxuLxaJ2LWLUrkWMzh3eUV6vV1syC5W6freWrN+trdmFte7n9ng1f3W25q/OVqfWsbrklC4afWIb2WxNc85UAADQtPhtTrBhw4Zp3rx5mj17trKzs2sd6vj9998rPz9fknTuuefW6diJiYk644wzjrjd+++/71uuy/YAAAANKbegXF/MTtes1B1yHmbeLatFGtCjhU4d2FaDerZQZHjjm+DWYrGoS7t4dWkXr2vO6aHdeaX6bUWmZi/LUHZuaa37bMsu0gufrNAnP23Spad11WmD2skeQhgGAAD8xy8hmCTdeOONmjdvnpxOpyZMmKC3337bMCn85s2b9fTTT0uSoqKiNG7cOH+1AgAA0Gjs3VeuL2anaVbqTrnchw6/WidF6Ywh7XXaoHZNbh6tls2idMWZ3XX5Gd20aec+/bxkp+asyFSlo+b8ZrvySvXK9FX6dNbvuvzM7jpzSHuFcGcYAADwA7+FYKNGjdLZZ5+tn376SStXrtTYsWN11VVXqVWrVtqwYYOmTZum0tKqdwYfeOCBGk+GTE1N1fXXXy9JGjJkiD788EN/tQoAAOB3peVOTf8lTd/O23rYO78GdG+uC0/qrP7dmstqbdpzZlksFvXokKgeHRJ145he+nnpTn2/YJt255XV2Da3sEL//WK1vvlts647r5dG9G3FnGEAAKBe+S0Ek6Rnn31WpaWlmj9/vjIzM/Xcc88Z1lssFt1999268sor/dkGAACAaZwuj2Yu2q5pszYdcs6vEJtFpw9urwtHd1b7lkeeI7Upio4M1UUnd9GFo1O0ZMNuff5zmtIzCmpsl7W3VP94f6m6tY/XzRf0Ue/OzRq+WQAAEJD8GoJFRETo7bff1owZM/T1119r48aNKi4uVnx8vAYOHKjrr79eAwcO9GcLAAAAplmxaY/e/GqNsvbWPi9WiM2qs4a212WndVNyQtMa8nisrFaLhvVppaG9W2pl2l59/nOa1m/Nq7Fd2s4CPfjqfJ0ysK1uOr+3EmN5wBEAADg+fg3BpKq7vS688EJdeOGFR7Xf0KFDtWnTpmP+vAyfBAAAZsktKNfb367TgtXZta63WS06e1gHjTu9m5LigyP8OpjFYtGA7s01oHtzrdm8V+99t6HWO8PmLM9U6rpduvLMHrpgdGcmzwcAAMfM7yEYAABAsHB7vJoxb4s+nvm7KmqZBF6ShvdtpRvG9FKb5Oha1wejfl2S9cL4k7RgTbY++GGjdh30RMnySrfe/W69Zi/bqb9c0V/d2ieY1CkAAGjKCMEAAADqQUZOsV7+dKU27dxX6/qu7eJ1y4XMcXUoFotFo05oo2F9WumHhdv0yczfVVrhMmyzY3ex/vbvubpgdIquPaeHwsO4lAUAAHXHlQMAAMBxcHu8+nrOZn380++1PvUxJtKuG8b01plD2jf5pz02hBCbVReOTtFJJ7bV+99v0M9LdxrWe7zSN3O3aPG6Xbrn8hN1QtdkkzoFAABNDSEYAADAMTrS3V9nDe2g68/rqbjosAburOmLjwnT+Cv76+zhHfTaF2u0NbvQsD4nv0yPvr5QF52couvP6yl7iM2kTgEAQFNBCAYAAHCUvF6vfliwTe/MWF/r3V+tk6L0lyv6M/SxHvTokKgX7j1JX83ZrGmzNtX4//vr37ZoVdpe3X/NQHVoFWtSlwAAoCkgBAMAADgKRaUO/fuzlUpdv7vGOotFGntSiq45p4fCQ7nMqi8hNqvGnd5Nw/u20n8+X6UN2/IN67fvKtJfX/pNN4zppQtGdWbYKQAAqBVXZwAAAHW0bkuuXvh4uXILK2qsa5McpfFXDFDPTokmdBYc2jaP0TN3jdKM+Vv1/vcbDHeFOV0evf3NOi3fmKP7rhnIEFQAAFCD1ewGAAAAGju3x6tPfvpdj7y2oNYA7MLRnfXyfacSgDUAq9WisSel6MV7T1bHWoY/rkzbq/EvztHGg+4WAwAAIAQDAAA4jMKSSk1+a5Gmzdokj9e4Li46VJNuHaY/XdRXYXYmZm9IHVvF6oXxJ+mik1NqrMsrrNBD/52vb+ZukdfrrWVvAAAQjBgOCQAAcAibMwv0zHtLtGdfeY11J3RN0oSrByoxNtyEziBJoXabbrmwjwb1aKEXpy1XflGlb53b49Xb36zTxm35+ssVJyoy3G5ipwAAoDHgTjAAAIBa/LJ0p/7+n3k1AjCr1aLrz+upJ24bQQDWSJzQLVkvTThF/bok1Vi3YE22Jrz0mzL3FJvQGQAAaEwIwQAAAKpxujx67cvVeunTlXJUm3hdkhJjw/SPu0Zp3OndeAJhI5MQE64nbh+hy8/oVmNd1t5S3f/yXK34fY8JnQEAgMaCEAwAAOAPxWUOTXpzkX5YuL3Gul6dEvXSX09h8vtGzGa16Lpze+qxW4YqOsI4/LG0wqXH316kr3/bzDxhAAAEKUIwAAAASVl7S3T/y3O1dktujXXnj+qkp+4YqQSGPzYJg3u11EsTTlHnNnGGuscrvfPter382Uo5XW6TugMAAGYhBAMAAEFvdfpe3f/yXGXnlhrqoXabJlw9QLdf3E/2EC6bmpIWiZF69u5RGnVC6xrrflmaoYf/u0CFJZW17AkAAAIVV3MAACCo/bR4hya9uUgl5U5DPTE2XM/+eZROHdjOpM5wvMJDQ/TAdYN07Tk9aqz7fcc+/e0/85SdW2JCZwAAwAyEYAAAICh5vV69//0GvTJ9ldwe4xxRKW3j9OK9J6lLu3hzmkO9sVgsuuLM7nr4xsEKD7UZ1u3KLdXf/j1Pv2/PN6k7AADQkAjBAABA0HG5PXrp05X6YnZ6jXXD+7bSP+4apWZxESZ0Bn8Z3re1/nnPaCXFG89rUalDj7y2QIvWZpvUGQAAaCiEYAAAIKiUV7r05NRUzV6WUWPdpad20YPXD1Z4WIgJncHfOrWO0/N/Ga3OrY0T5jtcHj3z/lJ9O2+LSZ0BAICGQAgGAACCRkFxpR5+bYFW/L7HULdaLbp73Im68fzeslotJnWHhtAsLkLP/HmkBnRvbqh7vdJbX6/Thz9ulNfrPcTeAACgKSMEAwAAQWF3XqkeeGWeNmcUGOqhdpseuWmIzh7WwZzG0OAiw+2aeMtQnTmkfY11n/+cptf/t0YeD0EYAACBhhAMAAAEvIycYv39lfnalVtqqMdEhurpO0doSK+WJnUGs4TYrLrn8hNrfXLkDwu368VPVsjl9pjQGQAA8BdCMAAAENC2ZBbowVfnK7+owlBvnhChf94zSj06JJrUGcy2/8mRd487QZaDRsH+tjJTT7+7RBUOlznNAQCAekcIBgAAAtbGbfl65LUFKip1GOodW8Xqub+cpLbNY0zqDI3J2cM66oHrBinEZkzClm3M0eS3Fqu03GlSZwAAoD4RggEAgIC0Om2vHntzoUorjHfydO+QoGf+PEqJseEmdYbGaNQJbTTx5mEKC7UZ6uu35unh1xaosKTSpM4AAEB9IQQDAAABZ8n63Xr8ncWqcLgN9X5dkvTk7SMUHWE3qTM0ZgN6NNeTt41Q1EH/fWzNKtSjry9UQTFBGAAATRkhGAAACCjzV2dpyntL5HQZJzUf1LOFHrt1mCLCQkzqDE1Bz06JeuaukYqPCTPUt+8q0sOvLdC+4opD7AkAABo7QjAAABAw5q3K0nMfLZfb4zXUR57QWg/fOERhdtsh9gQO6NQ6Ts/ePUrJCRGGekZOsR7+74IaD1kAAABNAyEYAAAICPNXZ+n5j5fLc1AAdsbg9vrbtYNkD+GyB3XXOilaz9w1Ss0TIw31zD0levi/85VXWG5SZwAA4FhxNQgAAJq8+aur7gA7OAA7b0RH3XP5ibJZLYfYEzi0FomReuaukWrZzBiEZe0t1UP/XaDcAoIwAACaEkIwAADQpC1YnV1rADZmZCfdcUk/WQnAcByaJ0TqmbtGqVVSlKG+K7dUD/13vvbuIwgDAKCpIAQDAABN1oLV2frnR8tqDcBuv7ivLBYCMBy/pPgIPXPXSLVJNgZhu/PK9OjrzBEGAEBTQQgGAACapIVrag/AzhvRkQAM9a5ZXISm3DVKbZtHG+rZuaV69PUFKiiuNKkzAABQV4RgAACgyVm2MUfPHSIAu+OSfgRg8IvE2HBNuWuk2rUwBmEZOSWa+MZCFZc5TOoMAADUBSEYAABoUtZuztUz7y2Ry20MwM4lAEMDSIgJ15O3j6gxR9j2XUV67M1FKi13mtQZAAA4EkIwAADQZGzaka8npy6Ww+Ux1M8Z3lF3EoChgTSLi9DTd4xU80TjUyM3ZxRo8luLVFZBEAYAQGNECAYAAJqEbdmFmvTWYpVXug31Uwe2JQBDg0tOiNDTd4xQUly4of77jn16cmqqKhwukzoDAACHQggGAAAavYycYk18Y2GNoWYj+rXS+Cv6y2olAEPDa9ksSk/dOVIJMWGG+rotefrH+0vlPOiORQAAYC5CMAAA0KjtzivVxDcWqrDEOOn4wB7Ndf81g2SzcTkD87RJjtaTd4xQbFSoob789z166dMVNR7eAAAAzMNVIwAAaLTyCsv16OsLlVdYYaj3SWmmh24cInsIlzIwX4eWsXrqjhGKirAb6nNXZumNr9bI6yUIAwCgMeDKEQAANErFZQ5NfGORcvLLDPXu7RM08eahCrPbTOoMqKlT6zhNvnWYwkKN/13+sHC7Pp75u0ldAQCA6gjBAABAo1PhcOmJtxcrI6fYUO/YKlaT/zRMkeH2Q+wJmKdHx0Q9fMMQhdiMc9R99nOavv5ti0ldAQCA/QjBAABAo+Jye/TsB8v0+459hnqb5Cg9cftwRUeGHmJPwHwDejTXhKsH6uCHlb7z7Tr9snSnOU0BAABJhGAAAKAR8Xi8+s/nq7RsY46h3iwuXE/cPkIJMeEmdQbU3egT2+iuS0+oUf/356u0eN0uEzoCAAASIRgAAGhE3vt+g2YvyzDUoiPsevy24WqeEGlSV8DRO2d4R11/Xk9DzePx6p8fLtPazbkmdQUAQHAjBAMAAI3C/37drK/mbDbUQu02PXbLMHVoGWtSV8Cxu+y0rrr4lC6GmtPl0dPvpmr7riKTugIAIHgRggEAANPNXrZT73633lCzWi168PpB6tkp0aSugONjsVh00/m9dOaQ9oZ6aYVLk99apL37yk3qDACA4EQIBgAATLVsY45e/mxVjfpfLj9Rg3u1bPiGgHpksVj053Enalgf43/LeYUVmvTWIpWUOUzqDACA4EMIBgAATPP79nw98/5SeTxeQ/2m83vp9MHtD7EX0LTYrBbdf+0g9exovKsxI6dYT727RA6n26TOAAAILoRgAADAFFl7S/TEO4trBAAXnZxSYx4loKkLs9v06M1D1bZ5tKG+fmueXvxkhdwHBcEAAKD+EYIBAIAGV1BcqclvLVJxmdNQP2VgW910fm9ZLBaTOgP8JzYqVI//abgSY8MM9QVrsvX2N2vl9RKEAQDgT4RgAACgQVU4XHpy6mLtzisz1Af0aK7xV/SX1UoAhsDVPDFSk/80XBFhIYb6d/O36X+/bj7EXgAAoD4QggEAgAbj9nj1/EfLlbazwFBPaRunB68frBAblyYIfJ1ax+mRG4coxGYMfN/7foN+XZ5hUlcAAAQ+rjQBAECD8Hq9evvrtUpdv9tQb54QoUm3DKtxZwwQyE7olqx7rxxQo/7ypyu1Km2PCR0BABD4CMEAAECD+GbuFn23YJuhFhVh16RbhykhNtykrgDznDygrW6+oLeh5vZ49cz7S7VjV5FJXQEAELgIwQAAgN/NX52ld75db6iF2Kx65KYhat8y1qSuAPNddHKKLjyps6FWVuHS4+8sVn5RhUldAQAQmAjBAACAX63fmqcXP1lRo37vlf3VNyXJhI6AxsNiseiWC/poZL/WhvrefeV68p3Fqqh0mdQZAACBhxAMAAD4TeaeYj39bqqcLo+hfsOYXjp5QFuTugIaF6vVor9ePUA9OiQY6pszC/X8x8vl9nhN6gwAgMBCCAYAAPxiX3GFJr+1WMVlTkP93OEddempXUzqCmicwuw2PXrzULVsFmmop67frXe+XWdSVwAABBZCMAAAUO8qHC49NTVVOfllhvqgni10+8V9ZbFYTOoMaLziosM06dZhio6wG+oz5m3Vt/O2mNQVAACBgxAMAADUK4/Hq5emrVTazgJDvUvbOD1w3SDZbFx+AIfStnmMHr5piEJsxqD47W/WKXXdLpO6AgAgMHAVCgAA6tVHMzdqwZpsQ615YqQeu2WYIsJCTOoKaDr6piRp/BX9DTWvV3ru4+XanFFgTlMAAAQAQjAAAFBvfl6yU9N/STfUosJDNOmWoUqIDTepK6DpOWVgO11zTg9DrdLh1hPvLNaeg4YZAwCAuiEEAwAA9WLtlly9+sUqQ81qtejBGwarfctYc5oCmrArzuim0we3M9T2FVfq8XcWq7TceYi9AADAoRCCAQCA45a9t0TPvLdELrfXUL/zkn46sVtzk7oCmjaLxaI/X3ai+nVJMtR37i7Wsx8sldvtMakzAACaJkIwAABwXIrLHHr87cUqLjPemXLRySk6Z3hHc5oCAoQ9xKqHbhyidi2iDfWVaXv11jfrTOoKAICmiRAMAAAcM6fLoynvLVF2bqmhPrR3S914fm+TugICS3SEXZNuHa74mDBD/fsF2/Td/K0mdQUAQNNDCAYAAI6J1+vVq1+s0roteYZ659Zxuu+agbJZLSZ1BgSeFomReuSmIbKHGC/f3/p6rZb/nmNSVwAANC2EYAAA4Jh8MTtdvyzNMNQSY8M18ZahiggLMakrIHD16JCoe6/sb6h5vNKzHyzTjt1FJnUFAEDTQQgGAACO2oLV2frgh42GWlioTRNvGaqk+AiTugIC30n92+rqs7obauWVLj3xTqoKSypN6goAgKaBEAwAAByVtJ379OInyw01i0W67+qB6tI23pymgCBy5VndddKJbQy1PfllevrdJXI43SZ1BQBA40cIBgAA6mzPvjI9OTVVDpfHUL9xTG8N79vKpK6A4GKxWPSXK/ure/sEQ33j9nz9Z/oqeb1ekzoDAKBxIwQDAAB1Ulbh1JPvpKqg2Djk6qyhHXTxKSkmdQUEpzC7TY/cNETJCcbhx3OWZ+rzX9JM6goAgMaNEAwAAByR2+PVcx8t1/Zdxsm3+3VJ0p2X9pPFwpMggYaWEBuuiTcPVUSYzVD/6MfftWB1tkldAQDQeBGCAQCAI5o6Y52Wbcwx1NokR+uhGwYrxMblBGCWTq3jdP+1g3RwDv3itBVK27nPnKYAAGikuGoFAACHNXPRdn07d6uhFhMZqkm3DlN0ZKhJXQHYb0ivlrr5gj6GmsPp1lNTU7V3X7lJXQEA0PgQggEAgENas3mvXv/fGkMtxGbRIzcNUaukKJO6AnCwsSd11tnDOhhq+4or9dTUVJVXukzqCgCAxoUQDAAA1Cp7b4meeW+p3B7jk+buHneienduZlJXAGpjsVh0xyX91K9LkqG+NbtQL3y8XB4PT4wEAIAQDAAA1FBS5tAT7yxWSbnTUL/01C46fXB7k7oCcDghNqseumGw2iQb79JMXb9bH/ywwaSuAABoPAjBAACAgcvt0bMfLFPW3lJDfWjvlrr+vF4mdQWgLqIjQ/XYLcMUHWE31L/8dbP+L3WHSV0BANA4EIIBAACDt75eq1Xpew21Tq1jdd81A2W1Wg6xF4DGonVytB6+cYhsB32//vfL1Vq7JdekrgAAMB8hGAAA8Fm0sUg/LNxuqMXHhOnRm4cqIizEnKYAHLW+XZJ056UnGGout1fPvLdEeUXOQ+wFAEBgIwQDAACSpM27KvT90jxDzR5i1aM3DVHzhEiTugJwrM4e1kEXn9LFUCsuc+rD2Tkqd3hM6goAAPMQggEAAO0pcGj6/Dx5D3qA3Pgr+qt7h0RzmgJw3G4Y00tDe7c01PYWOjV9fl6NJ78CABDoCMEAAAhyRaUOfTg7R5VO4x/EV5zZTScPaGtSVwDqg81q0X3XDFTHVrGG+tbdlfpuSZ68ByffAAAEMEIwAACCmNPl0TPvL1F+sctQH3lCa119Vg+TugJQnyLCQjTxlqGKjwkz1JdsKtZ387eZ1BUAAA2PEAwAgCDl9Xr12pertW6LcR6wLu3ide+V/XkSJBBAmidE6tGbhsgeYrz8f/ubtVr+e45JXQEA0LAIwQAACFLfzN2i/1uy01CLibDp0ZuGKDyUJ0ECgaZ7h0Tde2V/Q83jlf754TLt2F1kUlcAADQcQjAAAILQkg27NXXGekMtxGbRdae3ULO4CJO6AuBvJ/Vvq9NOiDfUyipcevKdVBWWVJrTFAAADYQQDACAILN9V5Ge/2hZjSdBXjI8QW2ahdW+E4CAcdoJ8Rrcw/jU15z8Mj397hI5XW6TugIAwP8IwQAACCIFxZV68p3FKq80/qF7Rv8E9WofaVJXABqSxWLRjeekKCXJGHpv3J6vV6av5omRAICARQgGAECQcDjdmvLeEu3ZV26onzKgrU7pG2dSVwDMEGq36r7TWigpwvgAjNnLMvTF7HSTugIAwL8IwQAACAJer1evTF+ljdvzDfUeHRJ0z+UnymLhSZBAsImPDNFj/WwKl/HO0A9+2KiFa7JN6goAAP8hBAMAIAh8MTtdvy7PNNSSEyL08E1DFGq3mdQVALN1irHq/vKVssg4BPLFaSu0ObPAnKYAAPATQjAAAALcwjXZ+uCHjYZaRJhNE28eqoSYcJO6AtBYDHXv0Y2VvxtqlQ63nnwnVXmF5YfYCwCApocQDACAALYls0AvTlthqFks0v3XDFKn1swDBqDKxc5tOtOZYajlF1XoqampqnC4TOoKAID6RQgGAECAyi+q0JNTU1XpMM73c+OY3hrSu6VJXQFojCyS7qxcpz4e47yBmzML9a9pK+Tx8MRIAEDTRwgGAEAAqnS69dTUVOUVVhjqZw5pr4tPSTGpKwCNmV1ePVS2XK28xiGQC9fs0sc//X6IvQAAaDoIwQAACDBer1cvf7pS6RkFhnrvzs1056Un8CRIAIcUK6cmli1RlIxDID//OU2/Ls84xF4AADQNhGAAAASYT2dt0rxVWYZay2aReuiGwbKH8KsfwOG185bqwfLlsh70xMh/f7ZKG7blmdQVAADHjythAAACyNyVmfpk1iZDLTI8RBNvHqq46DCTugLQ1JzoztPtFesNNZfboynvLVFOfplJXQEAcHxC/P0JvF6vvvvuO3355ZfauHGjysrKlJycrMGDB+uaa65Rv379jvv4v/zyi7755hutWbNG+fn5stvtatOmjUaOHKnrr79erVu3rqevBgCAxmvjtny99OlKQ81qkR64bpDat4w1qSsATdV5rp3KdERpRmgnX62wxKEn3lms5+4Zrchwu4ndAQBw9PwaglVUVGj8+PGaM2eOoZ6VlaWsrCzNmDFD9957r2677bZjOn5hYaH++te/asGCBYa6w+FQWlqa0tLS9PHHH+vJJ5/URRdddIxfBQAAjd/uvFI99W6qnC6PoX7L2D4a2KOFSV0BaOpucfyuLFu0VtiSfbWdu4v1zw+XaeLNQ2WzMbAEANB0+DUEe+SRR3wBWEpKii6//HIlJSVp/fr1+vTTT1VWVqYXXnhBLVq00NixY4/q2B6PR3/+85+1dOlSSVLr1q116aWXqnPnziotLdX8+fM1a9YsORwOPfjgg4qNjdVpp51W318iAACmKyl36vG3F6uo1GGojxnZSReM6mxSVwACgU1ePVC+Un+LGqEMS7Svvvz3PZo6Y73+dFFfE7sDAODo+C0EW7Bggb777jtJ0rBhw/Tmm28qLKxqLpLzzz9fl112ma6++moVFBRoypQpOv300xUdHX24Qxp89dVXvgBs2LBheu211xQZGelbP27cOM2ePVv33HOPXC6XJk+erJEjR/p6AAAgELjcHv3j/SXK3FNiqA/s0Vx/GtuHJ0ECOG5RcumxsqW6L2qUinRgCOS387aqbYsYnTu8o3nNAQBwFPx2//LUqVMlSSEhIXrqqadqhE8pKSmaOHGiJKmgoEDTp08/quN/9tlnkqSwsDA9//zzhgBsv9NOO03XXnutJCknJ0dz58496q8DAIDGyuv16rUv12h1eq6h3rFVrB64bhDDlADUm5becj1ctkwhMg65fv1/a7Q6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okFNmTJFe/bsMbuNRoUQDPXmk08+UWpqqtltwE/mzp2rhx56SB6PRxaLRWPGjNHgwYNls9m0evVqffXVVyorK9Mjjzyi+Ph4nX766Wa3jHoyb948/e1vf5Pb7ZbFYtFZZ52l0aNHKyoqStu2bdOXX36prKwsLV26VHfddZc+/PBD2e12s9tGPfvtt9/02GOPmd0GjtMjjzziC8BSUlJ0+eWXKykpSevXr9enn36qsrIyvfDCC2rRooXGjh1rbrPwm3Xr1unuu++Wx+MxuxX40e+//64777xT5eXlkqRRo0bp9NNPV3x8vLKzs/X1118rPT1d6enpuuWWW/TFF18oNjbW5K5xPPaf88rKSknSKaecolGjRik6OlobN27UZ599poqKCv3rX/9SdHS0rr32WpM7hj/NmTNHX331ldltNDoWr9frNbsJNH3Vh0Hux631gcPtduvMM89UVlaWrFarXn/9dZ188smGbZYvX64bbrhBTqdT7dq106xZsxgaFwCcTqfOO+887dy5UzabTa+++qpOPfVUwzalpaW66667tHjxYknSo48+quuuu86MduEn//vf/zRp0iQ5HA5fjeGQTc+CBQt08803S5KGDRumN998U2FhYb71W7Zs0dVXX62CggLFx8frl19+UXR0tFntwk9+++033X///SoqKvLVuGYLTNdee62WLl0qSZo8ebKuuuoqw3qXy6UHH3xQM2bMkCTddNNNevDBBxu8T9Sfa665RsuWLZNU+znfvn27xo0bp6KiIkVHR+u3337j53yAqj4Mcj+GQ1bhL1Qct+rDIHn3KDDNnz9fWVlZkqRx48bVCMAkaeDAgb4/iDMyMrR27doG7RH+sWjRIu3cuVNS1cX0wQGYJEVFRemFF15QeHi4JGn69OkN2iP8p7i4WI899pgeeughQwCGpmnq1KmSpJCQED311FOGAEyqujNs4sSJkqSCggK+lwOMw+HQv//9b91xxx2GAAyBacuWLb4A7IwzzqgRhkhVPwuefvppNW/eXFLVGx5ut7tB+0T92bx5sy8AGzVqVK3nvGPHjrr11lslSSUlJZo7d26D9oiGs38YJH+f10QIhuO2fxhkaGio/vrXv5rdDvzA4XBo4MCBiouL0znnnHPI7bp37+5b3h+aoWlbtGiRb/lwQ6OSkpI0aNAgSdKmTZtqzBuHpue7777T2Wef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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 184, + "width": 608 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# FIGURES ONLY\n", + "zs = np.linspace(-4, 4, 1000)\n", + "fZs = rvZ.pdf(zs)\n", + "ax = sns.lineplot(x=zs, y=fZs)\n", + "mask = (1 < zs) & (zs < 2)\n", + "ax.fill_between(zs[mask], y1=fZs[mask], alpha=0.6, facecolor=\"red\")\n", + "savefig(ax.figure, \"figures/pdf_of_rvZ_highlight_1_to_2.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a043f55f-1cbe-4f0b-a38f-9c19adbb11e0", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "a61a9bf2-775f-43a8-8342-1514a6bfabed", + "metadata": {}, + "source": [ + "#### Discrete random variables (bonus topic)" + ] + }, + { + "cell_type": "markdown", + "id": "67dcea42-6159-40e2-925e-cd36d56c486e", + "metadata": {}, + "source": [ + "There is a whole other type of random variables called \"discrete\" random variables,\n", + "which are defined only for integers, like $0$, $1$, $2$, etc.\n", + "\n", + "For example, the Poisson random variable $H$ is defined by the probability mass function,\n", + "\n", + "$$ \n", + " f_H(h) = \\frac{\\lambda^{h}e^{-\\lambda }}{h!},\n", + "$$\n", + "\n", + "for $h$ any natural number, $0, 1, 2, 3, \\ldots$.\n", + "The parameter $\\lambda$ (the Greek letter lambda) is used to control the shape of the distribution.\n", + "This math formula includes the lambda raised to the power $h$,\n", + "the exponential function $e^x$,\n", + "and the factorial function $n!$.\n", + "That's a lot of math!\n", + "If you need to do some probability calculations for the random variable $H$,\n", + "and you're ever forced to do the calculations using only pen and paper,\n", + "that would be quite the chore!" + ] + }, + { + "cell_type": "markdown", + "id": "24b53a6f-660e-4b5f-b9e8-468adba7acd8", + "metadata": {}, + "source": [ + "Wouldn't it be simpler (and more efficient) to define a Python function\n", + "that corresponds to the math function $f_H$,\n", + "then do all the calculations using Python as a calculator?" + ] + }, + { + "cell_type": "markdown", + "id": "b0372c94-cce4-4b4d-9eed-86133e401e4e", + "metadata": {}, + "source": [ + "Let's see this in action!\n", + "We'll initialize a `poisson` model with the parameter $\\lambda=20$." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "5ddee77a-7061-4392-a886-59e15e719a3e", + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.stats import poisson\n", + "\n", + "rvH = poisson(20)\n", + "# rvH" + ] + }, + { + "cell_type": "markdown", + "id": "9649298a-31b1-4872-ab9b-c4aebda0575b", + "metadata": {}, + "source": [ + "Having defined the computer model `rvH`, we can use it to:\n", + "- generate visualizations\n", + "- compute probabilities\n", + "- run simulations\n", + "- use `rvH` it as part of multi-step probability calculations\n", + "- anything else you might want to do with random variable $H$" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a561d5b3-4d81-48a0-9bf7-afdd77a5fb3f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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oFdffVXbtm1TSUmJ4uPjlZqaqltvvVW33XaboqIaf4LmcDi0cuVKvfvuuzp8+LDKy8uVmJioQYMGafLkycrKymp2PQEAMJNn29S8/GPNjsW2qWgOi8WizLTqBVknP7LB59wLc29USlLbINUMAIDaTE2MOBwOzZgxQx9//LHP748ePaqjR49q7dq1mjlzpu69994mv8eqVav06KOPyum8uHJ+WVmZysrKtGPHDq1evVrLli1TQkJCvTG+/PJLPfDAAzpy5IjP74uLi7Vu3TqtX79eP//5zzVz5swm1xMAgJYwKru3IYkRtk2FWeJiGLAMAAgtpl6ZFixY4E2KpKamasKECUpKStIXX3yhlStXqqKiQk899ZS6du2qsWPHBhx/48aNWrhwodxut2JjYzVx4kRlZGSotLRUb731lgoKCrRz507Nnj1bL730kqzW2kuqfPvtt7r77rtVVlYmSbr22mt18803KyEhQbt27dKqVat0/vx5vfDCC0pOTtbEiROb9TcBAMBMnm1TjxSfaXIMtk0FAACRxLTESF5ent555x1J0tChQ/WHP/xBbdq0kSTdcsstGjdunO68807Z7XYtXrxYN954o9q1a+d3/MrKSi1atEhut1txcXF64403dOWVV3rP5+TkaPbs2Xr//feVl5en9evX65ZbbqkV59FHH/UmRf7zP//TZ/TK6NGj9dOf/lSTJ0+W0+nU008/rdtvv13R0dFN+psAAGA2z7ap85ZtatIuNWybCgAAIo1pu9K88sorkqTLLrtMjz/+uDcp4pGamqqFCxdKkux2u1atWhVQ/Pfee09FRUWSpHvuuccnKSJJ0dHRWrp0qXcKzYsvvlgrxvbt27Vx40ZJ0u23317nlJ4f/ehH3lEidrtdW7ZsCaieAAC0NLZNBQAA8J8piRG73a7NmzdLkq6//nr16NGjznKjRo1SYmL1UN0NGzbUWaY+69evl1T9ZCwnJ6fOMm3bttXtt98uqXqB1sOHD/uc94xoadOmjWbNmlXve40bN04TJ07Ufffd560vAAChjG1TAQAA/GPKVJqdO3fK5XJJqp5GUx+r1arBgwdrw4YN+vzzz3Xq1Cl16NDBr/fYsWOHJKlfv37q1KlTveWGDh3qHb3y6aefqk+fi4vJ/f3vf5ckXXfdderSpf4bwf79++vRRx/1q14AAIQKtk0FAABonCmJ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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 201, + "width": 547 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "hs = np.arange(0,40)\n", + "fHs = rvH.pmf(hs)\n", + "plt.stem(fHs)" + ] + }, + { + "cell_type": "markdown", + "id": "9c6c2b8d-fef5-4e07-b129-38595604bb30", + "metadata": {}, + "source": [ + "Calculating the probability of $H$ being between $10$ and $20$\n", + "is done by summing over all the probabilities for that range of values of $h$.\n", + "\n", + "$$\n", + " \\textrm{Pr}(\\{10 \\leq H \\leq 20\\})\n", + " = \\sum_{h=10}^{h=20} f_H(h)\n", + " = f_H(10) + f_H(11) + f_H(12) + \\cdots + f_H(20).\n", + "$$\n", + "\n", + "This calculation can be done using a Python summation:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "76ba3d2f-a01f-4d9d-b371-c99a55171c87", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.5540971719230157" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum([rvH.pmf(h) for h in range(10,20+1)])" + ] + }, + { + "cell_type": "markdown", + "id": "1de172ba-04ae-485f-adff-de6dd0fcc0f8", + "metadata": {}, + "source": [ + "To see a complete worked example based on the \n", + "see [Example 3: hard disk failures](https://minireference.com/static/excerpts/noBSstats/noBSstats_ch02_PROB.pdf#page=15) and\n", + "[Section 2.1.5 Hard disks example](https://minireference.com/static/excerpts/noBSstats/noBSstats_ch02_PROB.pdf#page=29) in the PDF preview of Chapter 2." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "305d9abd-6c0a-403c-981e-5691d5d80043", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "9aacbce4-f4e7-4d7a-a72e-5498d116e4f2", + "metadata": {}, + "source": [ + "### Running statistical simulations" + ] + }, + { + "cell_type": "markdown", + "id": "01a85daf-7975-44a4-a32f-516b04c5c4c3", + "metadata": {}, + "source": [ + "#### Sampling distributions\n", + "\n", + "The *sampling distribution* of the mean for samples\n", + "of size $n=20$ from the standard normal distribution $Z \\sim \\mathcal{N}(0,1)$\n", + "is denoted $\\overline{\\mathbf{Z}} = \\mathbf{Mean}(\\mathbf{Z})$,\n", + "where $\\mathbf{Z} = (Z_1, Z_2, \\ldots, Z_{20})$ is a *random sample*.\n", + "\n", + "The random variable $\\overline{\\mathbf{Z}}$ describes the kind of means we can expect to observe if\n", + "we compute the mean for a sample of size $n=20$ from the standard normal.\n", + "\n", + "Let's generate $N=10$ samples $\\mathbf{z}_1, \\mathbf{z}_2, \\mathbf{z}_3, \\ldots, \\mathbf{z}_{10}$ of size $n=20$\n", + "from $Z \\sim \\mathcal{N}(0,1)$, and compute the mean in each sample.\n", + "\n", + "![samples_from_rvZ_n20_w_means_n_stds.png](./attachments/samples_from_rvZ_n20_w_means_n_stds.png)\n", + "\n", + "The diamond markers indicate the position of the sample means computed from each sample:\n", + "$[\\overline{\\mathbf{z}}_1, \\overline{\\mathbf{z}}_2, \\overline{\\mathbf{z}}_3, \\ldots, \\overline{\\mathbf{z}}_{10}]$.\n", + "\n", + "Now imagine we generate 9990 more samples to obtain a total of $N=10000$ samples from the population model:\n", + "$\\mathbf{z}_1, \\mathbf{z}_2, \\mathbf{z}_3, \\ldots, \\mathbf{z}_{1000}$.\n", + "We can visualize the sampling distribution of the mean $\\overline{\\mathbf{Z}} = \\texttt{mean}(\\mathbf{Z})$\n", + "by plotting a histogram of the means computed from the $10000$ random samples,\n", + "`zbars` = $[\\overline{\\mathbf{z}}_1, \\overline{\\mathbf{z}}_2, \\overline{\\mathbf{z}}_3, \\ldots, \\overline{\\mathbf{z}}_{1000}]$,\n", + "where $\\overline{\\mathbf{z}}_j$ denotes the sample mean computed from the data in the $j$th sample,\n", + "$\\overline{\\mathbf{z}}_j = \\texttt{mean}(\\mathbf{z}_j)$." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "876e6c4a-6d3a-47c7-a028-30924231f60e", + "metadata": {}, + "outputs": [], + "source": [ + "def mean(sample):\n", + " total = sum(sample)\n", + " avg = total / len(sample)\n", + " return avg" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "1f27f30f-dd5c-4bf1-a4e4-f73b406b812e", + "metadata": {}, + "outputs": [], + "source": [ + "zbars = []\n", + "for i in range(0, 10000):\n", + " sample = rvZ.rvs(20)\n", + " zbar = mean(sample)\n", + " zbars.append(zbar)\n", + "\n", + "# zbars[0:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "86ea33f6-2eac-4a20-9f41-7404548872c4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2KZNmyRJDRs21NNPP+3VnV3BwcF6+umnFR0dLUnasGGDT/sIAAAAAACA+smvibB9+/bJ4XCob9++iomJ8bpeo0aN1LdvXxmGoW+++cZ3HQQAAABQLaGhoQoLC1NoaGhtdwUAgAr5dY2wM2fOSJLatm1b5brFdTIyMqzsEgAAAAAvRYQFy+Uy5HQ6yuxLSEjwWLeiegAA+JNfE2FhYWEqKChQbm5ulesW14mMjLS6WwAAAAC8EB4aJKfToUXJqUrPyiuxL/dcrgyXIYfTociIkp/ZY6PDNXFQR392FQCAcvk1EdayZUsdOHBAO3bsqHLd4jrNmze3ulsAAAAAqiA9K0+nM0smwrJzLibCovL9ugILAABe8+sZ6vrrr5ck7dmzRykpKV7X27Rpk7766is5HA6zDQAAAAAAAKAq/JoIGz16tByOonUB/vjHP2rLli2V1tm8ebMefvhhSZLD4dDIkSN92UUAAAAAAADUU36dGhkXF6exY8fqnXfeUW5uru6991716NFD/fv3V0JCgvkkyTNnzujAgQNav369du3aJcMw5HA4NGLECMXHx/uzywAA2BKLWgMAAKA+8msiTJIeffRRpaWl6aOPPpLD4dDOnTu1c+fOCssbhiFJuuGGG/T444/7q5sAANhaRYthe9KuRbSG9+ngw14BAAAANeP3RFhoaKhefvllvfzyy3rrrbeUk5PjsXxkZKQmTJigpKQkOZ0sugkAgL+Utxi2J40bhvmwNwAAAEDN+T0RJklBQUGaMmWK7rrrLm3evFmfffaZjh49qoyMDBmGoejoaLVr107dunVT//79FR0dXRvdBAAAAAAAQD1SK4mwYjExMRo2bJiGDRtWm90wZWZmatmyZdq8ebO+++475eTkqGHDhrryyit166236o477lBoaGiF9Q3D0Nq1a7Vq1Srt27dPubm5atq0qXr06KHx48erc+fOlfbBijYAAAAAAABQll8TYT/88IMuu+yySsu9+uqruvzyy9W7d2+PiScrbd++XdOnT1d6enqJ36enp2v79u3avn27lixZoldeeUVt2rQpUz8vL09Tp04t8yTMtLQ0paWlKTk5WdOmTdPdd99dYR+saAMAAAAAAADl80sibM2aNVqwYIFCQkL073//22PZgoICvfrqqzp//ryaNWumKVOmaPjw4T7t3/79+3Xvvffq3LlzkqQbb7xRffv2VUxMjI4dO6Y1a9bo0KFDOnTokH73u9/pX//6V5npmjNmzDATWHFxcRo1apQuueQSpaamatmyZcrNzdWzzz6rZs2aaciQIeX2w4o2AABwx9MfAQAAgIt8mgg7d+6cHnzwQW3evFmGYcjhcCg9PV2xsbEV1vm///s/5eXlyeFw6MSJE/rzn/+sjz/+WM8884zP7g6bM2eOmQSbNWuWxo4dW2L/hAkT9Oijjyo5OVnff/+9Xn75ZT366KPm/k8++URr166VJPXs2VOvv/66wsKKFgy+/fbbNWLECI0bN04ZGRmaN2+e+vbtq6ioqBLHsKINAABK4+mPAAAAwEU+ewxjYWGhJk+erM2bN5f4/cGDBz3WCwsL080336ygoCBJRWtmffjhh3rggQdkGIbl/Txy5Ih27twpSerXr1+ZJJgkBQcHa+7cubr00kslSe+++64KCwvN/W+++aZZbs6cOWYCq1hcXJxmzpwpScrIyNDKlSvLHMOKNgAAKE/x0x+9/S8z+3xtdxkAAADwCZ8lwl555RVt377d/PmOO+7Qhx9+qJ49e3qs17lzZ7322mvatGmTuYi+YRhKSUnR4sWLLe+nex89TTcMCwtT7969JRUtqv///t//k1SUlPr0008lSTfddFO564dJ0sCBA9WkSRNJ0vr160vss6INAAAAAAAAeOaTRFh6eroWLlwoSQoKCtLzzz+vefPmVZjgKU+zZs00f/58PfHEE3I4HDIMQy+++KJycnIs7avT6VSHDh0UFRWldu3aeSzbqFEjczsrK0uStGvXLrlcLknymORzOp3q0aOHJOmrr75SZmamuc+KNgAAAAAAAOCZTxJh77//vrnO10MPPaRbbrml2m2NGjVK48aNkyTl5ubq/ffft6qbkqRx48Zp7dq1+uKLLxQfH++x7OHDh83tmJgYSdKhQ4fM31VWv3379pKK7nBznyJqRRsAAABAoIoIC5bLVb1lTqpbDwCA8vhksfzPPvtMktSkSRPdddddNW5vypQpWrVqlc6fP69PPvmk3HW8fO2nn37S1q1bJUmNGzdW27ZtJUlpaWlmmVatWnlso3nz5uZ2WlqaeXeXFW0AAAAAgSo8NKhaD++IjQ7XxEEdfdgzAIDd+CQRduDAATkcDt1www3movc1ERMTo549e2rLli3au3evBT2suqeffloFBQWSpNtu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UVH64osvtGrVKuXl5WnGjBlq0aKFrr/++iq136FDB7300kuVljMMQ3PnztXx48clqdw/7O5Xn2bMmOHxKjQx98zXcS9mRcxWrFihF198UZIUExOjcePGqX379kpLS9OyZcuUlpamDz/8ULNnz9bcuXOr1U878EfMc3JyNGnSJH377beSpPbt22vo0KFq1aqVMjMztWnTJm3dulVZWVmaPHmy3n77bXXq1KlMO4z1qpkxY4b5BSkuLk6jRo3SJZdcotTUVC1btky5ubl69tln1axZMw0ZMqTK7XPeDky+jLvL5dJ9992nnTt3SpJatmyp4cOH64orrlBOTo62bdumDz/8UPn5+Xr00UcVHR2tPn36lGnnwIED5hfje+65p9zx7q5Ro0ZV6qfd+HqsWxEvxrr1fBX3Jk2aePUZXZJefvll8wJXRZ/RGeu+9c033ygpKUkul8uS9g4cOKApU6bo/PnzCgoK0ogRI9S9e3fl5OTovffe0+7du3Xw4EFNnjxZy5cvV0REhE/asIwBWGTVqlXGNddcY8THx5v/rVq1qkZtnj9/3ujTp48RHx9v/OIXvzC++eabMvvvu+8+83jJyck+aQMXLV++3HytHnroIaOwsLDE/s8//9zo1KmTER8fbwwYMKDMfqu88sorZj/+8pe/lFvmv//7v434+HgjISHBOHfunE/6YRf+intNY5aenm5ce+21Rnx8vNGrVy/j6NGjJfafPXvWGD16tPlv+fLLL6vVTzvwR8yff/558xgPPvigUVBQUKbM22+/bZYZNmxYue0w1r23bds28/VMTEw08vLySuw/fPiwcd111xnx8fHGddddZ5w9e7ZK7XPeDky+jvu//vWvEu3n5OSUKbNp0ybj6quvNuLj442bbrqpTB8Mo+R4//bbb6v2j0QJvo65YdQ8Xox16/kj7pV5//33zT78/ve/N1wuV5kyjHXf2rJli9G9e/cS38tfeOGFGrU5ZswYIz4+3rjqqquMLVu2lNjncrmMJ554wjzWq6++6rM2rEJKHTV29uxZPf7443rssceUn59vadsffvihjh49KkmaNGmSOnbsWGJ/aGionn76afNW6ddee80nbeCiN998U1LRlZm//OUvZa7M9ejRQ/fdd58k6ciRI9q4caPlfdi/f78WLFggSWrXrp0eeeSRcssV3yVy2WWX+WWueX3mr7jXNGYrVqxQdna2JOmhhx5Sq1atSuyPiorSc889p5CQEEmMd098HXPDMLRixQpJUtOmTTV37lwFB5e9UX3cuHH6zW9+I0lKTU3V3r17y5RhrHuvOK7BwcGaM2eOwsLCSuyPi4vTzJkzJUkZGRlauXJlldrnvB2YfB335cuXS5LCwsL017/+VZGRkWXK9OnTR3feeack6aefftLHH39cpkzxWA4LC1Pbtm2r1AeU5OuYSzWPF2Pdev6Iuyc//fSTnnjiCUlS48aNNW/ePDkcjjLlGOu+kZ+frxdeeEH33HOPsrKyLGt39+7d+vLLLyVJQ4cO1c0331xiv8Ph0IwZMxQXFyep6H1YeqqzFW1YiUQYamTt2rXq37+/+QEoNjZWY8aMsaz9Dz74QFLRwBg7dmy5ZRo0aGCuQ3bw4EF99913lreBIvv27TNfm0GDBikqKqrccmPHjjUXNV2/fr2lfTAMQzNnzjT/MD7xxBMV3jZbfJKNj4+3tA9248+41zRmxeM9OjpagwYNKrdMy5YtzSk5n3zyiZk4w0X+iPmhQ4f0888/S5JuvfXWMh/W3d16663m9ldffVVmP2PdOxkZGfr0008lSTfddJPatGlTbrmBAweqSZMmkqoeV87bgcfXcc/OztaePXskSTfccIPHdXy8Hcvt27dnClwN+GOsSzWPF2PdWv6Kuydz5841EzCPPPKILrnkknLLMdat9+mnn2rAgAF66aWX5HK5FBkZqYkTJ1rSdvFYlYouUJbH6XSa+zIyMvTZZ59Z3oaVeNehRpYvX67Tp09Lkm688UatXr1aXbp0saz94rUmrrzySo9PDOvZs6e5XfoKoxVtoMjnn39ubv/yl7+ssFx0dLSuvvpqSUWLW1pp1apV5gfuQYMGVbgu0ZkzZ3Ty5ElJfDmuKX/FvaYxy8zMND9Y9ejRw+MTporfN/n5+T49ydZV/oh5Tk6OOnbsqNjYWF1++eUey7qvDVL6Cidj3Xu7du0y1wpxP+eV5nQ61aNHD0lFyYrMzEyvj8F5O/D4Ou5nzpxRp06d1LRp00qfIutpLBuGoUOHDkliLNeUP8a6FfFirFvLH3H3ZPv27dqwYYMkqVu3bho2bFi55RjrvvH++++bd1hec801WrlypXr37m1J28VjtVGjRubnvvK4v++2bt1qeRtWYrF81FirVq304IMP6rbbbrO03Z9++sn8kNShQwePZYtvoZRU4qkkVrSBi4pPWlLlr2f79u319ddfKzMzU8eOHav0ceneOH/+vF544QVJRbdST58+vcKyBw8eLNPX9PR0HTx4UAUFBWrevLnat29f7u3aKMlfca9pzA4fPmwuvOpNP4vt379f/fr187qfduCPmHft2lXvvvuuV2WPHDlibpd+ahhj3Xvuca3sy0fxGDEMQwcPHjS/NHnCeTsw+Trubdq08Xp6laexnJaWZt6hWxz77Oxs7d+/Xzk5Obr00ksVHx/v8SIHivg65lLN48VYt54/4u7JX//6V3P70UcfrbAcY913YmNjlZSUpDFjxigoKMi8YaUmCgsLzb/dcXFxHu/gu/zyyxUUFKTCwsISY9WKNqxGIgw1Mn36dHXq1KncdV1qqjijLanMOj+lNWvWTE6nUy6XS8eOHbO0DVyUlpYmqehKUosWLTyWbd68ubltVSJs2bJl+umnnyRJY8aM8dim+1PksrOzNWHCBH322WclHtPcrFkzTZo0SePHj+dk64G/4l7TmBX3U1Klj1x2/3cw3suq7bHuzjAMrVq1yvy59F3HjHXvuY+Rys6J7nFNS0vz6ksS5+3A5Ou4V4W3Y9npdCopKUkpKSkqLCw0fx8TE6M777xTv//971kP0AN/xLym8WKsW682x/rGjRv1zTffSJL69eunzp07V1iWse4b48eP16xZsyx/vU6dOmWuA17Z+yooKEhNmzbViRMnSoxVK9qwGlMjUSNdu3b1SRJMKrrVvljjxo09lg0JCTEXZs3IyLC0DVyUnp4uqWi9htDQUI9l3a/0WvF6ulwu/eMf/5BUtADohAkTPJZ3P8nOmDFD27dvL/HFWCq6Gjl37lxNnjxZeXl5Ne5jfeWvuNc0ZsX9lCof7+7TcxjvZdXmWC9t+fLl5l1f8fHxSkhIKLGfse69qoyR6sSV83Zg8nXcvbV161Zt3rxZktSkSRP16tWrxH73sfzUU0/pf//3f0t8MS7u04IFC3TXXXeV+HehJH/EvKbxYqxbrzbH+ltvvWVuT5o0yWNZxrpvdOrUySdJw6q8r6SLn7Hd31dWtGE1EmEIWOfOnTO3PS2iXLqM+5ccK9rARcWvizevpfuXZ/c4VFdKSop59fDWW2+t9K4T95NsgwYN9OCDD2rjxo36+uuvlZKSokcffVQNGzaUJG3ZskWzZs2qcR/rK3/FvaYxcx+3lSVv3P8tjPeyanOsu9u3b5/mz59v/vzAAw+UKcNY9577e72y2LrH1dsxwnk7MPk67t44fvx4iSc833vvvWW+sLmP5ZCQEN1999364IMP9PXXX2vr1q2aM2eOuRD/nj179MADD5jrIaEkf8S8pvFirFuvtsb6/v37zfWfunbtqq5du3osz1ivW+rruZ2pkTa0efNm3XPPPdWqu2nTpkqnHFnF/cpAZV9q3ctcuHDB0jbqCyviXvy6VOW1lFTmKk91/POf/zS3f/e731Vavnjx7JiYGC1durTEAr6tWrXSxIkT1atXL40ZM0Y5OTlavXq1Ro8eXenJu66pS3Gvaczcx21lfXXfX9/Ge12KuSfff/+9Jk2aZH4IGjFihPm0T3eMde/5eoxw3g5Mtf23MT09Xb/97W/NtWp69eqlO++8s0y54qUPwsLC9Oabb6p79+7mvksvvVQjR47Ur371K40aNUonTpzQZ599pg8++EC33367Jf2sT/wR85rGi7Fuvdoa68UzNqTK7waTGOt1TX09t3NHGAKWe7a4oKCg0vLF845DQkIsbQMXFV+9rcprKdX89fz+++/NJ/t169bN45NGin388cfasWOHkpOTK3yKVXx8vO6//37z5xUrVtSon/WVv+Je05i5311QWV+tfH/WR7U11osdOXJEd955p06dOiVJ+sUvfqGZM2eWW5ax7r3qjhFvPrRKnLcDla/j7snPP/+sxMREffvtt5Kktm3b6q9//Wu5D69YtmyZvvjiC23YsKHEF2N3zZo105///GfzZ7uO5cr4I+Y1jRdj3Xq1MdZzcnK0du1aSVLLli3LvWBVGmO9bqmv53buCLOhyy67TL/97W+rVbd4eok/FK8FIBU9LbAyxWXcTwJWtFFfWBH34tfTm9fS/QTrzS2wnmzcuNHcvvXWW72uV/qJVOUZPHiwOfXqiy++qHLfAl1di3tNYlaV8e6+v76N97oW89L27NmjP/zhD+Z6EgkJCXr99dc9xomx7p3SY8TTl5/qxJXzdmDyddwr8sMPP2jSpEn6/vvvJRU9pGTRokWKjY2tsE5UVJSioqI8ttunTx9FRUUpOztbu3fvlsvl8vgEMjvyV8xrEi/GuvVqY6xv3brVjM0tt9zi9VhkrNcdDRo0MLerO1ataMNqJMJsKC4ursQ6DYEqOjra3M7MzPRYtqCgQLm5uZJU4gOWFW3UF1bEvfj1zM7O1oULFzw+KMF9ccOavp4pKSmSJIfDof79+9eordJiY2MVExOjjIwMc4pVfVKX416RimJWlfHuvr++jfe6HPOPPvpI06ZNM/8Wd+zYUW+88UaJhxtUV30f695wHyMZGRkeL25VJ66ctwOTr+Nenj179uiee+4xp0O2atVKixcvrvRpYd4ICgpS27ZtlZqaqvz8fGVkZBD/Umoj5hWpKF6MdevVRtyLP6NLsvwzOmM9MLi/jyobq+5l3GNlRRtWI6WKgNWuXTtz+/jx4x7L/vTTT+Yiiu6LqFvRBi4qfj1dLpc5v78iJ06cMLdr8sH3zJkz2r17t6Si6VHNmjWrdlsV4TZ7z2oj7pUpL2ZVGe/u+xnvZdVGzN99911NnjzZ/LLTvXt3LV682KunC3nL7mO9KmPEPa7ejhHO24HJ13EvbevWrfqv//ovMwnWvn17LV26VG3atKlWe+Wx+1iujL9jXpmanrMZ697xd9wLCwv10UcfSSqayuiLtTcZ67Xv0ksvNe/oOnbsmMeyhYWF+vnnnyWVfF9Z0YbVSIQhYDVu3FhNmjSRJB06dMhj2cOHD5vb8fHxlraBi+Li4sxt99erPMWvd6NGjWqUvNq+fbu5wGLfvn29qrN//34tWrRIzzzzjJlEq0jxFSZJ5hNqUJI/4m5FzK644gpz3RnGe834e6wvXbpUf/rTn8xFUXv37q033nij0un4jPWqcY9rZWOkeL/D4VCHDh28ap/zdmDyddzdpaSk6N577zUT2l26dNGSJUsq/dvw448/avHixXruuee0ZcuWSo9TnKAPCQmx5I7R+sbXMbciXox16/lzrEvSN998Y55X+/TpU+7af6Ux1uum4vfWkSNHPJb79ttvze9tpceqFW1YiUQYAlqPHj0kSfv27dPZs2crLFe8kLokXXfddZa3gSLur4v761VaVlaW9u3bJ+ni619dX375pbndpUsXr+ocPHhQTz31lBYuXKh169Z5LPv555+bizZ6277d+CPuVsQsMjJS11xzjSRp165dHh+1XfzvcDqdFS7Uamf+HOtr167V7NmzZRiGJGno0KFasGCBV+tCMNarpmvXrubV9R07dlRYrrCwUDt37pRUtEab+3SbynDeDjz+iLtUNMamTp1qjrNevXrprbfe8uquzpMnT2revHl67bXXtHz5co9lv/vuO/Nul06dOikoKKhK/bQDX8fcqngx1q3lr7FezP0ClLfnVcZ63VQ8Vk+fPu0xyeo+Vkt/LrSiDSuRCENAK55rfuHCBS1durTcMtnZ2Vq9erUk6fLLL1dCQoLlbaBI+/btzaeyrV69Wjk5OeWWe/vtt81M/oABA2p0zG+++UZS0RUrb54WKUnXX3+9uZjmunXrlJ2dXW45wzD02muvmT8PGTKkRn2tr/wRd6tidsstt0iSTp06pX//+9/ltnH06FFt3rxZknTDDTdwhbEc/hrrR44c0Z/+9CczCTZ69Gg99dRTHtckc8dYr5ro6Gj17NlTUtGdOxVNT1i3bp35sIKqxpXzduDxR9xPnz6tqVOnmgtw9+7dW6+++mqJxbs9ueaaa8yFs7du3epx6swrr7xibtt1LFfG1zG3Kl6MdWv5Y6y7+/rrr83tjh07elWHsV43ua//9s9//rPcMoWFhXrnnXckFa0JduONN1rehpVIhCGg9evXT61bt5YkvfTSS9q1a1eJ/fn5+Xr44YfN23InTpzokzZwUfHrc+bMGT366KMlnjojSTt37jRPXK1atTITE9VVfDt8mzZtKn26TLFmzZrpN7/5jSQpPT1djz32WJl+ulwuzZ07V59//rmkoisOvvxjW9f5Ou5WxWzEiBHmdLonn3yyzO3X2dnZmj59unnHAuO9Yv4Y64899pj5ZKB+/fpp9uzZXk2tKMZYr7oJEyZIKlp8evr06WWSh4cPH9bcuXMlFT3laeTIkVVqn/N2YPJ13J988knzi3Xnzp31/PPPe3xiXWlhYWEaNWqU2ccHH3yw3MT2G2+8offee09S0XpIw4YNq1I/7cSXMbcqXox16/l6rJduSyqatug+LdMTxnrd1KVLF3MNuJUrV5a52GwYhubMmaNvv/1WkjRu3Lgyd/Zb0YaVHEbxZVjAIu+++64ee+wxSdL8+fN1xx13VFh2x44dSkxMlFR0q3N52eGUlBRNnjxZhmEoJCREI0eO1LXXXquMjAytWLFCBw8elCRde+21WrJkSbm3zVrRBoq4XC6NHj1ae/bskSRdeeWVGjlypGJiYvTll19q5cqVKigokMPh0Ouvv65f/epXZdpwf48MGzZMTz31VLnHOnPmjHllq2vXrlq2bJnX/Tx27JhGjhypU6dOSSpaP2rEiBFq2bKlTpw4oTVr1mj//v2SitYLsnoh3/rGH3G3KmZLlizRk08+KanoQ964ceN01VVX6fjx41q6dKmOHj0qSbrtttv03HPPWfQK1T++jvnWrVs1adIkSUVPhnriiScUExNTab9atGhR4sozY73q7r//fm3YsEGS1Lp1a40dO1YtWrTQ3r17tXTpUvMOwNmzZ2vMmDEl6nLerrt8FfcjR47otttuM+/sfPjhh9W2bdtK+xMTE1NiavrZs2c1cuRIfffdd5Kk5s2ba/To0WrXrp3OnDmjDz74wEyUNGjQQIsXL1anTp2q+3LYgi/HulXxYqxbz9d/44t17dpVubm5atq0qbZt2+Z1/xjr/uMez6SkJE2ZMqXcckePHjXXYm7VqlWJp4EWS01N1ejRo83PfoMGDdKNN96ovLw8rVmzxlzOpl27dnr33XfNxfGtbsMqJMJgOasTYVLRQspz58417+IorVOnTvr73//ucR0KK9pAkfT0dE2aNEmpqanl7g8JCdFf/vKXCq8yeZsI279/v3kr9E033aSFCxdWqZ8HDhzQlClT9P3331dYpkOHDnr++ee9vpJlZ/6Iu1Ux+9vf/qbXXntNFZ3ibr75Zr3wwgs+vdJUH/gy5tOnT690Xa/ylPfeYaxXzblz55SUlFThFxeHw6GkpCQlJSWV2cd5u+7yVdyfffZZvf7661XuT3nvn+PHjyspKclcFqE8LVq00LPPPqtu3bpV+Zh24+uxblW8GOvW8sff+OzsbDOmV1xxRYXLUVSEse4fVibCJGnjxo364x//aD4QpbS2bdvqjTfe8HjB0Yo2rODdIhxALRs7dqy6d++uxYsX69NPP9XPP/+skJAQxcfHa9CgQRo1alSlj9e1og0UiY2N1YoVK7R8+XKtXbtWR44cMa8IXX/99Zo4caKuvPLKGh/HfV2i6izkeeWVV+r999/XqlWrtH79eh08eFA5OTmKiYlR+/btNWDAAA0bNqxK0zfszB9xtypmDzzwgG6++Wa9/fbb2rVrl06fPq2IiAhdddVVGj58uAYPHlylKXh25cuYF1/ltwJjvWoiIiK0cOFCJScna82aNeZC1TExMerWrZsSExNr/MWD83bg8VXcrRzLLVq0MP/erFu3TqmpqcrKylJUVJTatWunW265RaNHj/bpXQL1ia/HulXxYqxbyx9/42v6GZ2xXjf169dP69at06JFi/Txxx/rxIkTcjgcuvzyy9W/f3/dddddlcbMijaswB1hAAAAAAAAsAUWywcAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAtkAgDAAAAAACALZAIAwAAAAAAgC2QCAMAAAAAAIAt/H/pfqdf4GpPFQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 184, + "width": 609 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = sns.histplot(zbars)\n", + "\n", + "savefig(plt.gcf(), \"figures/hist_sampling_dist_mean_rvZ_n20.png\")" + ] + }, + { + "cell_type": "markdown", + "id": "b47e68a3-ac05-4741-a4b6-9a134602d002", + "metadata": {}, + "source": [ + "The above figure shows the sampling distribution of the mean for samples of size $n=20$ from the standard normal.\n", + "The histogram shows the \"density of diamond shapes,\"\n", + "and provides a representation of the sampling distribution of the mean $\\overline{\\mathbf{Z}} = \\Mean(\\mathbf{Z})$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53ca2c67-5dfd-4f11-b09d-79df63f415a3", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "cf0b9b93-94be-44a5-bc84-ec3a1b51cea8", + "metadata": {}, + "source": [ + "#### Verifying p-values" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "3cbe13fa-2b49-44d9-b1e1-5a13d7f08b71", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0505" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from scipy.stats import norm, ttest_1samp\n", + "\n", + "muK = 1000\n", + "sigmaK = 10\n", + "rvK = norm(muK, sigmaK)\n", + "\n", + "count = 0\n", + "for j in range(0, 10000):\n", + " sample = rvK.rvs(20)\n", + " res = ttest_1samp(sample, popmean=muK)\n", + " if res.pvalue < 0.05:\n", + " count = count + 1\n", + "\n", + "count / 10000" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28424dd6-5f88-4430-b687-b4b9c62ae0c7", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "46c80055-9d14-4a4a-81bd-580d486ff2c8", + "metadata": {}, + "source": [ + "#### Verifying confidence intervals" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "6bfd78ff-0981-48c4-9b9c-4a51b61b57b6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.9049" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "np.random.seed(10)\n", + "\n", + "muK = 1000\n", + "sigmaK = 10\n", + "rvK = norm(muK, sigmaK)\n", + "\n", + "count = 0\n", + "for j in range(0, 10000):\n", + " sample = rvK.rvs(20)\n", + " res = ttest_1samp(sample, popmean=1000)\n", + " ci = res.confidence_interval(confidence_level=0.90)\n", + " if ci.low <= muK <= ci.high:\n", + " count = count + 1\n", + "\n", + "count / 10000" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4230b1f6-e1c3-4958-86e4-0b610cd248f8", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "258a6595-ca59-43a9-a8ab-d7e491c4249b", + "metadata": {}, + "source": [ + "### Resampling methods\n", + "\n", + "Clever techniques that reuse data from observed sample to simulate the variability in the population.\n" + ] + }, + { + "cell_type": "markdown", + "id": "dbca2f75-72fe-4bdc-a36d-85a8e7bcfefd", + "metadata": {}, + "source": [ + "#### Bootstrap estimation" + ] + }, + { + "cell_type": "markdown", + "id": "ee95e6dd-b68e-47b3-9c1f-eab5c1307844", + "metadata": {}, + "source": [ + "Generate 5000 bootstrap samples (sampling with replacement) from the sample `pricesW`.\n", + "Use the bootstrap samples to approximate the sampling distribution of the mean." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "4e97a358-eb5c-45e3-a3ac-d7d6113ee97b", + "metadata": {}, + "outputs": [], + "source": [ + "DATA_URL = \"https://nobsstats.com/datasets/epriceswide.csv\"\n", + "import pandas as pd\n", + "epriceswide = pd.read_csv(DATA_URL)\n", + "pricesW = epriceswide[\"West\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "c7b71806-22c0-4ae0-9433-c1385e589be8", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JA0cOFDp6ellPhbsdf7552vKlCmqX7++fD6f3nnnHXXv3l2XXHKJevTooY8++kgul0sDBw7UG2+8YX1TWhJHjx61tou7/NblclkfpPJOh0fFCuTYkJg3wtV5551nbRd3edu2bdus7ZIuhsu8Eb4CPTYk5o1Q16ZNmzIFkPn/nYp73ecPIUrzui/NMfIfh7nFHqE8NqSCc8trr72mDz/8sEAQJkmZmZl69913lZycrN9++61U9VG0so6P9u3bByQIk3g/EioIwxAQ06dPl8/nkyQNGTJEhmGUuVb+XyAul0t33XWXPv74Y33//fdatWqVxowZo7p160qStmzZogceeMA6NireZZddphdeeKHAZSv51ahRo8AlAyV18uRJa9vfQsr55bU5depUqY6DwAnU2JCYN8JV/nUxpk+f7rddWlqavvjiC+vvJb28hHkjfAV6bEjMG5VV/tfvmXcgPVP+eaE0r3vmlvAUjLEhFZxbDMNQnz59NH/+fH333Xdat26dJk6cqKZNm0qSfvnlF91zzz0FxhQqH+aM0EAYBttlZmbqww8/lCTVqVNHN910U7nqHTx4UFLuJPCf//xHDz74oBISEhQdHa169eopOTlZc+fOta7jXr9+fYE7+qDieDwejRw5UgMGDJDb7VZSUpJGjx6tiRMn6sEHH1Tz5s2VlpamZ555RnfccUepJvj839YX9wYmf5vTp0+X/geB7QI5NiTmjXD1xz/+Ueeff74k6bPPPtOUKVPOanPy5EmNHDmywF0CS/qFC/NG+Ar02JCYNyqr/K/f4l73+Z8vzeueuSU8BWNsSP+bWwzD0MSJE/XMM8/ooosu0jnnnKP4+Hh1795dH3zwgS666CJJ0q5du/TOO++U6hgIL8wZoYEwDLb7+OOPrYVuk5OTS/QCL8qsWbP09ddfa8mSJX5veVy/fn394x//sP7+/vvvl+uYsMeDDz6oxYsXS5KefPJJTZs2TQMGDFD37t111113acGCBerTp48k6auvvtLjjz9e4tr5v0XJW4ehKHlnBxS1zgyCJ5BjQ2LeCFeRkZEaM2aMdTbgv/71L912221677339Mknn+i1117TDTfcoPXr16tz587WfiX5VvXMdswb4SXQY0Ni3qis8l8eVdzrPv+ZhKV53TO3hKdgjA1Jev755/Xtt9/qs88+U7du3QptU716dY0bN876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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 184, + "width": 609 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "n = len(pricesW)\n", + "xbars_boot = []\n", + "for i in range(0, 5000):\n", + " bsample = np.random.choice(pricesW, n, replace=True)\n", + " xbar_boot = mean(bsample)\n", + " xbars_boot.append(xbar_boot)\n", + "\n", + "sns.histplot(xbars_boot)\n", + "\n", + "savefig(plt.gcf(), \"figures/bootstrap_dist_mean_epricesW.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c5b254d-d587-488f-8037-89d17e45f7d2", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "15556f6e-071f-44c9-be7d-b7c5c1853310", + "metadata": {}, + "source": [ + "#### Permutation test" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "37420af1-c6c6-4594-9b0c-39ac34057189", + "metadata": {}, + "outputs": [], + "source": [ + "DATA_URL = \"https://nobsstats.com/datasets/epriceswide.csv\"\n", + "import pandas as pd\n", + "epriceswide = pd.read_csv(DATA_URL)\n", + "pricesW = epriceswide[\"West\"]\n", + "pricesE = epriceswide[\"East\"]" + ] + }, + { + "cell_type": "markdown", + "id": "2543134d-ace3-41c8-9cc9-de8e0ea1c868", + "metadata": {}, + "source": [ + "We'll compare the prices in the two parts of the city in terms\n", + "of the difference between the average price in each sample." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "c8204bcd-6126-4e57-9198-ae3a62b45912", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.0" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def dmeans(xsample, ysample):\n", + " dhat = mean(xsample) - mean(ysample)\n", + " return dhat\n", + "\n", + "# Calculate the observed difference between means\n", + "dprice = dmeans(pricesW, pricesE)\n", + "dprice" + ] + }, + { + "cell_type": "markdown", + "id": "5ecb7f41-101c-4f4e-b047-3be29847a962", + "metadata": {}, + "source": [ + "Obtain sampling distribution of the difference between means under the null hypothesis." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "cb0fd666-98ba-4a13-aa05-782b095886d8", + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(42)\n", + "\n", + "pdhats = []\n", + "for i in range(0, 10000):\n", + " allprices = np.concatenate((pricesW, pricesE))\n", + " pallprices = np.random.permutation(allprices)\n", + " psampleW = pallprices[0:len(pricesW)]\n", + " psampleE = pallprices[len(pricesW):]\n", + " pdhat = dmeans(psampleW, psampleE)\n", + " pdhats.append(pdhat)" + ] + }, + { + "cell_type": "markdown", + "id": "81fda50e-82fc-4b29-aacc-3c67d0a38d1b", + "metadata": {}, + "source": [ + "Compute the p-value of the observed difference between means `dprice` under the null hypothesis." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "8cd155d6-635b-4b87-ba69-d731e27722f5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0002" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tails = [d for d in pdhats if abs(d) > dprice]\n", + "pvalue = len(tails) / len(pdhats)\n", + "pvalue" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "77788fef-cb44-4123-b71a-553f7206b9c5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 184, + "width": 605 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot the sampling distribution in blue\n", + "ax = sns.histplot(pdhats, bins=100)\n", + "\n", + "# plot red line for the observed statistic\n", + "plt.axvline(dprice, color=\"red\")\n", + "\n", + "# plot the values that are equal or more extreme in red\n", + "sns.histplot(tails, ax=ax, bins=100, color=\"red\")\n", + "_ = ax.set_ylabel(\"$f_{\\widehat{D}_0}$\")\n", + "\n", + "savefig(plt.gcf(), \"figures/pvalue_viz_permutation_test_eprices.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6d618f93-3caf-4d83-9c30-3ad74a6f9a26", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "9d8f4aa1-aaf0-4009-a033-eb320a9cb834", + "metadata": {}, + "source": [ + "### Statistics procedures as code" + ] + }, + { + "cell_type": "markdown", + "id": "822f7397-c208-455e-885f-a39ad2f3f6b2", + "metadata": {}, + "source": [ + "#### Generating sampling distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "845c437c-9503-48d5-aece-2398a70a9a8a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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eJzxwhqFhYX65JNPJEmXXXaZOnXqVGu5YcOGKSUlRZL/1939PHa5XBo/fnytZeLj43XddddJql7Q090XrWwD/gl13ygqKtKWLVskSf379/e6xoOv40H37t2ZphJidowZUvDXlDHDXnb1C29mz56t48ePS5Luu+8+tW7dutZyjBeB418LCNJnn31mHl966aV1lktMTNR5550nqXohLCstXrzYfAN2zTXX1LlmxdGjR3X48GFJfOAKNbv6RbDX9NixY+aLaEZGhtddFtz9qqysTJ9++qnf54I9/aK4uFi9evVScnKyzj77bK9lPed8u99wuTFeWGfTpk2qqqqSJPXr16/OchEREcrIyJBU/QH52LFjPp/Dvb7IOeec43VnLs/zn36XhBVtwD+h7htHjx7V+eefrzZt2tS7M5y38cAwDOXk5EhiPLCDHWOGFdeUMcNedvQLb9avX6+VK1dKkvr27atRo0bVWo7xIjgsEgwEyT0ASdWL+XrTvXt3ffXVVzp27JgOHDhQ73aWvigtLdWzzz4rqfo2wunTp9dZdteuXWfEWlBQoF27dplb/Hbv3r3WWxXhH7v6RbDXdPfu3eYibr7E6bZjxw4NHjzY5zhRzY5+0adPH73zzjs+ld2zZ495fPruGowX1vG87vW9WXU/zwzD0K5du8w32d4cOnTI/EBdX79KS0szjz133bCiDfgv1H2jU6dOPk9x8DYe5ObmmndOuvtHUVGRduzYoeLiYp111llKT09nK2WLhLpfSMFfU8YM+9nRL7z5wx/+YB7ff//9dZZjvAgOCRogSLm5uZKqs9Wpqaley7Zr1848tipBs2DBAh06dEiSNG7cOK9teu7IUlRUpAkTJujTTz+tsQVe27ZtNXHiRN10000MnEGwq18Ee03dcUrV27J74/l3HDhwwOcY8V9OjxeeDMPQ4sWLzZ8vuOCCGo8zXljH83l2+hpPp/O87rm5uT69qXavAeFL+23btlVERISqqqpqPI+taAP+C3Xf8Iev40FERIQmT56s7OxsVVZWmr9PSkrSzTffrF/+8pesWRUkO/pFsNeUMcN+To4XH374ob7++mtJ0uDBg9W7d+86yzJeBIcpTkCQCgoKJFXPsY2JifFa1vMbqcLCwqDPXVVVpb/97W+SqhcLmzBhgtfyp2+Zu379+hoftqTqb0Rmz56tSZMm6dSpU0HH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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 201, + "width": 564 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "def gen_sampling_dist(rv, estfunc, n, N=10000):\n", + " \"\"\"\n", + " Simulate `N` samples of size `n` from the random variable `rv` to\n", + " generate the sampling distribution of the estimator `estfunc`.\n", + " \"\"\"\n", + " estimates = []\n", + " for i in range(0, N):\n", + " sample = rv.rvs(n)\n", + " estimate = estfunc(sample)\n", + " estimates.append(estimate)\n", + " return estimates\n", + "\n", + "zbars = gen_sampling_dist(rvZ, estfunc=mean, n=20)\n", + "sns.histplot(zbars)" + ] + }, + { + "cell_type": "markdown", + "id": "80120207-c5cf-4b3a-aca2-e7f67f2c8467", + "metadata": {}, + "source": [ + "#### Generating bootstrap approximations to sampling distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "cabba8c3-9654-4763-aeec-c306aa0ddffb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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vKuYK6hRo0a65557tHLlSrndbqtMxVCYCRMmsCrbz9S2fSdOnKhzzz1X9erZnz7gOuyNO2gAP3zzzTdas2aNpPIJDfv06VPrWJ4fGv/2t7/p3XffPeWveC6XS88884xGjRql3NzcWp8L3s4880y9+OKLat68ucrKyvTqq6+qf//++tWvfqUrr7xSb775puLi4jRq1Ci98MIL1l/WfHHs2DFru6ahb3FxcdYXlIrbglF7wWxXiT7rlDPOOMParmloy86dO61tXyc+pM86J9htK9Fvg+ncc8+tVULL8zWuqc95frn2p8/5cw7P89Cvw7tdJe8+/dxzz+mNN97wSs5IUn5+vv79739r8ODB+vbbb/2KH+1q275du3YNSnJG4jr8cyRoAD/MnTtXZWVlkqTrr79ehmHUOpbnBSYuLk433nij3nrrLf3vf//Thg0bNHXqVJ122mmSpMzMTN1+++3WuRG4888/X0888YTXbfOekpOTvW579lVhYaG1XdWEl54qypw8edKv86BywWpXiT7rFM/x5nPnzq2yXE5Ojt577z3rd19vcafPOifYbSvRb8ORZ9/5+apdP+fZJ/3pc/Tr0AtFu0refdowDA0dOlRLly7VZ599ps2bN2vmzJlq27atJOnrr7/WzTff7PX/AeGH/uqNBA3go/z8fL3xxhuSpKZNm+qqq64KKN6hQ4cklb/J/Otf/9Idd9yh9PR0xcfHq1mzZho8eLAWL15sjfH88MMPvVYkQO0VFxdr4sSJGjlypFwul3r06KEHHnhAM2fO1B133KH27dsrJydHDz/8sG644Qa/LgCef5mt6QOKZ5mSkhL/nwi8BLNdJfqsU37729/qzDPPlCS9++67evHFF08pU1hYqIkTJ3qt7uNrAp0+65xgt61Evw1Hnn2npj7nud+fPke/Dr1QtKv0U582DEMzZ87Uww8/rLPPPlv169dXamqq+vfvr//85z86++yzJUl79+7Vq6++6tc5EFr0V28kaAAfvfXWW9aEhoMHD/bpDaQ6CxYs0Mcff6xVq1ZVuRRh8+bNdf/991u/v/766wGdE+XuuOMOrVy5UpI0efJkzZkzRyNHjlT//v114403atmyZRo6dKgk6aOPPvJrGXXPzH/FGOnqVPwluLq5F+CbYLarRJ91SmxsrKZOnWrd9fT3v/9d1113nV577TW9/fbbeu6553TFFVfoww8/VO/eva3jfPkr3M/L0WdDK9htK9Fvw5Hn8Iqa+pzn3VL+9Dn6deiFol0l6fHHH9enn36qd999V/369au0TKNGjTR9+nTrd/p0eKO/eiNBA/jov//9r7V9+eWX2xIzKSnJa6K0ylxyySVKSkqSJG3fvp1brwP00UcfadWqVZKkQYMG6brrrjulTGxsrB588EFrVaCVK1f6vGrIzye9rElFGSamDEyw27UCfdYZF154oZ544gmrn2zdulUPP/ywbrvtNs2cOVPZ2dm64oordNddd1nHVCy7XhP6rLOC2bYV6LfhxbPP1TRczbNP+tPnGjZsWGmMms5Dv669ULRrhcTERLVu3braMh07drRWBDpw4IB15w3CD9dhbyRoAB8UFhZq8+bNkqS2bduqQ4cOITt3bGys2rRpI6n8ghetE2KFyurVq63tESNGVFkuNjbW60v+unXrfIqfnJxsbf/www/Vli0uLrZu209NTfUpPioX7Hb1B302OC6//HK99dZbGjFihFq3bq34+Hg1bdpUvXv31qxZs/TEE08oPz/fKl8xr0hN6LPOC1bb+oN+Gzqefa6m19mzT/rT5zyTeDX1a88y9OvaC0W7+usXv/iFtU2CJnxxHfbGMtuADzZt2mRla/v27Rvy80frLXxO+Prrr63tX/7yl9WW7dixo7XtuQRgdSomppOk77//vtqyhw4dsv5K27JlS5/io3LBbld/0WeDo1WrVnrwwQer3O85eWS7du18ikmfDQ/BaFt/0W9Dw58+57nfnz7XrFkzNWzYUPn5+TUuxVtaWqojR474fQ54C0W7+itYqw7BXlyHvfG/FvDBhg0brO1LL7004Hjffvut1qxZo5ycHJ133nn63e9+V235iqx/XFyc19KE8J9pmta22+2udi6DmJifbjL0ddWfJk2aKC0tTTk5OTUOn9m7d6+1nZGR4VN8VC7Y7UqfjQwfffSRpPLJIysmiKwJfTYy1KZt6bfhqX379tZ2TX3Oc7+/fS49PV2ZmZn68ssvqy23b98+a5JS+nXthaJdc3Nz9dZbb+no0aNq27ZtjQt2eN4106xZM5/Pg9DiOuyNIU6AD7Zv3y6p/EObHcObDh8+rOnTp+v555/XwoULqy27f/9+K5t87rnn1mp5YPykYqUOSdqxY0e1ZXfv3m1t+5Ol7969uyRp165d1sTSlfnwww+t7QsuuMDn+DhVsNuVPuucrKws3XLLLRo2bJg2btxYZbmTJ0/q/ffflySdc845atKkic/noM86I9htS78NT+3atVPTpk0lSVu2bKm2bMX+lJQUv7+MVfTrmr70efbrimPgv1C0a3FxsR555BHNmjVLL7/8crVlT5w4YX0eaN68udfnBIQfrsM/IUED1MDtdlvZ2oyMjIBXb5LKP2BWTEa4YcOGam+/nTVrlrU9cODAgM9d1/3617+2tqtbdtE0Tc2bN8/6vVevXj6fo2IYXElJiebPn19pmby8PC1ZskRS+YeaUM5rFI2C3a70Wec0bNhQq1at0vbt261Vuiozb948a96Da6+91q9z0GedEey2pd+Gp5iYGOtu5B07dujTTz+ttNzHH3+snTt3Sirvo553P/rCc0j6v//970rLlJaWWteERo0a+XWth7dQtGvz5s2t4TBZWVlVnkOSXn75ZZ08eVISfToScB3+CQkaoAaet776elt1TRISEjRkyBBJ5X8NuOOOO5SXl3dKudmzZ+vNN9+UVD4+c9CgQbacvy77/e9/r1atWkmS1q5d6/WhvIJpmnrsscesW+p79erl10Xg0ksv1RlnnCFJ+uc//6lt27Z57S8qKtKdd95pfeG4/vrra/NU4CHY7Uqfdc4ZZ5yhc889V5K0fPnySj+Qr1+/XjNnzpQktW7dWldffbVf56DPOiPYbUu/DV+jRo2y5ge56667rDlgKhw6dEh33323pPKhqH/84x/9PkeXLl3UtWtXSdKiRYv09ttve+03TVNTp07Vvn37JJVPMB+tq8KESijaddSoUdb2XXfdVenkvytXrtQLL7wgqfwunTFjxvh9HoQW1+GfGKbnwH0Ap1i1apVuueUWSdJNN92kiRMn+nTcli1bNHr0aEnlt+D9/K83J06c0ODBg7V//35J5UM0hg4dqrZt2+rYsWN66623rDenhg0bas6cOdYHWQRm69atuv7661VcXCyp/K+sAwYMUPPmzXX48GEtW7bM+utOamqqFi9e7DUUpqa2laQ1a9Zo3LhxMk1TcXFxGjx4sM477zy5XC69/vrr1jCb8847T3PnzuV2ehsEu13ps87ZvHmzrr/+eq/+1KVLFxUXF2vjxo1avXq1ysrKFBcXp1dffVXnnXee1/H02fAV7Lal34aWZ3uMHz9eEyZMqLLsjBkzrGEqaWlpGjFihNq1a6f9+/dr3rx5ysnJkSTdeOONuuOOO045/sCBA+rTp4+k8kmm16xZc0qZnTt3aujQoSouLpZhGPrDH/6gXr166eTJk1q6dKk++eQTSeWJuTfeeMNreW78JJzataSkRH/84x+tfpuSkqKhQ4eqQ4cOysvL05o1a7R27VpJ5ZMEP/PMM7r44osDfAWimz/t6+mNN97QPffcI0l69NFHq02gcx32HZMEAzXwzMxX3Cpth0aNGumVV17R+PHjtWPHDh08eFBPPvnkKeVatGihxx9/nA+MNurevbuef/55TZw4US6XSzt27Kh03pK2bdvq2WefrdUs8ZdccokefPBBTZs2TcXFxZo3b57X0BqpfJ6DZ599NmovMKEW7Halzzrn17/+tR588EFNnTq1yv7UpEkTzZw585Qv8L6izzoj2G1Lvw1fkyZN0rFjx7RkyRLl5OTo6aefPqXM4MGDdfvtt9f6HJ06ddI//vEP/fWvf1VBQYGWLVumZcuWeZVp06aNXnrpJZIzNgl2u9arV0+zZs3S7bffro0bN8rlcun5558/pVxKSoqmTZtGciaCcB0uR4IGqEF+fr61nZycbGvsFi1aaOHChVqxYoVWrlypnTt36vjx40pKSlLbtm112WWXaejQoXxoCILf/OY3evfddzV//nytXbtW+/btU35+vpKTk9WhQwdddtlluuaaawKac2j48OE6//zzNWfOHH3wwQc6cuSI4uLilJGRoT/84Q8aMmQIy7raLNjtSp91zvDhw9W1a1fNmTNHW7Zs0eHDhxUXF6d27dqpT58+GjlypFJSUgI+B3029ILdtvTb8BQbG6u//e1v6tevnxYsWKD//e9/crlcSkpKUpcuXTR8+PAaV97yxaWXXqqVK1fqlVde0fvvv6+DBw/KMAy1a9dOffv21ahRo2h7G4WiXZOTk/XSSy/pvffe09KlS/XZZ5/p2LFjatCggc444wxdcsklGj58uNLS0ux5UggZrsMMcQIAAAAAAHAckwQDAAAAAAA4jAQNAAAAAACAw0jQAAAAAAAAOIwEDQAAAAAAgMNI0AAAAAAAADiMBA0AAAAAAIDDSNAAAAAAAAA4jAQNAAAAAACAw0jQAAAAAAAAOIwEDQAAAAAAgMNI0AAAAAAAADiMBA0AAAAAAIDDSNAAAAAAAAA4jAQNAAAAAACAw0jQAAAAAAAAOIwEDQAAAAAAgMNI0AAAAAAAADiMBA0AAAAAAIDDSNAAAAAAAAA4jAQNAAAAAACAw0jQAAAAAAAAOIwEDQAAAAAAgMNI0AAAAAAAADiMBA0AAAAAAIDDSNAAAAAAAAA47P8Dq2FNseKoijEAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 201, + "width": 564 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "def gen_boot_dist(sample, estfunc, B=5000):\n", + " \"\"\"\n", + " Generate estimates from the sampling distribution of the estimator `estfunc`\n", + " based on `B` bootstrap samples (sampling with replacement) from `sample`.\n", + " \"\"\"\n", + " n = len(sample)\n", + " bestimates = []\n", + " for i in range(0, B):\n", + " bsample = np.random.choice(sample, n, replace=True)\n", + " bestimate = estfunc(bsample)\n", + " bestimates.append(bestimate)\n", + " return bestimates\n", + "\n", + "\n", + "zbars_boot = gen_boot_dist(pricesW, estfunc=mean)\n", + "sns.histplot(zbars_boot)" + ] + }, + { + "cell_type": "markdown", + "id": "4ebbc7ee-f2d5-40a9-a9e6-eeb12a1e864e", + "metadata": {}, + "source": [ + "#### The permutation test for comparing two groups" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "3a3c576b-51ad-4055-9c8e-71107d47279b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0002" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def permutation_test_dmeans(xsample, ysample, P=10000):\n", + " \"\"\"\n", + " Compute the p-value of the observed difference between means\n", + " `dmeans(xsample,ysample)` under the null hypothesis where\n", + " the group membership is randomized.\n", + " \"\"\"\n", + " # 1. Compute the observed difference between means\n", + " obsdhat = dmeans(xsample, ysample)\n", + "\n", + " # 2. Get sampling dist. of `dmeans` under H0\n", + " pdhats = []\n", + " allprices = np.concatenate((pricesW, pricesE))\n", + " for i in range(0, P):\n", + " pallprices = np.random.permutation(allprices)\n", + " psampleW = pallprices[0:len(pricesW)]\n", + " psampleE = pallprices[len(pricesW):]\n", + " pdhat = dmeans(psampleW, psampleE)\n", + " pdhats.append(pdhat)\n", + "\n", + " # 3. Compute the p-value\n", + " tails = [d for d in pdhats if abs(d) > obsdhat]\n", + " pvalue = len(tails) / len(pdhats)\n", + " return pvalue\n", + "\n", + "np.random.seed(42)\n", + "permutation_test_dmeans(pricesW, pricesE)" + ] + }, + { + "cell_type": "markdown", + "id": "762cfeda-989e-4cd2-80af-63d4fcdac9f4", + "metadata": {}, + "source": [ + "\n", + "See the file [stats_helpers.py](https://github.com/minireference/noBSstatsnotebooks/blob/main/notebooks/stats_helpers.py)\n", + "for more examples of Python functions that \n", + "for definitions all the important statistical analysis procedures in STATS 101.\n", + "\n", + "In the past, students first contact with statistics was presented as a bunch of procedures\n", + "without explanation, and students were supposed to memorize when to use which \"recipe\".\n", + "Statistics instructors always had to \"skip the details\" because it's super complicated to\n", + "explain all the details (probability models, sampling distributions, p-value calculations, etc.).\n", + "\n", + "Now that we have Python on our side, we don't have to water-down the material,\n", + "but can instead show all the detailed calculations for statistical tests,\n", + "as easy-to-understand Python source code, which makes it much much easier to understand what is going on.\n", + "Currently,\n", + "the file [stats_helpers.py](https://github.com/minireference/noBSstatsnotebooks/blob/main/notebooks/stats_helpers.py)\n", + "is 400 lines of code.\n", + "With a little bit of Python knowledge,\n", + "you can read this file and understand all of statistics." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f812d89a-d782-4879-a7f0-51b587ca2a51", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "4ebe1028-d088-41fb-92d8-0518649e9fd5", + "metadata": {}, + "source": [ + "## Links\n", + "\n", + "- Book website [noBSstats.com](https://nobsstats.com/intro.html): contains all the notebooks, demos, and visualizations from the book.\n", + "- [Detailed book outline](https://docs.google.com/document/d/1fwep23-95U-w1QMPU31nOvUnUXE2X3s_Dbk5JuLlKAY/edit): continuously updated list of the topics that are covered in each section.\n", + "- [Python tutorial](https://nobsstats.com/tutorials/python_tutorial.html)\n", + "- [Pandas tutorial](https://nobsstats.com/tutorials/pandas_tutorial.html)\n", + "- [Seaborn tutorial](https://nobsstats.com/tutorials/seaborn_tutorial.html)\n", + "- Previous blog posts:\n", + " - [Outline of the stats curriculum research](https://minireference.com/blog/fixing-the-introductory-statistics-curriculum/)\n", + " - [Book proposal](https://minireference.com/blog/no-bullshit-guide-to-statistics-progress-update/)\n", + " - [Stats survey results](https://minireference.com/blog/what-stats-do-people-want-to-learn/)\n", + "- [There's Only One Test](https://www.youtube.com/watch?v=S41zQEshs5k) talk by Allen B. Downey\n", + "- [Statistics for Hackers](https://www.youtube.com/watch?v=Iq9DzN6mvYA) talk by Jake Vanderplas\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}