{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# IntroStat Week 10\n", "\n", "Welcome to the 10th lecture in IntroStat\n", "\n", "During the lectures we will present both slides and notebooks. \n", "\n", "This is the notebook used in the lecture in week 10.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import scipy.stats as stats\n", "import statsmodels.api as sm\n", "import statsmodels.formula.api as smf\n", "import statsmodels.stats.power as smp\n", "import statsmodels.stats.proportion as smprop\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Example: Normal approximation of binomial distribution" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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WlpaFBkZqXHjxmnv3r164IEHunxeAEDgaW9vV319vRYuXOhUn5GRof3793vtPOfPn9fFixd16623un3fbrfLbrc7XttsNq+dGwAAAIBvkSgBAPhEXl6e8vLy3L5XVVXlUmfcJJH36quv6tVXX+3ReQEAgae1tVUdHR0u+1HFxMS47FvVEwsXLtTtt9+uSZMmuX2/pKREy5cv99r5AAAAAPSebu1R4slGidu3b9fkyZMVHR2tiIgIpaamaufOnS5x27Zt06hRoxQeHq5Ro0bpnXfe6U7XAAAAAAQh03Urag3DcKnrrpUrV2rLli3avn27zGaz25jCwkK1tbU5yvHjx71ybgAAAAC+53GixNONEvfu3avJkyerpqZG9fX1+sEPfqAnnnhCDQ0Njpi6ujplZWUpOztbn332mbKzs/X000/r448/7v7IAAAAAAS8qKgohYSEuKweOXnypMsqk+5YtWqVVqxYoV27dunee+/tNC48PFwRERFOBQAAoM8zmZxLoJ8X6ITHiZJrN0pMSkpSaWmp4uPjVV5e7ja+tLRU//iP/6j7779fd911l1asWKG77rpLv//9751iJk+erMLCQo0cOVKFhYV65JFHVFpa2u2BAQAAAAh8YWFhslgsqq2tdaqvra1VWlpaj9r+9a9/rRdffFF//OMflZKS0qO2AAAAAPRdHiVKrm6UmJGR4VTvyUaJly9f1tmzZ502Qayrq3Npc8qUKTds0263y2azORUAAAAAwaegoEBvvPGGKisr1dTUpPnz56u5uVm5ubmSrjwWa9asWU7HNDY2qrGxUefOndOpU6fU2NioL774wvH+ypUrtXjxYlVWVmrYsGFqaWlRS0uLzp0716tjAwAAAOB7Hm3m7o2NEl955RV9/fXXevrppx11LS0tHrfJZokAAAAAJCkrK0unT59WcXGxrFarkpOTVVNTo4SEBEmS1Wp1eVTwuHHjHP+ur6/X5s2blZCQoKNHj0q6si9je3u7pk2b5nTc0qVLtWzZMp+OBwAAAEDv6tZm7t3dKHHLli1atmyZqqurddttt/WoTTZLBAAAAHBVXl6ejh49Krvdrvr6ej300EOO96qqqrR7926neMMwXMrVJIkkHT161G0MSRIACGxlZWVKTEyU2WyWxWLRvn37Oo21Wq2aOXOmRowYoQEDBig/P99t3LZt2zRq1CiFh4dr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hshkMul3v/ud0/uGYWjZsmUaMmSIvvWtb+n73/++Pv/8c/90FpKC637SE8uWLZPJZHIqsbGx/u5Wn8D3vWdudr1+9rOfuXzWJkyY4J/O+llX/g/I56vvCIT7SX+d6wNpHg6EOTKQ5q6ujKU/fE3Ky8t17733KiIiQhEREUpNTdUf/vAHx/v95esRLALhfuILgTTX+1ogzcO9gTmy+9z93ra3rheJkv9fdXW18vPzVVRUpIaGBqWnpyszM1PNzc3+7ppP7NmzR88//7w++ugj1dbW6tKlS8rIyNDXX3/t76751F/+8hdt2LBB9957r7+74lP/7//9P02cOFEDBw7UH/7wB33xxRd65ZVX9L3vfc/fXfOJl19+WevXr9frr7+upqYmrVy5Ur/+9a/12muv+btrXvH1119rzJgxev31192+v3LlSq1evVqvv/66/vKXvyg2NlaTJ0/W2bNne7mnkILvftJT99xzj6xWq6McPHjQ313qE/i+98zNrpck/fCHP3T6rNXU1PRiD/uOrvwfkM9X3xBI95P+ONcH0jwcCHNkIM1dXf1ZvK9/Te644w796le/0oEDB3TgwAH93d/9nZ588knHL676y9cjGATS/cTbAmmu97VAmod7A3Nk93T2e9teu14GDMMwjAceeMDIzc11qhs5cqSxcOFCP/Wod508edKQZOzZs8ffXfGZs2fPGnfddZdRW1trPPzww8a8efP83SWfeeGFF4wHH3zQ393oNY899pjx7LPPOtX9+Mc/Np555hk/9ch3JBnvvPOO4/Xly5eN2NhY41e/+pWj7sKFC0ZkZKSxfv16P/QQwX4/8cTSpUuNMWPG+LsbfR7f9565/noZhmHMnj3bePLJJ/3Sn77u+v8D8vnqOwLlfhIIc30gzcOBMkcG0tzl7mfx/vg1MQzDGDRokPHGG2/0669HIAqU+4mvBdJc3xsCaR7uLcyRN9bZ721783qxokRSe3u76uvrlZGR4VSfkZGh/fv3+6lXvautrU2SdOutt/q5J77z/PPP67HHHtOkSZP83RWf27Fjh1JSUvSTn/xEt912m8aNG6eNGzf6u1s+8+CDD+pPf/qTvvrqK0nSZ599pg8//FCPPvqon3vme0eOHFFLS4vT/BUeHq6HH344aOavvoT7iecOHTqkIUOGKDExUdOnT9fhw4f93aU+j+/77tm9e7duu+023X333fr5z3+ukydP+rtLfcL1/wfk89U3BNr9JNDm+kD8Pulvc2QgzV2d/Szen74mHR0d2rp1q77++mulpqb2669HoAm0+0lv4nN8Y4E0D/sac2TXdPZ72968XqFeba2fam1tVUdHh2JiYpzqY2Ji1NLS4qde9R7DMFRQUKAHH3xQycnJ/u6OT2zdulWffvqp/vKXv/i7K73i8OHDKi8vV0FBgRYtWqRPPvlEc+fOVXh4uGbNmuXv7nndCy+8oLa2No0cOVIhISHq6OjQSy+9pBkzZvi7az53dY5yN38dO3bMH10KasF+P/HU+PHjtWnTJt199936z//8T/3TP/2T0tLS9Pnnn2vw4MH+7l6fxfe95zIzM/WTn/xECQkJOnLkiJYsWaK/+7u/U319vcLDw/3dPb9x939APl99QyDdTwJxrg+075P+NkcG0tzV2c/i/eVrcvDgQaWmpurChQv6zne+o3feeUejRo1y/OKqv309AlEg3U96W3+dV3pDIM3DvsQc2XU3+r1tb362SJRcw2QyOb02DMOlLhD9wz/8g/7t3/5NH374ob+74hPHjx/XvHnztGvXLpnNZn93p1dcvnxZKSkpWrFihSRp3Lhx+vzzz1VeXh6QiZLq6mr9y7/8izZv3qx77rlHjY2Nys/P15AhQzR79mx/d69XBOv81Vfx9eiazMxMx79Hjx6t1NRU3Xnnnfrtb3+rgoICP/asf+Bz1nVZWVmOfycnJyslJUUJCQl677339OMf/9iPPfOvG/0fkM9X3xAIX4dAnusD4esj9b85MpDmrs7G0l++JiNGjFBjY6POnDmjbdu2afbs2dqzZ4/j/f729QhkfC26j2vnKpDmYV9ijuyarv7etjeuF4/ekhQVFaWQkBCXbPrJkyddslWB5n/8j/+hHTt26IMPPtAdd9zh7+74RH19vU6ePCmLxaLQ0FCFhoZqz549Wrt2rUJDQ9XR0eHvLnpdXFycRo0a5VSXlJQUsJu1/c//+T+1cOFCTZ8+XaNHj1Z2drbmz5+vkpISf3fN52JjYyUpKOevviiY7yfecMstt2j06NE6dOiQv7vSp/F933NxcXFKSEgI6s9aZ/8H5PPVNwTy/SQQ5vpA/z7py3NkIM1dnvws3le/JmFhYfpv/+2/KSUlRSUlJRozZozWrFnTL78egSqQ7ye+xufYvUCah32NObJrbvZ726vXpDeuF4kSXfngWiwW1dbWOtXX1tYqLS3NT73yLcMw9A//8A/avn27/vf//t9KTEz0d5d85pFHHtHBgwfV2NjoKCkpKfrpT3+qxsZGhYSE+LuLXjdx4kR9+eWXTnVfffWVEhIS/NQj3zp//rwGDHCezkJCQnT58mU/9aj3JCYmKjY21mn+am9v1549ewJ2/urLgvF+4k12u11NTU2Ki4vzd1f6NL7ve+706dM6fvx4UH7WbvZ/QD5ffUMg308CYa4P9O+TvjhHBtLc1Z2fxfvi18QdwzBkt9v71dcj0AXy/cTX+Bw7C6R52F+YI9272e9thw8f3nvXy6tbw/djW7duNQYOHGhUVFQYX3zxhZGfn2/ccsstxtGjR/3dNZ/4xS9+YURGRhq7d+82rFaro5w/f97fXesVDz/8sDFv3jx/d8NnPvnkEyM0NNR46aWXjEOHDhlvvvmm8e1vf9v4l3/5F393zSdmz55t3H777ca//uu/GkeOHDG2b99uREVFGf/4j//o7655xdmzZ42GhgajoaHBkGSsXr3aaGhoMI4dO2YYhmH86le/MiIjI43t27cbBw8eNGbMmGHExcUZNpvNzz0PTsF2P+mJX/7yl8bu3buNw4cPGx999JHx+OOPG9/97ne5Vgbf95660fU6e/as8ctf/tLYv3+/ceTIEeODDz4wUlNTjdtvvz0or1dX/g/I56tvCJT7SX+d6wNpHg6EOTKQ5q6bjaW/fE0KCwuNvXv3GkeOHDH+7d/+zVi0aJExYMAAY9euXYZh9J+vRzAIlPuJLwTSXO9rgTQP9wbmyJ65/ve2vXW9SJRcY926dUZCQoIRFhZm3HfffcaePXv83SWfkeS2/PM//7O/u9YrAj1RYhiG8fvf/95ITk42wsPDjZEjRxobNmzwd5d8xmazGfPmzTOGDh1qmM1mY/jw4UZRUZFht9v93TWv+OCDD9x+v86ePdswDMO4fPmysXTpUiM2NtYIDw83HnroIePgwYP+7XSQC6b7SU9kZWUZcXFxxsCBA40hQ4YYP/7xj43PP//c393qE/i+98yNrtf58+eNjIwMIzo62hg4cKAxdOhQY/bs2UZzc7O/u+0XXfk/IJ+vviMQ7if9da4PpHk4EObIQJq7bjaW/vI1efbZZx3zU3R0tPHII484fgFoGP3n6xEsAuF+4guBNNf7WiDNw72BObJnrv+9bW9dL5NhGEZPV6UAAAAAAAAAAAD0R+xRAgAAAAAAAAAAghaJEgAAAAAAAAAAELRIlAAAAAAAAAAAgKBFogQAAAAAAAAAAAQtEiUAAAAAAAAAACBokSgBAAAAAAAAAABBi0QJAAAAAAAAAAAIWiRKAAAAAAAAAABA0CJRAgAAAAAAAAAAghaJEgAAAAAAAAAAELRIlAAAAAAAAAAAgKD1/wF8sFde9S294AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "p = 1/2\n", "\n", "fig, axs = plt.subplots(1, 4, figsize=(20,4))\n", "\n", "# Plot binomial distribution for n = 10\n", "n = 10\n", "axs[0].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.2, color='red')\n", "\n", "# Plot binomial distribution for n = 20\n", "n = 20\n", "axs[1].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.3, color='red')\n", "\n", "# Plot binomial distribution for n = 30\n", "n = 30\n", "axs[2].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.4, color='red')\n", "\n", "# Plot binomial distribution for n = 40\n", "n = 40\n", "axs[3].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.5, color='red')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the binomial for lager n looks more and more like a normal distribution.\n", "\n", "But this is a little different if p not 1/2 - the binomial distribution is non-symmetric and therefore also less \"normal\" looking:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Lets plot some binomialdistributions with p = 0.10 and increasing number of observation (n)\n", "\n", "fig, axs = plt.subplots(1, 4, figsize=(20,4))\n", "\n", "p = 1/10\n", "\n", "# Again for n = 10,20,30,40\n", "n = 10\n", "axs[0].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.2, color='red')\n", "n = 20\n", "axs[1].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.3, color='red')\n", "n = 30\n", "axs[2].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.4, color='red')\n", "n = 40\n", "axs[3].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.5, color='red')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see the change when n increases, but is does not look normal - it is still asymmetric when n = 40 (right most plot)\n", "\n", "What if we increase n even more?" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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BQYGKj4+Xn/4wx8sr3tavvbk5ubKZDIpIyPD0uZped/qd0FPy9ddeep44o3n1pt5w3nmhrNnz+rZZ5/VkCFD9LWvfU0TJkxQZWWl5XVPy/vq1atasWKFoqKidNttt2nkyJFas2aNrl27Zolx95xd8ftgS0uL/u3f/k1Dhw7VwIED9eSTT+pvf/tbL2bhXdxxPPGkz7+e8nvXiBEjbPIwmUxatGiRpP59PDzpvNVZLleuXNELL7ygcePGaeDAgQoPD1daWpr+/ve/W23jkUcesTlWs2bN6uVMXPO3TFcfFwolkoqLi5WRkaGcnBxVVVUpMTFRycnJqqur6+uu9Zh77rlH9fX1luXYsWN93SWX+eqrrzR+/Hi9/vrrdl9ft26dNmzYoNdff11/+ctfFBoaqkcffVRffvllL/fUdW6VsyR95zvfsTrmJSUlvdhD1yovL9eiRYv0wQcfqKysTFevXlVSUpK++uorS4ynHeeu5Cx51nF2R54+nnjb+dUbzzV33nmnfvazn+no0aM6evSovvWtb+mpp56yfFDwtHxv9pe//EVbtmzRvffea9XuiXl39rugJ+brbjx5PPHGc2t73nSe+e///m9NmTJFfn5++sMf/qBPP/1UP//5z/WNb3zDEuNpeb/yyisqLCzU66+/rpqaGq1bt06vvvqqXnvtNUuMu+fsit8HMzIy9Pbbb2v37t16//33dfHiRT3++ONqa2vrrTS8hruOJ572+dcTfu/6y1/+YpVDWVmZJOn73/++Jaa/Hg9POm91lsulS5f00UcfaeXKlfroo4+0d+9eff7553ryySdtYp977jmrY/XLX/6yN7pvxRV/y3T5cTFgPPDAA0Z6erpV25gxY4xly5b1UY961osvvmiMHz++r7vRKyQZb7/9tuXna9euGaGhocbPfvYzS9vly5eNoKAgo7CwsA966Ho352wYhjF37lzjqaee6pP+9IZz584Zkozy8nLDMLzjON+cs2F4/nF2B940nnjj+dUbzzWGYRiDBg0y3njjDY/P98svvzTuuusuo6yszHj44YeNJUuWGIbhmce5s98FPTFfd+RN44k3nVu96TxjGIbxwgsvGA8++GCHr3ti3o899pgxb948q7bvfe97xrPPPmsYhufl7MzvgxcuXDD8/PyM3bt3W2LOnj1rDBgwwPjjH//Ya333Fp4ynrjz519P/b1ryZIlxqhRo4xr164ZhuE+x8OTzlv2/v53syNHjhiSjNOnT1va2v8O0l8487fMnjguXn9HSWtrqyorK5WUlGTVnpSUpMOHD/dRr3reiRMnFB4erqioKM2aNUsnT57s6y71itraWjU0NFgd74CAAD388MMefbwl6cCBA7rjjjt0991367nnntO5c+f6uksu09TUJEkaPHiwJO84zjfnfIMnH+f+zlvHkxu88f+dp+fc1tam3bt366uvvlJ8fLzH57to0SI99thjmjp1qlW7p+bd0e+CnpqvO/G28cSbzq3edp555513FBcXp+9///u64447NHHiRG3dutXyuifm/eCDD+pPf/qTPv/8c0nSxx9/rPfff1/Tp0+X5Jk5t9eV/CorK3XlyhWrmPDwcMXExHjEe9CfeNJ44u6ffz3t967W1lb9+te/1rx582QymSzt7nI82vP081ZTU5NMJpPV3ZyS9Oabb2ro0KG65557tHTp0n53B9MNnf2b6onj4tvtHru5xsZGtbW1KSQkxKo9JCREDQ0NfdSrnjVp0iTt2LFDd999t/7rv/5LP/3pT5WQkKDjx49ryJAhfd29HnXjmNo73qdPn+6LLvWK5ORkff/731dkZKRqa2u1cuVKfetb31JlZaUCAgL6unvdYhiGsrKy9OCDDyomJkaS5x9nezlLnn2c3YE3jifteeP/O0/N+dixY4qPj9fly5d1++236+2339bYsWMtv2x6Wr6StHv3bn300Uf6y1/+YvOaJx7nzn4X9MR83Y03jSfedG71tvOMJJ08eVIFBQXKysrS8uXLdeTIES1evFgBAQFKS0vzyLxfeOEFNTU1acyYMfLx8VFbW5tefvllzZ49W5LnHusbupJfQ0OD/P39NWjQIJsYTzvH9TVPGU/c/fOvJ/7e9dvf/lYXLlzQD3/4Q0ubuxyPm3nyeevy5ctatmyZ5syZo8DAQEv7D37wA0VFRSk0NFSffPKJsrOz9fHHH1sep9Zf3OrfVE8cF68vlNzQvgIqXT8R39zmKZKTky3fjxs3TvHx8Ro1apR+9atfKSsrqw971nu86XhLUkpKiuX7mJgYxcXFKTIyUu+++66+973v9WHPuu/HP/6x/vM//1Pvv/++zWueepw7ytmTj7M78dR/d13lqfl707lm9OjRqq6u1oULF7Rnzx7NnTtX5eXlltc9Ld8zZ85oyZIlKi0tldls7jDOk/Lu7HfBGxMkelK+7sobjoG3nFu98TwjSdeuXVNcXJzWrl0rSZo4caKOHz+ugoICpaWlWeI8Ke/i4mL9+te/1s6dO3XPPfeourpaGRkZCg8P19y5cy1xnpSzPc7k52nvQX/i7v/e3P3zryf+3lVUVKTk5GSFh4db2tzleHTE085bV65c0axZs3Tt2jXl5+dbvfbcc89Zvo+JidFdd92luLg4ffTRR7rvvvt6u6sdcvbfVHeOi9c/emvo0KHy8fGxqTSdO3fOpproqQYOHKhx48bpxIkTfd2VHhcaGipJXn28JSksLEyRkZFuf8z/7d/+Te+8847ee+893XnnnZZ2Tz7OHeVsj6ccZ3fh7eOJN/6/89Sc/f399T/+x/9QXFyccnNzNX78eG3cuNFj862srNS5c+cUGxsrX19f+fr6qry8XJs2bZKvr68lN0/Lu732vwt66nF2J94ynnjTudVbzzNhYWEaO3asVVt0dLRlEmlPPNb/83/+Ty1btkyzZs3SuHHjlJqaqszMTOXm5kryzJzb60p+oaGham1t1X//9393GAPX8ITxxBM//7r7712nT5/W/v37tWDBgk7j3OV4eOJ568qVK3rmmWdUW1ursrIyq7tJ7Lnvvvvk5+fX74/Vzf+meuK4eH2hxN/fX7GxsTa3F5WVlSkhIaGPetW7WlpaVFNTo7CwsL7uSo+7cWtZ++Pd2tqq8vJyrzneknT+/HmdOXPGbY+5YRj68Y9/rL179+r//J//o6ioKKvXPfE43ypne9z9OLsbbx9PvPH/nSfmbI9hGGppafHYfL/97W/r2LFjqq6utixxcXH6wQ9+oOrqao0cOdIj826v/e+Cnnqc3YmnjyfeeG711vPMlClT9Nlnn1m1ff7554qMjJTkmcf60qVLGjDA+s8sPj4+unbtmiTPzLm9ruQXGxsrPz8/q5j6+np98sknHvEe9CfuPJ548udfd/+96z/+4z90xx136LHHHus0zl2Oh6edt24USU6cOKH9+/d3aYqF48eP68qVK/3+WN38b6pHjotTU8B7mN27dxt+fn5GUVGR8emnnxoZGRnGwIEDjVOnTvV113rEv//7vxsHDhwwTp48aXzwwQfG448/bnz961/3mHy//PJLo6qqyqiqqjIkGRs2bDCqqqqM06dPG4ZhGD/72c+MoKAgY+/evcaxY8eM2bNnG2FhYUZzc3Mf99x5neX85ZdfGv/+7/9uHD582KitrTXee+89Iz4+3hg2bJjb5vyjH/3ICAoKMg4cOGDU19dblkuXLlliPO043ypnTzzO7sjTxxNvO79647kmOzvbOHjwoFFbW2v853/+p7F8+XJjwIABRmlpqWEYnpdvRx5++GFjyZIllp89Le9b/S7oafm6I08eT7zx3GqPp59nDMMwjhw5Yvj6+hovv/yyceLECePNN980vva1rxm//vWvLTGelvfcuXONYcOGGf/7f/9vo7a21ti7d68xdOhQ4yc/+Yklxt1zdsXvg+np6cadd95p7N+/3/joo4+Mb33rW8b48eONq1ev9lVaHstdxxNP+vzrSb93tbW1GcOHDzdeeOEFq/b+fjw86bzVWS5XrlwxnnzySePOO+80qqurrf7vtLS0GIZhGH/961+N1atXG3/5y1+M2tpa49133zXGjBljTJw4sV/l0tV/U64+LhRK/mnz5s1GZGSk4e/vb9x3331GeXl5X3epx6SkpBhhYWGGn5+fER4ebnzve98zjh8/3tfdcpn33nvPkGSzzJ071zAMw7h27Zrx4osvGqGhoUZAQIDx0EMPGceOHevbTndTZzlfunTJSEpKMoKDgw0/Pz9j+PDhxty5c426urq+7rbT7OUqyfiP//gPS4ynHedb5eyJx9ldefJ44m3nV28818ybN8/y7zc4ONj49re/bSmSGIbn5duRm/+A6Wl53+p3QU/L11156njijedWezz9PHPD73//eyMmJsYICAgwxowZY2zZssXqdU/Lu7m52ViyZIkxfPhww2w2GyNHjjRycnIsf6AyDPfP2RW/D/6///f/jB//+MfG4MGDjdtuu814/PHH+dzSg9xxPPGkz7+e9HvXvn37DEnGZ599ZtXe34+HJ523Osultra2w/877733nmEYhlFXV2c89NBDxuDBgw1/f39j1KhRxuLFi43z58/3q1y6+m/K1cfFZBiG4cSNKAAAAAAAAAAAAG7P6+coAQAAAAAAAAAA3otCCQAAAAAAAAAA8FoUSgAAAAAAAAAAgNeiUAIAAAAAAAAAALwWhRIAAAAAAAAAAOC1KJQAAAAAAAAAAACvRaEEAAAAAAAAAAB4LQolAAAAAAAAAADAa1EoAQAAAAAAAAAAXotCCQAAAAAAAAAA8FoUSgAAAAAAAAAAgNf6/401+QvwUFekAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(1, 4, figsize=(20,4))\n", "\n", "p = 1/10\n", "\n", "# plotting bimomial distributions for n = 25, 50, 100, 150\n", "n = 25\n", "axs[0].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.2, color='red')\n", "n = 50\n", "axs[1].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.3, color='red')\n", "n = 100\n", "axs[2].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.4, color='red')\n", "n = 150\n", "axs[3].bar(np.arange(0, n+1, 1), stats.binom.pmf(k=np.arange(0,n+1,1), n=n, p=p), width=0.5, color='red')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Eventually (when n = 150) the distribution does look much more like a normal distribution.\n", "\n", "Conclusion: the normal distribution is a good approximation is n is large enough - and \"enough\" depends on the value of p." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Confidence interval of proportion for left-handed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. **Calculating Sample Proportion**: Given a sample size of $ n = 100 $ people, with $ x = 10 $ left-handed individuals, what is the sample proportion of left-handed people in this sample?\n", "\n", "$\\hat{p}$ is the sample proportion, calculated as $ \\hat{p} = \\frac{x}{n} $." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.1\n" ] } ], "source": [ "n = 100 # total number of people in the sample\n", "x = 10 # number of lefthanded in the sample\n", "\n", "p_hat = x/n\n", "print(p_hat)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. **Calculating Standard Error**: Using the sample proportion calculated, what is the standard error of the proportion for left-handed individuals in this sample?\n", "\n", "$ \\sigma_p $ is the standard error of the sample proportion, calculated as $ \\sigma_p = \\sqrt{\\frac{\\hat{p}(1 - \\hat{p})}{n}} $." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.030000000000000002\n" ] } ], "source": [ "# compute the standard error\n", "se_p_hat = np.sqrt(p_hat*(1-p_hat)/n)\n", "print(se_p_hat)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. **Calculating Confidence Interval** (assuming normal approximation): Assuming a normal approximation, what is the 95% confidence interval for the proportion of left-handed individuals in the population, based on this sample?\n", "\n", "$\\hat{p} \\pm z_{1-\\alpha/2} \\sigma_p$\n", "\n", "where:\n", "- $ \\hat{p} $ is the sample proportion, calculated as $ \\hat{p} = \\frac{x}{n} $.\n", "- $ z_{1-\\alpha/2} $ is the critical value from the $ Z $-distribution for a confidence level of $ 1 - \\alpha $.\n", "- $ \\sigma_p $ is the standard error of the sample proportion, calculated as $ \\sigma_p = \\sqrt{\\frac{\\hat{p}(1 - \\hat{p})}{n}} $.\n", "- Confidence level 95% (implying $ z_{1-\\alpha/2} \\approx 1.96 $ for a two-tailed interval." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.0412, 0.1588]\n" ] } ], "source": [ "# compute confidence-interval using normal-approximation\n", "print([p_hat - 1.96*se_p_hat, p_hat + 1.96*se_p_hat])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Is it correct to use the normal approximation?\n", "\n", "**Rule of thumb** \n", "Assume $ X \\sim \\text{bin}(n, p) $. The normal distribution is a good approximation for the binomial distribution
\n", "if $ np \\geq 15$ and
\n", "if $ n(1 - p) \\geq 15 $
\n", "that is, expected number of successes ($p$) and failures ($1-p$) are both at least 15." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10.0, 90.0]\n" ] } ], "source": [ "### is it CORRECT to use the normal approximation?\n", "# is np > 15 ?\n", "# is n(1-p) > 15 ?\n", "\n", "print([n*p_hat, n*(1-p_hat)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These numbers are NOT both > 15\n", "\n", "We should use another method for small samples\n", "\n", "**\"Plus 2\" approach (Note 7.7)**\n", "\n", "If the sample is not large, use $\\tilde x= x+2$ and $\\tilde n = n + 4$.\n", "\n", "In the confidence interval, insert: \n", "$$\n", "\\tilde p \\pm z_{1-\\alpha/2} \\, \\, \\sqrt{\\tilde p(1-\\tilde p)/\\tilde n}\n", "$$" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Confidence Interval (using plus-2 approach): [0.053981472743028336, 0.17678775802620245]\n", "Margin of Error: 0.0614\n" ] } ], "source": [ "# Alternative method for small samples ( Remark 7.7 in the book )\n", "\n", "# \"plus-2\" method:\n", "\n", "p_tilde = (x+2)/(n+4)\n", "\n", "se_p_tilde = np.sqrt(p_tilde*(1-p_tilde)/(n+4))\n", "\n", "print(\"Confidence Interval (using plus-2 approach):\", [p_tilde - 1.96*se_p_tilde, p_tilde + 1.96*se_p_tilde])\n", "\n", "print(f\"Margin of Error: {1.96 * se_p_tilde:.4f}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sample Size needed to achieve a given precision\n", "\n", "**Experiment planning: (1) When we have a reasonable guess for population proportion** \n", "How large does the sample size need to be to achieve a given precision?\n", "\n", "**Method 7.13** \n", "If you want an expected (given) margin of error (ME) in a $ (1 - \\alpha) $-confidence interval, the required sample size is:\n", "\n", "$\n", "n = p(1 - p) \\left( \\frac{z_{1 - \\alpha / 2}}{\\text{ME}} \\right)^2\n", "$\n", "\n", "where $ p $ is a reasonable guess for the population proportion.\n", "\n", "**Example Calculation in Python:**\n", "\n", "Suppose we want to **determine the sample size** required for a 95% confidence level with a margin of error of 0.05 and an estimated population proportion $ p = 0.5 $." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Required sample size: 385\n" ] } ], "source": [ "import math\n", "\n", "# Given values\n", "p = 0.5 # estimated population proportion\n", "z = 1.96 # z-value for 95% confidence\n", "ME = 0.05 # margin of error\n", "\n", "# Sample size calculation\n", "n = p * (1 - p) * (z / ME) ** 2\n", "\n", "print(f\"Required sample size: {math.ceil(n)}\")\n", "\n", "# The required sample size is approximately 385." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Experiment planning: (2) When we DO NOT have a reasonable guess for population proportion** \n", "How large does the sample size need to be to achieve a given precision?\n", "\n", "**Method 7.13** \n", "If you want an expected (given) margin of error (ME) in a $(1 - \\alpha)$-confidence interval but do *not* have a reasonable guess of $ p $, the required sample size is:\n", "\n", "$\n", "n = \\frac{1}{4} \\left( \\frac{z_{1 - \\alpha/2}}{\\text{ME}} \\right)^2,\n", "$\n", "\n", "because the \"worst case\" is $ p = \\frac{1}{2} $.\n", "\n", "**Solution: Without assuming a guess for $ p $:**\n", "\n", "$\n", "n = \\frac{1}{4} \\left( \\frac{1.96}{0.01} \\right)^2 = 9604\n", "$" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Required sample size: 3458\n", "Required sample size: 9604\n" ] } ], "source": [ "import math\n", "\n", "# Given values\n", "p = 0.1 # estimated population proportion\n", "z = 1.96 # z-value for 95% confidence\n", "ME = 0.01 # margin of error\n", "\n", "# Sample size calculation, when we can estimate\n", "n = p * (1 - p) * (z / ME) ** 2\n", "\n", "print(f\"Required sample size: {math.ceil(n)}\")\n", "\n", "# Sample size calculation, without the best guess or estimate\n", "n = 1/4 * (z / ME) ** 2\n", "\n", "print(f\"Required sample size: {math.ceil(n)}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "### Example: Hypothesis test for proportion of left-handed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Are half of all Danish citizens left-handed?**\n", "\n", "We want to test if the true proportion could be $p_0 = 0.50$ (50:50 left and right-handed people)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-8.0 1.244192114854348e-15\n" ] } ], "source": [ "z_obs,p_value = smprop.proportions_ztest(count=10, nobs=100, value=0.5, prop_var=0.5) \n", "# We want the proportion variance to be based on the proportion under the null hypothesis (prop_var = 0.5, As default we want to input this)\n", "# Otherwise the function as default uses the proportion from the sample to estimate the variance\n", "\n", "print(z_obs, p_value)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\n", "z_{\\text{obs}} = \\frac{\\hat{p} - p_0}{\\sqrt{p_0(1 - p_0) / n}}\n", "$" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-8.0\n" ] } ], "source": [ "# We can also calculate z_obs *manually*:\n", "\n", "z_obs = (0.10 - 0.50)/np.sqrt(0.50*(1-0.50)/100)\n", "\n", "print(z_obs)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p-value: 0.0000\n", "p-value: 1.244192114854348e-15\n" ] } ], "source": [ "# we can also find the p-value *manually*:\n", "\n", "print(f\"p-value: {2 * stats.norm.cdf(z_obs, loc=0, scale=1):.4f}\")\n", "\n", "# without showing only four decimal places\n", "print(f\"p-value: {2 * stats.norm.cdf(z_obs, loc=0, scale=1)}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Contraceptive pills and risk of blood clots" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.40350877192982454\n" ] } ], "source": [ "# Group using birth control pills:\n", "x1 = 23\n", "n1 = 23 + 34\n", "p1 = x1/n1\n", "print(p1)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.20958083832335328\n" ] } ], "source": [ "# Group not using birth control pills (control group):\n", "x2 = 35\n", "n2 = 35 + 132\n", "p2 = x2/n2\n", "print(p2)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.19392793360647126\n" ] } ], "source": [ "# difference between groups:\n", "diff = p1-p2\n", "print(diff)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.05239234287574965, 0.33546352433719284]\n" ] } ], "source": [ "# confidence interval for diff:\n", "se_diff = np.sqrt(p1*(1-p1)/n1 + p2*(1-p2)/n2)\n", "\n", "print([diff - 1.96*se_diff, diff + 1.96*se_diff])" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.8859712586466184 0.003902077897925701\n" ] } ], "source": [ "###### Test for equal proportions in the two groups:\n", "# We saw from the interval above that 0.5 was not in the interval. So what do we expect here?\n", "\n", "z_obs,p_value = smprop.proportions_ztest(count = [23, 35], nobs = [57, 167], value=0, prop_var=0)\n", "print(z_obs, p_value)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Hypothesis Test for Two Proportions** \n", "When comparing two proportions (shown here for a two-sided alternative hypothesis):\n", "\n", "$\n", "H_0 : \\; p_1 = p_2,\n", "$\n", "$\n", "H_1 : \\; p_1 \\neq p_2.\n", "$\n", "\n", "**Use the test statistic**\n", "\n", "$\n", "z_{\\text{obs}} = \\frac{\\hat{p}_1 - \\hat{p}_2}{\\sqrt{\\hat{p}(1 - \\hat{p})\\left(\\frac{1}{n_1} + \\frac{1}{n_2}\\right)}},\n", "$\n", "where $\\hat{p} = \\frac{x_1 + x_2}{n_1 + n_2}$." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p_hat or p_pooled: 0.25892857142857145\n" ] } ], "source": [ "# *Manual* calculations for the same test: \n", "p_pooled = (x1+x2)/(n1+n2)\n", "print(\"p_hat or p_pooled:\", p_pooled)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test statistic or z_obs: 2.8859712586466184\n" ] } ], "source": [ "# test statistic\n", "z_obs = diff / np.sqrt(p_pooled*(1-p_pooled)*(1/n1 + 1/n2))\n", "print(\"Test statistic or z_obs:\", z_obs)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p-value: 0.003902077897925702\n" ] } ], "source": [ "# p-value\n", "print(\"p-value:\", 2 * stats.norm.cdf(-z_obs, loc=0, scale=1))\n", "\n", "# Very Strong Evidence (p < 0.001), Z-score > 3.291 (two-tailed)\n", "# Strong Evidence (0.001 ≤ p < 0.01), Z-score between 2.576 and 3.291 (two-tailed)\n", "# Moderate Evidence (0.01 ≤ p < 0.05), Z-score between 1.96 and 2.576 (two-tailed)\n", "# Weak Evidence (0.05 ≤ p < 0.10), Z-score between 1.645 and 1.96 (two-tailed)\n", "# No Evidence (p ≥ 0.10), Z-score < 1.645 (two-tailed)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Contraceptive pills with $\\chi^2$" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 23 35]\n", " [ 34 132]]\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PillNo pill
Blood Clot2335
No Clot34132
\n", "
" ], "text/plain": [ " Pill No pill\n", "Blood Clot 23 35\n", "No Clot 34 132" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# The data in a table:\n", "table_data = np.array([[23,35],[34,132]])\n", "print(table_data)\n", "pill_study = pd.DataFrame(table_data, index=['Blood Clot', 'No Clot'], columns=['Pill', 'No pill'])\n", "# With pandas we can make a nicer table:\n", "display(pill_study)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "# this function can take either a pandas table or the data (so both table_data and pill_study)\n", "chi2, p_val, dof, (expected) = stats.chi2_contingency(pill_study, correction=False)\n", "# returns test statistic, p-value, degrees of freedom, and expected frequencies" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 14.75892857 43.24107143]\n", " [ 42.24107143 123.75892857]]\n" ] } ], "source": [ "print(expected) # expected frequencies under the null hypothesis" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chai-square test statistic: 8.328830105734347\n" ] } ], "source": [ "print(\"Chai-square test statistic:\", chi2)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "P-value: 0.0039020778979257016\n" ] } ], "source": [ "print(\"P-value:\", p_val)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n" ] } ], "source": [ "print(dof)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Candidate votes over time" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[79 91 93]\n", " [84 66 60]\n", " [37 43 47]]\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
4 weeks2 weeks1 week
Cand1799193
Cand2846660
Undecided374347
\n", "
" ], "text/plain": [ " 4 weeks 2 weeks 1 week\n", "Cand1 79 91 93\n", "Cand2 84 66 60\n", "Undecided 37 43 47" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# First put data into a pandas dataframe\n", "poll = np.array([[79, 91, 93], [84, 66, 60], [37, 43, 47]])\n", "print(poll)\n", "poll_df = pd.DataFrame(poll, index=['Cand1', 'Cand2', 'Undecided'], columns = ['4 weeks', '2 weeks', '1 week'])\n", "display(poll_df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Row 1: votes for Candidate 1 (4, 2 and 1 week(s) before the election)
\n", "Row 1: votes for Candidate 2 (4, 2 and 1 week(s) before the election)
\n", "Row 1: undecided votes (4, 2 and 1 week(s) before the election)
" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[200 200 200]\n" ] } ], "source": [ "# calculate total number of people asked at every sample / timepoint:\n", "print(np.sum(poll, axis=0))" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[263 210 127]\n" ] } ], "source": [ "# total number for each candidate across all three timepoints:\n", "print(np.sum(poll, axis=1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the overall distribution of votes. \n", "\n", "We want to know if the distributions of votes within each timepoint (sample) differs significantly from the overall distribution." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "# Now do chi2 test:\n", "# Again, we can use either the data or the pandas dataframe as input \n", "chi2, p_val, dof, expected = stats.chi2_contingency(poll, correction=False)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[87.66666667 87.66666667 87.66666667]\n", " [70. 70. 70. ]\n", " [42.33333333 42.33333333 42.33333333]]\n" ] } ], "source": [ "print(expected) # Expected under the assumptions that the null hypothesis is true (all are the same)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6.961978041718169\n" ] } ], "source": [ "print(chi2)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.1379112060673381\n" ] } ], "source": [ "print(p_val)" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n" ] } ], "source": [ "print(dof)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" } }, "nbformat": 4, "nbformat_minor": 2 }