{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 02402 Week 4\n",
    "\n",
    "Welcome to week 4 of 02402 Statistics (PF)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import scipy.stats as stats"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Part 1: Simulated Sample from Normal distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# We will simulate data from a theoretical population:\n",
    "\n",
    "# 'True' values in theoretical population \n",
    "mu = 100\n",
    "sigma = 25"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 74.12916521  57.08662442 110.37523986 157.24276715  91.64260037\n",
      "  91.20087158 109.93488902  94.81404393  85.45211193  93.83707999]\n"
     ]
    }
   ],
   "source": [
    "# Draw 10 random numbers from the theoretical distribution:\n",
    "sample = stats.norm.rvs(mu, sigma, size=10)\n",
    "print(sample)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "96.57153934616937\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAGiCAYAAADkycIhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAP79JREFUeJzt3Xd8VFX+//F3EtIhASlGJJRAkN6EKEUJCtLEghSlCAK6IrqKLP7AhvhVUVHBuqAbEBFxgyAKrtIWAlgoBhWIC1JS6IQyQ3qb3x8sdxmTwEwyYSZzX8/HYx6PmXPPuedzc6d8cs+95/rYbDabAAAATMrX3QEAAAC4E8kQAAAwNZIhAABgaiRDAADA1EiGAACAqZEMAQAAUyMZAgAApkYyBAAATI1kCAAAmJrTydBXX32lmJgYXX311erWrZs2bNhwyfp//PGH/vKXv6hZs2Zq3Lix7r33Xu3Zs6dM63W2bwAAgMtxKhlKSEjQoEGDNGLECP3000+65ZZb1KdPH+3atavUNuPGjVPHjh21fPlyfffdd7LZbLr55pt1/Phxp9Zblr4BAAAux8eZe5P169dPvr6+WrlypVHWvn17tW/fXvPmzSuxjc1mk4+Pj/E6KytL4eHhiouL0/333+/wesvSNwAAwOU4dWRo8+bNuvXWW+3KevXqpc2bN5fa5uJESDqfDBUVFSk4ONip9ZalbwAAgMup4mhFq9Wqc+fO6eqrr7Yrr1Onjo4cOeJwh0899ZTq1Kmj3r17O7zesvadm5ur3Nxc43VRUZFOnz6tmjVrFkvSAACAZ7LZbDp37pzq1q0rX1/XX/vlcDJ0wZ+DqFKlihwdaXvttde0ePFifffddwoLC3N6vc72PWPGDE2fPt2h2AAAgGdLS0tTvXr1XL5eh5OhatWqKTg4WOnp6XblJ06cUJ06dS7bftasWXrhhRe0fPlyde/e3an1lrXvqVOn6sknnzReWywW1a9fX2lpacWSMQCeKTMzU3Xr1pUkHTlyRKGhoSVVkv5bR0eOSCXVAVBpWa1WRUZGqlq1ahWyfoeTIR8fH3Xq1EmbNm3So48+apQnJCTohhtuuGTbt99+W08//bS+/PJLY3jMmfWWte/AwEAFBgYWKw8LCyMZAioJPz8/43lYWFjJydBFdRQWRjIEeKmKOsXFqYG3xx9/XMuXL9fXX3+tgoICzZ8/X1u2bNFjjz1m1Hn11VfVoEED4/V7772nKVOm6Msvv1SfPn3KvF5H6gAAADjLqXOGBg4cqDfeeENjx47VmTNnFBERoQULFqhr165GnZycHFksFuP15MmTVVBQoHvvvdduXVOmTNGUKVMcXq8jdQB4nypVqmjUqFHGcwBwNafmGbpYdna23eXxF+Tk5Cg3N1fh4eGSzp+nU1IXQUFBCgoKcni9ztYpidVqVXh4uCwWC8NkgDfJzJSqVj3/PCODYTLAy1T073eZ/80qLRn5c5JzISkq73qdrQMAuLIKCwuVn5/v7jBQCfn7+9udH3ilccwZgEez2WzKysqSJIWEhDBHmAey2Ww6duyYzp496+5QUIlVr15dERERbvmMkwwB8GhZWVmq+t8hsIyMjJKvJoNbXUiE6tSpQ8IKp134h+fEiROSpGuuueaKx0AyBAAos8LCQiMRqlmzprvDQSV14fSXC/MHXukhM9fPaQ0AMI0L5wiFhIS4ORJUdhfeQ+4474xkCABQbgyNobzc+R4iGQIAAKbGOUMAAFN5+OGHlZycXOryxo0b6/33379i8SxdulQfffSR2rZtq9dee81u2Y8//qjp06erdu3aWrhw4RWLyWxIhgAApjJy5EidO3dOkvTHH3/or3/9q95//31FRUVJ0hWflPfgwYPatGmT1q9fr4kTJyoiIsJY9u677+qHH35gouAKRjIEwKP5+flp0KBBxnOgvC6+jVOtWrUkSV26dFG7du0kSXPnztWqVat04403atGiRSooKNDnn3+umTNnytfXV5MmTTLaL168WFu3btWsWbOMstTUVL3//vvas2eP6tatqxEjRqhLly6XjKlGjRpq1aqVPvnkEz311FOSpDNnzmj58uUaNmyYvvvuO7v6l+tjxYoVxtGtatWqqU2bNnr88cftkqq5c+fqyJEj6tatm5YuXaqzZ8/qtttu05gxY5z5c3oFkiEAHi0oKEhLlixxdxhwlM0m/XeSzCsuJERywUm4v//+u+bNm6dWrVppwoQJxrw3v/76a7H74+3fv18//vij8TopKUndu3fX8OHDNXLkSB04cED9+/fXRx99ZCT1pRk7dqyee+45IxlauHChYmJi1KRJE7t6jvTRtm1bPfHEE5LO3xZr/vz5+vzzz+224cJ2JiQk6KGHHtLp06c1ceJEZWdna8KECWX/A1ZCJEMAANfJyvrffeKuNBfel87X11fffvut07eUmjRpkkaOHKm33nrLKAsNDdVzzz132WTozjvv1COPPKLvv/9eXbt2VVxcnP72t7/p8OHDTvdRv3591a9f31g+cOBA1a9fX99++60GDBhglAcHB+tf//qXcVl7amqq4uPjSYYAADC7tm3bOp0IFRUV6d///rdOnDih22+/XTabTTabTadOndLevXuVn58vf3//UtsHBARoxIgRiouLU0BAgFJSUjRo0CC9/fbbTvdRWFioJUuWaM2aNTp27JgKCwuVnZ2tffv2FdvOi+eIatSokZYvX+7UdnsDkiEAHi0zM5PbcVQmISHnj9C4q28XqVatmtNtsrOzlZeXp9tvv12dO3cuttzX9/Kz2YwdO1adO3dWbm6u7rvvvmI3Jne0j8mTJ2vp0qWaOHGiBgwYoKCgID322GPKzMy0qx8QEGD32sfHR0VFRZeN09uQDAEAXMfHx2VDVZ4mODjYuArtgpMnTxrPQ0NDVbt2bUlSnz59ytRHq1at1KJFC3322Wfatm1bseWO9rFo0SK98847Gjp0qKTzt005c+ZMmWIyAyZdBADAAS1atNDmzZuV8d8jX2lpafr888/t6jz00EN655139OuvvxplJ0+e1Lx58xzuZ+HChVq9erU6duxY4nJH+ggJCdH+/fuN16+//rpOnTrlcAxmw5EhAAAcMG7cOH366aeKjo5W48aNdfToUbVr104Wi8WoM23aNJ0+fVo33nijWrRooaKiIp0+fVovvfSSw/00bdpUTZs2LXW5I33MmDFDDzzwgL766iudO3dOfn5+xjxKKM7HZrPZ3B3ElWK1WhUeHi6LxcIEVkAl4dA5Q5mZ/7uCyYVXFOHycnJydPDgQTVq1EhBQUHuDsdpVqtVP/zwg7p27WqcJ/Sf//xHWVlZ6tChQ7H6BQUF2rlzp4qKitSyZUsdOXJEJ06c0I033mhXLz09Xbt371b16tXVvHnzYufmXCw5OVnJycmKjY0tcfnBgweVkpJSbPnl+jh58qSSkpIUHh6uNm3aaOvWrapTp46RFJW0nWlpaUpOTtZNN91UarwV5VLvpYr+/SYZAuDRSIY8W2VPhuA53JkMcc4QAAAwNc4ZAuDR/Pz81K9fP+M5ALgayRAAjxYUFKRvvvnG3WEA8GIMkwEAAFMjGQIAAKZGMgTAo2VmZio0NFShoaHFbiUAAK7AOUMAPF5WVpa7QwDgxTgyBAAATI1kCAAAD7R9+3YtXrzY3WGYAsNkAABTKigo0Pr165WcnKyrr75a3bp101VXXeXusAxr167VF198ofvuu6/M69i5c6fWrVun+vXra+DAgXbLjh8/rsWLFyswMFDjx48vb7iVGkeGAACmc+DAAV133XV6/PHHtXXrVi1YsEAdO3bU7Nmz3R2aS33//feaNGmSRo4cKavVards7ty5mjRpkqZOneqm6DwHR4YAAKbz1FNPKSIiQps2bZKv7/njAllZWdq8ebNRJykpSatXr5YkVa1aVS1btlTnzp3t1vPjjz/q8OHD6tGjhzZv3qzjx4/rlltuUZMmTZSenq7vvvtOhYWFuu2223TNNdeU2G7jxo1KT09Xz5491ahRo8vGvmnTJu3evVsRERGKjY1V9erVL1m/WrVqat68uT7//HM99NBDkiSbzab58+erd+/e+uGHH5zqw5m/S8+ePY3t69atm5o2bXrZ7XMHjgwB8Gi+vr7q3r27unfvbvxoAeW1f/9+tWnTxu49FRISottuu814nZGRYdxR/ocfftDAgQOLDVl98803mjhxoq6//notW7ZMS5YsUcuWLfXaa68pJiZGa9eu1ccff6zWrVsrJSXFrt2kSZPUsWNHxcfHa9myZWrevPklZ1vPyspSr169NG7cOP3888/6+9//rubNm+vnn3++7PaOGTNGcXFxxus1a9YoLy9PvXv3droPR/8ukyZNUufOnbVkyRKtWLFCbdq00bfffnvZWN2BI0MAPFpwcLA2bNjg7jDgpEvNCeXn52d3V/JL1fX19VVwcPBl64aGhjoV3y233KK5c+eqYcOG6tevn1q0aFHs3ncxMTGKiYkxXqenp6tp06Zau3atevbsaZQfO3ZMv/zyi1q2bClJio2N1bRp07Rz505FR0dLkjp27KiPPvpIL730ktEuNTVVK1euVP/+/SVJTz/9tB599FHddttt8vf3LxbzCy+8oPz8fO3evVtVqpz/+X7++ec1fvx4bd269ZLbe++992rixInavXu3WrZsqbi4OI0ePbrYNjvSh6N/lyNHjigxMVGtW7eWJD3yyCN6/fXX1bdv30vG6g4kQwAAl6tatWqpy/r162d3BKROnTqlziXVvXt3u2S4YcOGSk9PL1bPZrM5Fd8rr7yiGjVq6B//+IemTJmisLAw9e7dWy+//LKRwEjSyZMnlZCQoGPHjqmgoEA1atTQjh077H70W7dubSRCktS2bVvl5eXZradt27Y6cOCAXQyRkZFGIiRJEyZM0IwZM/Tbb7/p+uuvLxbz4sWL1blzZ82ZM0c2m002m03nzp3Tzz//rJycHLsE88+qVaumwYMHKy4uTs8884y+/vpr7dq1q9iRGkf7cPTvciERkqROnTpp5cqVpcboTiRDAADTCQwM1LPPPqtnn31Wx44dU0JCgqZPn66bb75Ze/bsUVhYmL7++msNHz5cN9xwg6KiohQSEqL8/HydPn3abl1hYWF2r/39/Usss1gsdmXXXnut3eu6devK19dXhw8fLjEZOnz4sDIzM7Vv3z678scee0z5+fmXTIYkaezYsbr77rsVERGhG2+8UY0bNy5TH+X5u+Tl5V0yRndxOhnas2eP3n77baWkpCg6OlqTJk1SZGTkJdvs379fc+fOVWJioqZOnapbb73VbvmYMWOUmpparN0NN9ygl19+WZK0aNEizZ8/32551apVtXz5cmc3AUAlkpmZqYYNG0qSkpOTnR4OgXtkZGSUuuzPQzMnTpwote6fzxNLTk4uV1wliYiI0NChQ9WkSRN17NhRW7duVc+ePfX888/rqaee0nPPPWfUXbdundNHoUpz8uRJu9fp6ekqKirS1VdfXWL9q666SjfddJOmTJlSpv66deummjVratq0afroo4/K3EdF/13cwalkaO/evYqJidFdd92l0aNH69NPP1VMTIx27NihiIiIEtvExcVpxowZGjdunNatW6fRo0cXq/Pggw/ajQOfPn1aQ4cOtTux6+DBgzpy5Ijeeecdo6ykMVUA3qekYRF4NmeS1oqqeynbt2/X9ddfLx8fH6Ps8OHDkmQkIxaLRbVr1zaWb9u2Tbt377Yb2iqP/fv3a+vWrcb5N59++qlq165tN7R0sTvuuENz587VhAkTVK1aNaN8165datWqlUN9vv7661q/fr3uueeeMvdR0X8Xd3AqGXrxxRfVrFkzLViwQJJ01113KTo6Wm+++aZmzpxZYps777xTY8aMkY+PT6lzGfz5krx33nlH/v7+GjVqlF15WFiY3XgkAABl8eGHH+qHH35QbGysIiMjlZycrEWLFumBBx4wkpERI0bomWee0aFDh5Sbm6uPP/5YtWrV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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Calculate the sample mean:\n",
    "print(sample.mean())\n",
    "\n",
    "# Plot histogram \n",
    "plt.hist(sample, density=True)\n",
    "plt.xlim(0,200)\n",
    "plt.ylim(0,0.20)\n",
    "\n",
    "# Plot the true mean of underlying distribution\n",
    "plt.axvline(mu, linestyle='-', color=\"red\", label=\"True Mean\")\n",
    "# Plot the sample mean\n",
    "plt.axvline(sample.mean(), linestyle='--', color=\"black\", label=\"Sample Mean\")\n",
    "\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Repeat the cell above a few times. \n",
    "\n",
    "What do you observe? Do you think the sample mean is a good estimate of the true mean?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now simulate 100 samples and plot histogram of the 100 sample means\n",
    "\n",
    "# Draw (10 x 100) random numbers\n",
    "samples_100 = stats.norm.rvs(mu, sigma, size=(10,100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\"samples_100\" is now a 2-dimensional array. \n",
    "\n",
    "Each column (with 10 elements) is one sample (with sample size n=10)\n",
    "\n",
    "There are 100 columns (100 samples, each of size n=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 97.59910703 110.35720518  95.09591499 107.487234    95.83948925\n",
      " 108.92662284 105.6432668  104.62502031  96.06418037 106.58028247\n",
      "  98.12278869  99.58742359 108.24903006 105.91637619 126.12456641\n",
      " 106.20201626 107.44317515  88.77125548  92.70549239 105.98037773\n",
      " 107.60401906  93.85657121  99.4870578   78.60137873  86.45132922\n",
      " 107.28140712  87.87291062  94.79599388  98.30221893  92.6526116\n",
      " 106.99592032 102.55790025  95.25442468  95.21397073  89.20383728\n",
      " 104.85437928 112.74853649 100.7280117   95.16927935 100.90822387\n",
      "  99.55840143  96.95400834 102.65532242 108.16717387 102.727869\n",
      "  90.78908127  86.87603129 102.41880845  98.29303052  96.57670173\n",
      "  91.74022098  94.09867763  89.19844258 100.65785049  95.08078355\n",
      " 106.31925569 102.48827725  96.79657259 100.63762264  88.54186747\n",
      " 104.68390488  95.18539895  96.95450466  91.57234829 109.03643623\n",
      "  90.57565664 107.7701539   94.9679533  106.92224593 103.93861659\n",
      "  98.86407635 101.46153988  95.45509334 101.2214019  100.99664371\n",
      "  90.89450081 103.6455224  102.45621174  91.16883153 107.574761\n",
      "  91.47468527  89.87446809  99.90915226  96.22839406 102.20407032\n",
      "  96.21203255  95.46223552  94.87003401  91.23443619 104.60395638\n",
      " 100.4542574  105.38394634  91.28380763  99.66168212  97.37985516\n",
      " 103.40969034  93.75375418  86.62301841 105.43052035  97.516966  ]\n"
     ]
    }
   ],
   "source": [
    "# Calculate sample mean of each sample\n",
    "xbar = samples_100.mean(axis=0)\n",
    "\n",
    "# print the (100 values of) sample means\n",
    "print(xbar)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AMDF+HVGZ/78+Ro6dKhatGghSercubMGDBig+fPnV6lNZfYLAABwMbbP6JSUlGjnzp164IEHfMp//vOfa/bs2ZVuU5n9SlJRUZGKioq8910ulyTJ7XbbHRKAMGBJcp/zd01W3ccfjm8wUdnzurouV7EddPLz8+XxePSzn/3MpzwhIUEnT56sdJvK7FeSpk+frscff7xceVJS0sUHAyBsnJIUF+pO2BQXV709re79A6F07NixanmO2w460dHRkqTCwkKf8vz8fNWtW7fSbSqzX0maMGGCHn74Ye/9kydPqlWrVsrMzKxVBwO3262kpCQdOHBATqcz1N0JGsbNuGsDxs24awOXy6WWLVuqYcOG1bJ/20GnXr16atq0qTIzM33KMzMz1bZt20q3qcx+pbMBqSwknSsuLq5WPUHKOJ1Oxl2LMO7ahXHXLrV13BER1bO0n197HTBggN555x2VlpZKkk6fPq33339fAwYM8NbZsWOH3nvvPb/a2KkDAADgL7+CzuTJk5WVlaUhQ4botdde08CBAxUVFeXzEdLixYt15513+tXGTh0AAAB/+RV0WrdurU2bNik5OVkZGRnq06ePvv76ayUkJHjrdOrUSb/61a/8amOnzsVER0drypQpFX6cZTLGzbhrA8bNuGsDxl0943ZYLD8MAAAMxY96AgAAYxF0AACAsQg6AADAWH79qGdNtWfPHm3btk1NmjRRz549q+27+KF08OBBbd26VXFxcbr66qsVExPjs/3TTz9VTk6OT1mrVq103XXXBbObAWV3TEVFRVq/fr3y8/N1zTXXqGnTpsHsZkAVFBTo/fffr3Bb165d1aFDB0nmzHd2drYyMjJ02WWXqWvXrhXWsfP6DrdjwMXGXVxcrC1btignJ0fJyclq166dz/ajR48qPT29XLuBAwcqNja22vpdVRcatz9jMmm+N27cqL1795Zrc8kll2jw4MGSwnO+L/YcLhOM13fYB51JkyZpxowZ6tWrl3bu3KlmzZpp5cqV5X5SIlwdP35co0eP1tdff60rrrhCBw4cUE5OjhYuXKh+/fp5602ZMkUnT55Uly5dvGW9evUKuze+c9kZ0w8//KDU1FRFR0fr0ksv1X/+8x+98MILuvvuu0PR5SorLCzU8uXLfcoOHTqktWvX6u233/YGnXCf78OHD+uRRx7RmjVrVFhYqOHDh1f4hm/n9R1OxwA74/73v/+tSZMmKSEhQY0bN9batWt16623at68eYqKOnvI3rZtm4YNG6ahQ4f6tP3FL35RI9/47Izb7phMm+9NmzZpzZo1PmWrVq1SixYtvEEn3ObbznNYCuLr2wpj6enpliTr888/tyzLslwul9WhQwdrzJgxIe5Z4GRmZlpvv/22VVpa6i277777rEaNGlkej8dbdv3111tTpkwJQQ+rj50xpaSkWDfddJNVUlJiWZZlzZo1y7rkkkus/fv3B6GHwTF27FircePGVnFxsbcs3Of7+++/txYsWGCdPn3auvbaa6377ruvXB07r+9wOwbYGffixYutgwcPeu/v2bPHio2NtZ577jlv2erVq61wOnzbGbedMZk43z+VnZ1t1alTx5o5c6a3LNzm285zOJiv75p9vu8iFixYoB49eqhPnz6Szi6bPWrUKL355pveVZbDXVJSkgYPHiyHw+EtGzx4sHJzc5WVleVTNysrS8uWLdOXX36pU6dOBbur1eJCY8rKytKaNWs0duxYRUZGSpLS0tIUExOjJUuWhKK7AVdcXKwFCxborrvuUp06dXy2hfN8d+jQQcOHD7/guhl2Xt/hdgywM+7f/va3atasmfd+27ZtddVVV2nLli3l6n766adasWKF9u3bVw29DRw74y5zoTGZON8/NW/ePEVERGjEiBHltoXLfNt5Dgfz9R3WQWfbtm0+p+4l6YorrpDb7S7321km+eSTTxQfH6/mzZv7lK9atUpz5szR8OHD1b59e3322Wch6mHgXGhM27ZtkySf50CdOnXUsWNH77Zwt3z5ch07dkyjRo0qt83E+T6Xndd3bTgGHDt2TFu2bCk3zjp16ujxxx/X008/reTkZN155506c+ZMiHoZGBcbU22Y73/9618aMmRIuR+4DOf5rug5HMzXd1hfo+Nyuco9GcpWUz558mQIelT91q5dq2eeeUYzZ870nsWQpL/97W9KTU1VRESEPB6P7r33Xg0dOlS7du2qkZ9d23GxMblcLkmq8DlgyvzPmTNHKSkp3mtzypg43z9l5/Vt+jHA4/Fo5MiRatKkiUaPHu0tb9WqlXbs2KHLLrtM0tnfGOzZs6fat2+vv/3tb6HqbpXYGZPp871hwwbt2LFDL730kk95OM/3+Z7DwXx9h/UZnejoaOXn5/uUld2vW7duKLpUrb755hvdfvvtuv/++3XPPff4bLv55pu9V6JHRkZq6tSpys3N1YYNG0LR1YC42JjKTgdX9BwwYf4zMzP1ySef+Bwcypg43z9l5/Vt8jGgtLRUaWlp+uabb7RixQqfi07bt2/vfdOTzv70zrBhw877jb1wYGdMJs+3dPY/Nu3bt1dKSopPebjO94Wew8F8fYd10GnXrl2501f79+9XZGSkWrVqFaJeVY9NmzYpNTVVd911l5555pmL1i97Qv30K8jh7KdjKvu64k+fA5mZmWrbtm1wO1cNXn/9dcXFxWnIkCEXrWvifNt5fZt6DLAsS6NGjdLKlSuVnp5e7oxeRZxOp1HzL5Ufk6nzLZ1dWmLRokUaNWqUzzWZ51PT5/tiz+Fgvr7DOujccsstSk9PV25urrds0aJF6tu3r+rVqxfCngXWli1blJqaqjvvvFMzZswot93tdquwsNCnbNmyZZKk7t27B6WPgWZnTFdccYWSkpJ8LjzeuHGj9u3bp4EDBwavs9XAsiy9/vrrGjFiRLn/uZg43xWx8/o28RhgWZZGjx6tjz76SJ999pmSk5PL1Tl8+LDP/eLiYn3wwQfq0aNHsLoZcHbGZOJ8l1m0aJGKioo0cuTIctvCbb7tPIeD+foO6x/1LC4uVu/evXXmzBmNGjVKGzdu1Ntvv63PP/9c3bp1C3X3AiIzM1Ndu3ZVYmKiJk6c6LMtNTVVCQkJ2r17twYNGqTBgwerTZs22rZtm2bPnq37779f//znP0PU86qxO6a3335bv/vd7/Tggw+qefPmevbZZ9WrVy+99dZbIex91a1evVo33XRThRfjmTDfJSUlWrp0qaSz1xu1bdtWf/zjHxUfH6/+/ftLsvf6DrdjgJ1xP/roo3r66ac1efJknzeIxMRE70ca99xzj3Jzc5WSkiLLsvTGG2/o8OHDysjIUPv27YM/sIuwM247YzJxvstcf/31SkxM9NY/V7jNt53ncDBf32EddKSzC6zNnj1bW7duVZMmTTRq1Ch17Ngx1N0KmB07dmjatGkVbnviiSe8n9sePXpUc+fO1a5du5SYmKiBAweGzeJx52N3TF9++aUWLlyo/Px89enTRyNHjvS5UDsczZkzR99++62effbZCreH+3yf73+uSUlJPmHNzus7nI4BdsY9bdo07dixo1ydq666SuPHj/fe//DDD7V69WoVFxerc+fOuuuuu1S/fv3q63wV2J1vO2Mybb6lsxfdjhkzRg888IB69epV4b7Cab7tPoeD9foO+6ADAABwPmF9jQ4AAMCFEHQAAICxCDoAAMBYBB0AAGAsgg4AADAWQQcAABiLoAMAAIxF0AEAAMYi6AAAAGMRdAAAgLEIOgAAwFgEHQAAYKz/Ay1+bd5FrPrGAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot histogram of the mean values\n",
    "plt.hist(xbar, density=True, color=\"black\")\n",
    "plt.axvline(mu, linestyle='-', color=\"red\", label=\"True Mean\")\n",
    "plt.xlim(0,200)\n",
    "plt.legend()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Simulation: Distribution of the sample variance from sample of normal distributed data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[125.64332526 112.41153554  93.64616544 113.58453274 136.38152755\n",
      "  62.04904573 143.30331864 147.48656715  57.52567737  83.43615705]\n",
      "32.38564210464788\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Draw 10 random numbers:\n",
    "sample = stats.norm.rvs(mu, sigma, size=10)\n",
    "print(sample)\n",
    "\n",
    "# Calculate the sample standard deviation:\n",
    "print(sample.std(ddof=1))\n",
    "\n",
    "# Visualise the sample standard deviation with a vertical bar:\n",
    "plt.hist(sample, density=True)\n",
    "plt.xlim(0,200)\n",
    "plt.ylim(0,0.20)\n",
    "\n",
    "# Plot the true mean of underlying distribution\n",
    "plt.axvline(mu, linestyle='-', color=\"red\", label=\"True $\\mu \\pm \\sigma$\")\n",
    "# Plot the sample mean\n",
    "plt.axvline(sample.mean(), linestyle='--', color=\"black\", label=\"Sample $\\\\bar{x} \\pm s$\")\n",
    "\n",
    "# Plot the sample standard deviation\n",
    "plt.hlines(y=0.10, xmin=sample.mean()-sample.std(ddof=1), xmax=sample.mean()+sample.std(ddof=1), colors='black', linestyle='--')\n",
    "# Plot the true standard deviation of underlying distribution\n",
    "plt.hlines(y=0.11, xmin=mu-sigma, xmax=mu+sigma, colors='red')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the plot above the vertical bar indicates one standard deviation to each side (from the mean)\n",
    "\n",
    "Both the sample standard deviation and the true sigma is visualised. \n",
    "\n",
    "Try repeating the cell above a few times. Is the sample standard deviation a good estimate for the true sigma?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 970.59004597  583.88171833  455.51237933  632.35627999 1047.0128606\n",
      "  744.46752646  320.99378406  714.55788402  732.91812885  690.67205092\n",
      "  220.87028301  485.45018607  821.3631745  1047.8530144   333.20830611\n",
      "  894.93305349 1189.86706061  449.25832548 1291.76961959 1591.18029759\n",
      "  437.36857168  530.04216005  707.74763531  645.4769705   402.58545087\n",
      "  906.21989206 1076.00754267  169.02562788  557.81266258 1241.67301879\n",
      "  279.42544461  526.43890071  897.83021066  457.22725833 1612.47861138\n",
      "  264.39526143  639.12617406 1269.90178698  324.02789469  134.60105123\n",
      " 1241.74403746  488.50297406  627.26888501  323.59597915  717.50472934\n",
      " 1073.27407313  559.82546333  551.21383051 1049.01060979  358.56206013\n",
      " 1333.7274402  1700.07419293  611.04362037  357.77701784  756.00749105\n",
      "  428.29774618 1150.93824431 1037.57723977  759.51566385  407.34976517\n",
      "  514.80600429  688.29839931  183.45908149  380.00493953  986.08833158\n",
      "  764.80030726  752.73389989  588.48850727  267.13965298  535.61544299\n",
      "  438.45288684 1113.49100175  840.95999325  764.98780772  465.98621795\n",
      "  945.4389558  1404.44508159  553.30766865  833.10089718  423.46272145\n",
      "  480.44999159 1228.33159511  436.41120067  620.45628263  644.41467136\n",
      "  739.58634114 1559.59335543  690.26203451  540.2208714   734.01580797\n",
      "  480.83499707  343.20367874  471.29978188 1553.129025    499.13162182\n",
      "  325.39579785 1186.74395041  498.50185617  373.73036622  615.12280745]\n"
     ]
    }
   ],
   "source": [
    "# Calculate sample variance of each of the 100 samples stired in \"samples_100\":\n",
    "s2 = samples_100.var(axis=0, ddof=1)\n",
    "\n",
    "# print the (100 values of) sample variances\n",
    "print(s2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "These numbers are quite large. Remember the variance is the standard deviation squared!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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0ECDBw8ut8bv98vv9wcu+3y+St0nAACo/hzvgbry1kN0dHDmio6O1qVLl0LuCeV2nZg5c6beeOMNvfXWW6pXr165dZmZmfJ4PIGRnJwc8n0CAICawXGASkhIUN26dXXy5Mmg+YKCAt18880h94Ryu9cya9Ys/fKXv9SSJUs0cODACmszMjLk9XoDIz8/P6T7BAAANYfjAFWrVi116dJFH330UdD8xo0b1a1bt5B7QrndisyePVuTJk3S4sWLNXz48GvWx8TEyO12Bw0AAICKWB1E/vTTT2v58uX64IMPZIxRVlaWtmzZoqeeeipQ88c//lFt27a16nFS48TcuXM1adIkvfPOOxo5cqRVLwAAgGPG0u9//3vj8XhM3bp1TaNGjcy8efOCrp82bZrxeDxWPU5qNm7caJKSkkxSUpKRZDwej0lKSjKTJ08O1MTGxpo6deoE6q6MP/zhD47Xz+v1GknG6/U67oE9SVU+4iRjvhlxEbpPAMD1EenXb6vzQF1x6dKlwPkWrj51QGFhoYqLi0sdv1RRj5Oa8+fP6/Tp06V64uLiAm+7HT9+vMzz7CQkJCghIcHRunEeqMjgPFAAgHCK9Ot3SAGqOiNARQYBCgAQTjf0iTQBAABAgAIAALBGgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALBEgAIAALAUXdULgKrhcrmqehEAAPjeYg8UAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJQIUAACAJesA9c9//lOjR49W9+7dNXbsWO3bty8sPU5qPvnkEz366KO68847tXLlyrAtHwAAgA2rALVr1y7169dPzZo10//8z/8oOjpavXr1Um5ubqV6nNS8+uqrevLJJ3X33Xdr165dOn36dFiWDwAAwJbLGGOcFj/wwAMqKCjQhg0bJEklJSVq166dhgwZoldeeSXkHic1RUVFio+Pv7zQLpcWLFigsWPHVnr5rubz+eTxeOT1euV2u53+ar53XC5XVS9ClYuTVPTNz/GSiiNwnxYPNwCAhUi/flvtgVq3bp3S09O/ba5VS+np6Vq7dm2lepzUXAlP4V4+AAAAW9FOC4uKinT69Gk1adIkaL5p06bKz88PuSeU2w3X8kmS3++X3+8PXPb5fI7vEwAA1EyO90BduHBBkhQTExM0HxMTE7gulJ5QbjdcyydJmZmZ8ng8gZGcnOz4PgEAQM3kOEAlJiaqTp06OnXqVND8qVOn1KBBg5B7QrndcC2fJGVkZMjr9QaGzV4vAABQMzkOUFFRUerYsaP++c9/Bs1v3bpVnTt3DrknlNsN1/JJl/dQud3uoAEAAFARq4PIf/KTn2jJkiXauXOnpMsHba9fv14TJ04M1MyePVt9+vSx6nFSE67lAwAAqDRjoaSkxEyePNnUqVPHNG/e3NStW9f87ne/C6qZNm2a8Xg8Vj1OarZt22Y6duxoOnbsaCSZ5s2bm44dO5rnn3/e6nauxev1GknG6/Va9X3fSKrxI04y5psRF6H7BABcH5F+/bY6D9QVZ8+e1dGjR5WcnKyEhISg644dO6aCggKlpaU57nFSU1hYqMOHD5fqadCgQakDv53cV3k4D1TNwXmgAKD6iPTrd0gBqjojQNUcBCgAqD5u6BNpAgAAgAAFAABgjQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgiQAFAABgKdq24dChQ3r11VeVm5urlJQUPfvss7rlllsq3ROumjVr1mjp0qU6ceKEmjZtqoceeki9e/e2XU0AAIByWe2BOnTokLp166ZTp07pxz/+sfbv369u3brpxIkTleoJV83s2bM1YsQItWjRQhMmTJDb7Va/fv20fPlym9UEAAComLHwyCOPmK5du5qSkhJjjDHnz583zZs3N7/85S8r1ROumr59+5px48YF3f+gQYPMmDFjHK+j1+s1kozX63Xc830kqcaPOMmYb0ZchO4T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F+ratat69+6t9PR0vf3228rJydGnn36qBg0aSJKmT5+ul19+OXDckZOeSNZci8/nk8fjkdfr5b+JKsa2uHGwLW4cbIsbC9vjxhHpbWG1B6ply5b67LPP1K5dO23YsEF9+vTRJ598EhRO2rdvr5EjR1r1RLLmWmJiYjRt2rQy39ZDZLEtbhxsixsH2+LGwva4cUR6W1jtgQIAAABfJgwAAGCNAAUAAGCJAAUAAGDJ8XmgaoKcnBzt3r1bN998s3r06BGxc0nUFBcuXNDSpUtLzffs2VMtWrQImisoKNC2bdsUGxur3r17l3kyVCc1CJafn68tW7YoLS1N7du3L7Nm37592r9/v5KTk9W5c2e5XK7rVlOTeb1effjhh0pKSlLv3r2Drjt37pzef//9Uj39+/dXUlJS0NyRI0e0fft2eTwe9erVS7Vr1y7V56SmJjtw4IAOHjyoJk2aqFOnTmU+9589e1abN29WVFSUevfurYSEhOtWU5MdOXJEu3btksfj0V133aW4uLig69euXauCgoKguRYtWqhnz55Bc36/X5s3b1ZhYaG6deumxo0bl7ovJzUVisg37n0PTJ061cTFxZmBAweaW265xXTt2tWcPn26qherWjlz5oyRZAYPHmzGjBkTGJs2bQqqy8rKMvHx8aZPnz6mffv2plmzZmbPnj3WNfjWoUOHzMiRI03z5s1NXFyceeGFF0rVlJSUmIkTJ5rExEQzePBg06hRIzNo0CBTXFwc9pqazOfzmYkTJ5omTZqYpKQkM3LkyFI1+/btM5LMiBEjgh4ru3fvDqp79dVXTWxsrOnfv79p3bq1ue2220xubq51TU21Z88e07NnT9O2bVszbNgw06JFC5OammpycnKC6tasWWM8Ho/p3r27ueuuu0yDBg3MRx99dF1qaqpTp06Z++67zyQnJ5v09HSTlpZmGjdubNauXRtU16tXL9OhQ4egx8XMmTODag4dOmRatmxp2rZta/r27Wvi4uLMvHnzrGuuhQBljFm/fr2RZDZu3GiMufyNzrfddpv56U9/WsVLVr1cCVCffPJJuTXHjh0zcXFx5qWXXjLGXH4xHj58uOnSpYtVDYJt377dLFu2zFy8eNG0aNGizACVlZVlYmJiAi/SR48eNY0bNzbTp08Pe01Ndvz4cTNnzhxTWFho7r///goDVH5+frm3s2/fPhMVFWWysrKMMcb4/X5z9913m2HDhlnV1GRbt241W7duDVz2+/2mT58+ZtCgQYG5oqIi06hRI/Of//mfgbnHHnvMtGzZ0ly4cCGsNTVZXl6eWbp0qSkpKQnMPfXUU6Zhw4bm0qVLgblevXqZadOmVXhb/fr1M4MHDzYXL140xhgza9YsU6dOnaB/HJzUXAsBylz+I+7atWvQ3O9//3vjdruDNhwq50qAmj17tlmxYkWZe4xmzZpl4uLigvZWrFu3zkgy+/fvd1yD8pUXoIYOHWqGDx8eNDd58mTTpk2bsNfgsmsFqEWLFpl3333XHDhwoFTNtGnTTNOmTYNecN566y1Tq1Ytc+rUKcc1CPbiiy+aRo0aBS4vX77cuFwuc/To0cDc3r17jSSzYcOGsNYg2Nq1a42koFDTq1cv89hjj5lly5aZrVu3ltqznZ+fbySZ999/PzB3/vx5U69ePfPHP/7RcY0THOQjaffu3UpNTQ2aS0tLk8/nK/Xdeqi8OXPmaPbs2erTp4/69eunY8eOBa7bvXu3WrdurdjY2MBcWlpa4DqnNbBX3uPg8OHD+uqrr8Jag2urVauWZsyYoddee02dO3fW8OHD5fP5Atfv3r1bHTp0CDq2LC0tTSUlJdq7d6/jGgRbu3Zt0N/v7t271bBhw6DjY26//XbVrl076DkpHDUI9uGHH6pevXq65ZZbguY/+OADzZs3Tw8//LBSUlK0bt26wHVXfpff3Ya1a9dW27Ztg7bFtWqcIEDp8sGcV39785Wzl1/5ShpUXp06dbRhwwZ99tlnWrVqlQ4ePKiTJ0/qiSeeCNSUtS2uXL6yLZzUwF5FjwOv1xvWGlSsfv362r59uz7++GOtWbNG+/bt044dO/SLX/wiUOPkeYvnNjt//vOftW7dOv32t78NzJX1O5Qub6OKfs+h1OBbmzZt0owZM/S73/1OUVFRgfn/+q//0hdffKH33ntPBw8e1NChQzVmzBidOXNG0rfPMWX93X93W1yrxgkClC6f/r2wsDBo7splPtkVPnFxcerXr1/gcsOGDTVp0iStXr1aFy9elFT2tigqKpL07bZwUgN7Th4H4apBxZKSknTXXXcFLjdr1kxPPPGEsrOzA3Nsi/DKysrSs88+qzfeeEN33313YL6s36F0+fdY0e85lBpc9umnn2rEiBF6+umn9eSTTwZd98Mf/jDwKcmoqChNnz5dJ0+e1NatWyUp8DUuZf3df3dbXKvGCQKUpNatW5d6qy43N1dRUVGlPl6P8HK73Tp//nzgP4LWrVsrPz9f5jvfMJSbmytJatWqleMa2CvvcVC/fn3Vq1cvrDWw53a7gz6+Xd7vWQp+rFyrBtKiRYs0YcIEzZ07V2PHjg26rnXr1iooKNDXX38dmDt58qSKi4uDfs/hqIH02WefadCgQZowYYJmzJhxzfrExERJCjw2WrduLUml/u7z8vKCtsW1apwgQElKT0/X+vXrdfLkycDcokWL1L9//6DjbFA5R48eLTW3bNky3XrrrYG3FdLT03XixAlt3LgxULNo0SI1atRIXbt2dVwDe+np6Vq5cqWKi4slSSUlJVqyZImGDh0a9hpU7OrHijFGy5cvD/r7Tk9P1+7du7V///7A3KJFi9SuXbvAi4CTmprunXfe0bhx4zRnzhyNHz++1PWDBw9WSUmJ/va3vwXmFi1apNjYWN1zzz1hranpdu7cqUGDBmncuHF66aWXSl3v8/kCzytXLF++XJLUpUsXSZeP8UtOTtY777wTqPn444/1xRdfBJ6DnNQ4EtKh8dWM3+83Xbt2NXfeead57bXXzCOPPGLi4uLM9u3bq3rRqpW//OUvpm/fvubFF180c+bMMcOHDzfx8fFBn4QwxphHH33UNGnSxMyYMcNkZGSY6OhoM3/+fOsafOvcuXMmKyvLZGVlmYYNG5rRo0ebrKwss379+kCN1+s1KSkppnfv3ub11183o0aNMjfddJM5fPhw2GtquqVLl5qsrCzTvXt306VLF5OVlWWWLl0auP6FF14wQ4YMMX/605/M66+/bvr372/q168f9JF7Yy5/4rF169Zm5syZ5plnnjHR0dFm1apV1jU11dq1a010dLQZMWJE4PFxZXz3k4u/+tWvjMfjMZmZmeY3v/mNiY2NNX/4wx+CbitcNTVVbm6uadCggUlNTS21LU6ePGmMMebgwYOmffv25te//rWZN2+emTRpkqlbt6557rnngm5ryZIlJjo62jz33HPmpZdeMsnJyWbMmDHWNdfiMuY774PUYMXFxZo9e7Z27dqlm2++WY8//rjatm1b1YtV7Wzfvl1Lly7VyZMn1bp1a40bN05NmzYNqjHGaOHChVq/fr1iY2M1ZswY9e3b17oG3zp+/Lh+/vOfl5pPS0vT1KlTA5fPnDmjWbNm6cCBA4Hjbpo3bx7UE66amuyxxx4LHLd3RXx8vObNmxe4vHHjRmVnZ8vn86lt27aaMGFCqYNeL1y4oP/93//V1q1b5fF4NG7cOHXu3Nm6pqZ67733tHDhwjKve+utt4LOSL58+XKtXLlStWrV0qhRo3TvvfeW6glXTU20d+9e/eY3vynzut/+9rdq06aNpMvPZW+++WbgzPFDhw4tdRZySdq2bZv++te/qrCwUH369NH48eODDkZ3WlMRAhQAAIAljoECAACwRIACAACwRIACAACwRIACAACwRIACAACwRIACAACwRIACAACwRIACAACwRIACAACwRIACAACwRIACAACwRIACAACw9P/I6KaRjwIIfQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot histogram of the sample variance values\n",
    "plt.hist(s2, density=True, color=\"black\")\n",
    "plt.axvline(sigma**2, linestyle='-', color=\"red\")\n",
    "plt.xlim(0,2500)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The variance is always positive and does not follow a normal distribution. <br>\n",
    "The distribution of variance is not symmestric. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Part 2: Simulated Sample from other (not normal) distribution"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data from a uniform distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGdCAYAAADqsoKGAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAKhZJREFUeJzt3Xtc1HW+x/E3IIyiDCpeEVxUVAwVSjSPyknquHLZznq0xHXVWm3Nttqj1Ul5bOvloS32eGwnOu6qabvrUctLZq2X1s1rVzXyAijWekkE0VQQRtAQmTl/eJxtEnWGi8CX1/PxmD/mO9/P9/f9TRPz9jvf+Y2Xw+FwCAAAoIHzrusJAAAA1ARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACE3qegJ3k91uV35+vgICAuTl5VXX0wEAAG5wOBy6dOmSgoOD5e196/WYRhVq8vPzFRoaWtfTAAAAVZCbm6uQkJBbPt6oQk1AQICk60+K1Wqt49kAAAB32Gw2hYaGOt/Hb6VRhZobHzlZrVZCDQAADcydto6wURgAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACE3qegKAJ8JmbK7rKVTJyflJdT0FADAeKzUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIEftGzEGuqPQwIAUBlWagAAgBE8Xqk5ePCg/vu//1s5OTnq3r27ZsyYofDw8GrV2O12rVmzRn/961914cIF9ejRQ7/61a/Uu3dvZ59ly5Zp8eLFLuMGBARo69atnp4CAAAwkEcrNYcOHdKQIUPUokULzZgxQ6WlpRo4cKDy8vKqVfPCCy9ox44devTRRzV9+nSVlZVpwIABysjIcPbJy8tTSUmJ0tLSnLfU1NQqnDIAADCRl8PhcLjbOTk5WadPn9ann34qSaqoqFDPnj318MMP67XXXqtyzeXLl+Xv7+9S16lTJz311FN66aWXJEnz5s3Tpk2btGfPHs/P8v/ZbDYFBgaquLhYVqu1yuOYgj01d8/J+Ul1PQUAaLDcff/2aKVm+/btevjhh533fXx8lJSUpG3btlWr5oeBJjs7WwUFBYqKinJpP378uIYNG6aHH35Yc+fOVUlJiSfTBwAABnN7T01paakKCgoUHBzs0h4cHKycnJxq15w4cUJjx45VaWmpTp48qT/+8Y8uYcjX11djx45VfHy8ioqK9Morr2jlypXav3+/mjdvXunxy8rKVFZW5rxvs9ncPV2PseqB22mIrw9WlwA0NG6HmvLyckmSxWJxaW/WrJnzserUdOzYUWlpaSoqKtLatWs1ffp0xcTEOFdrpk6d6jLOsGHDFB4erkWLFumFF16o9PipqamaM2eOu6cIAAAaMLc/fgoICJCvr68KCwtd2gsKChQUFFTtmmbNmmngwIGKj4/Xn//8Z91zzz363e9+53z8h8GoTZs2io6OdtlM/EMpKSkqLi523nJzc906VwAA0PC4HWp8fHzUt29fpaenu7Tv3btX9957b43V3NChQwdduHDhtn3Onj17y4+epOtByGq1utwAAICZPLpOzaRJkzRjxgw9//zzuueee/Tpp59q+/bteuedd5x93nzzTa1Zs8Z5/Rh3al555RU9++yzzg3Dn3/+uf72t79p1qxZLn2efvpptWjRQg6HQ6+++qq+/vprLVq0qFpPAAAA9RF78TznUaiZMmWKDh06pHvvvVdhYWHKyclRSkqKRowY4eyTl5fnsjLjTo2fn5+6deum1q1b68qVKyooKNB//ud/atq0ac4+TZs2Vffu3dW6dWsVFhbKy8tLb731luLi4qp+9gAAwBgeXafmhvPnzysvL09hYWFq1aqVy2N5eXk6e/asYmJi3K6Rrl+/5ujRo/L19VVoaKj8/Pxu2cff318hISHy9vbsVx5q8zo1DTFRA7dT1//iAhq7hvi+Ult/N9x9/67SD1q2bdtWbdu2rfSxkJAQhYSEeFQjXd9/ExERcdvjutMHAAA0TvygJQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAI1Tp208AUB/xFVigcWOlBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGCEJnU9AQBozMJmbK7rKXjs5Pykup4CUClWagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECo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/wbVvHnzdOzYMY0dO9ajcQAAgJnc3lMjSZMmTdKRI0d0//33q0OHDjp37pzmzp2rn/zkJ84+Z8+edflIyJ2avXv36sknn3Te/81vfqPf//73GjlypGbOnClJ6tChg3r37q2mTZvq4sWLslqteuedd7gAHwAAkOThdWpuKCoq0pkzZxQaGqoWLVq4PHb27FmdP39effr0cbumpKREx44du+k4QUFBCg0Ndd53OBzKycmRv7+/2rVr5+m0uU4NAAC1qK6vU+PRSs0NLVu2VMuWLSt9rEOHDurQoYNHNS1atFB0dPQdj+vl5aWwsDD3JwoAABoNftASAAAYgVADAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEZoUpWizMxM5eTkqHv37oqIiKixmmPHjungwYMaMGCAOnfuXGPHBgAA5vNopebq1asaMWKE4uLilJaWpgEDBmjSpElyOBzVqtm/f7+GDx+u+Ph4Pfroo/r4449r5NgAAKDx8GilJi0tTZ999pkyMjIUEhKiw4cPKyYmRkOHDtX48eOrXFNQUKBp06Zp+PDh8vauPGdV5dgAAKDx8GilZsWKFUpOTlZISIgkKTIyUgkJCVqxYkW1aoYNG6b4+Hh5eXnV6LEBAEDj4XaouXbtmo4cOaK+ffu6tPft21eZmZk1VlOT45SVlclms7ncAACAmdwONSUlJaqoqFCrVq1c2oOCglRUVFRjNTU5TmpqqgIDA5230NBQt48JAAAaFrdDjcVikSRdvnzZpb2kpERNmzatsZqaHCclJUXFxcXOW25urtvHBAAADYvbG4WbNWumDh066NSpUy7tp06dUteuXWuspibHsVgszkAEAADM5tFG4YSEBK1fv152u12S9N1332njxo1KSEhw9snOztaGDRs8qqmpYwMAgMbLo690z5w5U/3799eoUaOUmJio1atXq0mTJnruueecfdauXau0tDTnXhd3as6dO+dybZr09HQ1bdpUXbp0Ub9+/dweBwAANF4erdSEhYVp//79ioiI0K5duxQbG6v09HQFBQU5+9xzzz366U9/6lHNt99+q9WrV2v16tUaNWqUTp8+rdWrVys9Pd2jcQAAQOPl5WhEl+S12WwKDAxUcXGxrFZrjY4dNmNzjY4HAEBDc3J+Uq2M6+77Nz9oCQAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABGINQAAAAjEGoAAIARPA41u3fv1siRI9WvXz+NGTNGhw4dqpGaO/VZsmSJevfu7XIbNGiQp9MHAACG8ijUHDhwQHFxcQoPD1daWppatGihIUOG6OTJk9WqcafPuXPn5OPjo9WrVztvf/rTnzw9XwAAYCgvh8PhcLfzqFGjVFhYqJ07d0qSHA6HIiIiNGzYMP3hD3+oco07febNm6dNmzZpz549VT5Zm82mwMBAFRcXy2q1VnmcyoTN2Fyj4wEA0NCcnJ9UK+O6+/7t0UrNzp07lZiY6Lzv5eWlxMREZxipao274x49elT/8i//ori4OE2fPl2FhYWeTB8AABisibsdS0tLdfHiRXXs2NGlvWPHjsrNza1yjbvjWiwWTZkyRfHx8SoqKtLLL7+sNWvWKDMz85apraysTGVlZc77NpvN3dMFAAANjNuh5tq1a5IkPz8/l3aLxaLy8vIq17g77rRp09SkyT+nGxsbq65du2rhwoWaMWNGpcdPTU3VnDlz7nhuAACg4XP746eAgAD5+fmpoKDApb2goEBt2rSpco27434/0EhSy5Yt1bdv39t++yolJUXFxcXO261WlAAAQMPndqjx9vZWdHS09u7d69L++eefq1+/flWuqcq4N5w+ffq2G4YsFousVqvLDQAAmMmjjcJPPvmk1q1bp3379kmSPvzwQ+3atUuTJ0929lm4cKHL9WPcqXGnz8yZM3XhwgVJUkVFhebMmaMTJ07o5z//uafnDAAADOT2nhpJmjhxor7++msNHjxYQUFBunjxolJTU12+uXTu3DllZ2d7VONOn86dO+vee++Vt7e3Ll68qHbt2undd9/V4MGDq3P+AADAEB5dp+aGS5cu6ezZs+rUqZP8/f1dHjt37pwKCgrUq1cvt2s86ZOXlyd/f3+1bt3a02lznRoAAGpRXV+nxqOVmhsCAgIUEBBQ6WPt2rVTu3btPKrxpE9ISIj7EwUAAI0GP2gJAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACM0qUpRZmamcnJy1L17d0VERNRYTU31AQAAjY9HKzVXr17ViBEjFBcXp7S0NA0YMECTJk2Sw+GoVk1N9QEAAI2XRys1aWlp+uyzz5SRkaGQkBAdPnxYMTExGjp0qMaPH1/lmprqAwAAGi+PVmpWrFih5ORkhYSESJIiIyOVkJCgFStWVKumpvoAAIDGy+2VmmvXrunIkSN69tlnXdr79u2rxYsXV7mmpvpUpqysTGVlZc77xcXFkiSbzXa7U60Se9nlGh8TAICGpDbeX78/7p22nLgdakpKSlRRUaFWrVq5tAcFBamoqKjKNTXVpzKpqamaM2fOTe2hoaG3rAEAAFUTmFa741+6dEmBgYG3fNztUGOxWCRJly+7rkiUlJSoadOmVa6pqT6VSUlJ0XPPPee8b7fbVVhYqKCgIHl5ed2yzlM2m02hoaHKzc2V1WqtsXFNxHPlPp4rz/B8uY/nyn08V+6rzefK4XDo0qVLCg4Ovm0/t0NNs2bN1KFDB506dcql/dSpU+ratWuVa2qqT2UsFoszEN3QsmXLW59kNVmtVl70buK5ch/PlWd4vtzHc+U+niv31dZzdbsVmhs82iickJCg9evXy263S5K+++47bdy4UQkJCc4+2dnZ2rBhg0c1NdUHAAA0Xh6FmpkzZyovL0+jRo3S0qVLlZSUpCZNmrh8xLN27VpNmDDBo5qa6gMAABovj0JNWFiY9u/fr4iICO3atUuxsbFKT09XUFCQs88999yjn/70px7V1FSfumKxWDRr1qybPurCzXiu3Mdz5RmeL/fxXLmP58p99eG58nJwSV4AAGAAftASAAAYgVADAACMQKgBAABG8OgHLXGzM2fOKD09XQEBARo8eLD8/Pzqekr10ubNm3Xp0iWXtp49e+ree++toxnVLyUlJdq6dasCAwP14IMPVtrn22+/1d69e9W8eXMNGTKk0W5ctNvt2rlzp86fP6/k5OSbLqS5ZcuWm640Hh4erpiYmLs4y/qhqKhI+/btkyRFRUWpTZs2N/VxOBxKT09Xfn6+evXqpZ49e97tadYLV69e1YEDB3ThwgX16tXrpmugnT17Vrt27bqp7ic/+YlatGhxl2ZZf5w6dUqZmZkKDAxUTEyMmjVrdlOfwsJCff755/Lz89OQIUPk7+9f6/Nio3A1LF26VFOnTtWAAQN0+vRpVVRUaOvWrbe9IGBjFR4erlatWqlbt27OtsTERJev/zdGZWVlev7557V+/Xp5eXmpe/fulf7hXL58uZ566inFxMTo3LlzunLlij788EP16NHj7k+6Di1cuFCvvvqqvLy8dPz4cZWXl6tJE9d/m/Xu3Vt+fn4uz82wYcM0adKkuz3dOjVt2jStXbtWvXr1Unl5ufbt26dXXnlFTz/9tLNPaWmpkpKS9PXXX6tPnz7avXu3Hn/8cS1YsKAOZ373rVy5UjNnzlTbtm3Vpk0bffzxxxoxYoSWLVsmHx8fSdfDcmJiokaPHu1S+/rrr6t9+/Z1Me06UVxcrIkTJyojI0ORkZH65ptvdObMGa1cuVLDhw939vvrX/+q8ePHq0+fPiopKdG3336rzZs3q1+/frU7QQeq5Pjx4w5fX1/HX/7yF4fD4XCUl5c7hg4d6vi3f/u3up1YPdWtWzfHokWL6noa9c6lS5ccCxYscBQVFTkmTZrkeOCBB27qk5ub67BYLM7n79q1a44f//jHjiFDhtzl2da9N954w3HixAnHqlWrHJIc5eXlN/WJjIx0vPbaa3d/cvXMokWLHFeuXHHeX758ucPb29tx5MgRZ9v06dMdP/rRjxwXLlxwOBwOx5dffunw8fFxvP/++3d9vnVp9erVjvz8fOf9o0ePOpo3b+744x//6Gz729/+5vDx8amL6dUrZ86ccWzZssWlbfLkyY7Q0FDn/YsXLzoCAwMdc+fOdbaNGTPG0atXL4fdbq/V+bGnporWrl2rwMBAjR8/XpLUpEkT/frXv9b27dt15syZOp5d/XT8+HG99957+vLLL3X16tW6nk690KJFCz3zzDO3vfz3unXrZLFYNHHiREmSj4+Ppk6dqk8//VQnT568SzOtHyZPnqwuXbrcsd8333yj9957T+np6SorK7sLM6t/pkyZ4vLbeKNGjZLdbldmZqazbeXKlZowYYLzel/9+vXTAw88oJUrV971+dal5ORkdezY0Xk/PDxcffv21cGDB2/qu23bNn3wwQfKycm5izOsPzp06OCyIiNd30pQWlrqvL9p0yZdvnxZzzzzjLPtueee05EjR7R///5anR97aqooKytLvXr1ci5NSlKfPn3kcDh0+PBhl/9BcN17772nI0eOKCMjQ82aNdOqVatqfynSAFlZWerZs6fLfq0+ffpIkg4dOqSwsLA6mln9tXHjRh0/flxZWVny8fHR22+/rYEDB9b1tOrUtm3bJEmRkZGSpIsXL+r06dPq3bu3S78+ffpoy5Ytd31+9cn58+eVmZmpMWPGuLT7+Pho7ty58vb21u7du/Wzn/1MS5cuvekj0Mbgk08+UW5uro4dO6Y333xTf/jDH5yPZWVlKSQkxOW3Fvv27et8rDb/7je+/xI1pLi4WK1bt3Zpu/GvnR9uUoS0YMEC5+90Xb16VWPGjNHo0aN15MgRNlffAa81z/z+97/X8OHD5eXlpfLyck2YMEGjR4/WV199dVc2KtZH+fn5euqppzRhwgRnqCkuLpakSl9bjfl1VVFRoQkTJig4ONhlH1aXLl105MgR557JrKwsDRo0SD169FBKSkpdTbfO7N69W1988YWys7PVvn17l72klf3Nslgs8vf3r/XXFh8/VZHFYlFJSYlL243731/yxXXf/+FRPz8//fa3v9WJEyd06NChOpxVw8BrzTPx8fHOb0T5+vpq5syZys3NrfSjhMbg/PnzGjZsmHr16qU33njD2X7j23OVvbYa6+vKbrfrscceU2Zmpj744AM1b97c+VjPnj1d3rj79Omj0aNHa+PGjXUx1Tr34osvat26dcrOztaDDz6opKQk52upsr9Zdrtd3333Xa2/tgg1VdStWzedOnXKpe3GZ6x8++nObvws/fnz5+t4JvUfr7XqacyvtQsXLujBBx9U+/bttWHDBpc3lPbt26t58+aVvrYa4+vKbrfrF7/4hXbs2KGdO3cqPDz8jjVWq7VRvq5+aNy4cSooKFB2drak63+z8vPzde3aNWefU6dOyW631/pri1BTRYmJiTp69KjLv/7WrFmjLl26qFevXnU3sXqooKBA5eXlLm3r16+Xr6+voqOj62ZSDUhiYqJyc3O1d+9eZ9uaNWsUHBzM8/cDFy9evGlj8Pr16+Xj46P77ruvjmZVN24EmrZt22rTpk03ffTm7e2t+Ph4rVu3To7/v7KHzWbTli1blJSUVBdTrjN2u10TJ07U1q1btXPnzkovlfDDL4CUlZXpgw8+UP/+/e/WNOuFs2fP3tS2b98+eXl5qVOnTpKur5aWlJTo73//u7PPmjVrZLVaNWTIkFqdH3tqqmjo0KEaNWqU/uM//kNTp05VTk6OFi1apHffffemi4E1dkePHtWTTz6pkSNHKjQ0VHv37tWyZcv08ssvN6rrO9zKxo0bVVpaqhMnTujcuXNavXq1JDk3KQ4cOFBjx47VI488oueff175+flKS0vTW2+9JW/vxvXvkvT0dB0/fly7d++WdP1biN7e3oqLi1P79u118uRJPfbYYxo5cqQ6d+6sL7/8Un/60580e/ZshYaG1vHs7x673a5hw4YpLy9PU6dO1YYNG5yP3Xfffc437Xnz5mngwIFKTk5WXFyc/vd//1edOnXSlClT6mrqdeKFF17Q8uXLNXv2bB04cEAHDhyQJHXq1EmxsbGSpFmzZqm4uFixsbGy2+1atmyZLl++rLlz59bl1O+6rVu3aunSpUpKSlK7du2UmZmppUuXavr06c5Q06NHDz377LN6/PHH9eKLL6qkpETz589XWlpare9r4+J71VBRUaG//OUv+uyzzxQQEKBx48ZpwIABdT2teiknJ0crVqzQN998o5CQEI0aNcq5G76xe/bZZytdwr4RbqTrb1LLly/Xxx9/LH9/f40dO1aDBg26m9OsF5YsWaIdO3bc1P7SSy85v8WTl5en5cuX69ixYwoJCdGIESMa3SpNeXm583ITP/TYY4+57HH75ptvtGTJEucVhX/1q185P7JrLGbPnq2vvvrqpvb77rtPL774ovP+xo0btW3bNl27dk2RkZF6/PHHG+Xm84yMDL3zzjvKz8+/7f9ja9as0Ycffig/Pz898sgjeuihh2p9boQaAABghMa1dg0AAIxFqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEf4PpESX7QFIfucAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n=1\n",
    "k=1000\n",
    "u = stats.uniform.rvs(loc=0, scale=30, size=(n,k))\n",
    "\n",
    "mean_values = u.mean(axis=0)\n",
    "\n",
    "plt.hist(mean_values, density=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now increase n to 2,3,6,30"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data from an exponential distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGdCAYAAADqsoKGAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAKZdJREFUeJzt3Xl4VFWe//FPCFkIpBJB1hAJQkhAFg2EHQEJYVMQsCWiAq2RTeXpaX1aMowjtA7YCiMDoiD2DAwOIgiy6DQyKAioiIAEkB1JCNAQtlSFrQLk/P7goX5WJ4GqJBJyeL+ep/64p86593sglfrk3lO3AowxRgAAAOVchbIuAAAAoDQQagAAgBUINQAAwAqEGgAAYAVCDQAAsAKhBgAAWIFQAwAArECoAQAAVqhY1gXcSvn5+Tp27JjCw8MVEBBQ1uUAAAAfGGOUm5urOnXqqEKFos/H3FGh5tixY4qOji7rMgAAQDFkZWWpbt26RT5/R4Wa8PBwSdf+URwORxlXAwAAfOFyuRQdHe15Hy/KHRVqrl9ycjgchBoAAMqZmy0dYaEwAACwAqEGAABYgVADAACsQKgBAABWINQAAAArEGoAAIAVCDUAAMAKhBoAAGAFQg0AALACoQYAAFiBUAMAAKxAqAEAAFYg1AAAACsQagAAgBUqlnUBtogZ+0VZl+C3jDf7lHUJAACUGs7UAAAAKxBqAACAFQg1AADACoQaAABgBUINAACwAqEGAABYgVADAACsQKgBAABWINQAAAArEGoAAIAVCDUAAMAKhBoAAGAFQg0AALACoQYAAFiBUAMAAKxAqAEAAFYg1AAAACsQagAAgBUINQAAwAqEGgAAYAVCDQAAsILfoWbx4sVKSEhQtWrV1LZtW3311VclHrNnzx49++yzatiwoerVq6fHHntMu3bt8urz1ltvqUqVKl6PunXr+ls+AACwlF+hZs2aNUpJSVFqaqq2bdum3r17q3fv3tqxY0eJxowePVodO3bUypUrtXbtWoWEhKhLly46fvy4p09eXp6aNGmi48ePex579+4txpQBAICNAowxxtfOPXv2VFBQkFasWOFpS0hIUIsWLfRf//VfpTbm4sWLcjgc+utf/6ohQ4ZIkt544w19/vnn2rhxo6/lFuByuRQRESGn0ymHw1Hs/RQmZuwXpbq/WyHjzT5lXQIAADfl6/u3z2dqjDH69ttv1a1bN6/27t27a8OGDaU2RpLOnTunq1evKiwszKt9586dql27turXr69BgwbpwIEDvpYPAAAs53Ooyc3N1blz51SjRg2v9ho1aujvf/97qY2RpJdfflm1atVSjx49PG1Vq1bVO++8o02bNmn58uVyu91q06bNDffjdrvlcrm8HgAAwE5+LxSuUKFCge2bXcHyZ8zEiRO1aNEiLVy4UOHh4Z720aNH67nnnlN0dLSaNWumBQsWKCgoSLNmzSryuJMmTVJERITnER0dfbPpAQCAcsrnUBMeHq5KlSrp5MmTXu0nT54scCamuGMmT56sN954Q8uXL1fHjh1vWE9oaKgaN26sffv2FdknLS1NTqfT88jKyrrhPgEAQPnlc6gJCAhQmzZttG7dOq/2NWvWqG3btiUeM2XKFL366qtatmyZkpKSblrPlStXdODAgSIDlSSFhITI4XB4PQAAgJ38uvz0hz/8QcuWLdOSJUvkdrs1e/Zs/fjjjxozZoynz8SJE73uH+PLmKlTp+rVV1/V8uXL1b1790KPPWzYMG3dulVXrlzRyZMnNXLkSJ08eVLPPvusv3MGAAAW8ivU9OvXT1OnTtXzzz+vsLAw/du//Zs++ugjtWvXztMnLy9P586d82tMWlqa8vLy1L9/f6+b602cONHTZ/DgwXrxxRflcDjUoEEDZWRkaP369WrWrFlJ5g8AACzh131qfu3y5csKCgoq0J6Xl6fLly+rcuXKPo85f/58oQuHg4ODFRwc7NV29epVBQYGFqdk7lPzD7hPDQCgPPD1/bticQ9QWDiRCg8iNxtTWAAqSnEDDQAAsBtfaAkAAKxAqAEAAFYg1AAAACsQagAAgBUINQAAwAqEGgAAYAVCDQAAsAKhBgAAWIFQAwAArECoAQAAViDUAAAAKxBqAACAFQg1AADACoQaAABgBUINAACwAqEGAABYgVADAACsQKgBAABWINQAAAArEGoAAIAVCDUAAMAKhBoAAGAFQg0AALACoQYAAFiBUAMAAKxAqAEAAFYg1AAAACsQagAAgBUINQAAwAqEGgAAYAVCDQAAsAKhBgAAWIFQAwAArECoAQAAViDUAAAAKxBqAACAFQg1AADACoQaAABgBUINAACwAqEGAABYgVADAACsQKgBAABWINQAAAArEGoAAIAVCDUAAMAKhBoAAGAF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Wr16tb7++mtt2rRJsbGxZTyDm9u0aZMefPBB9e3bVz179tShQ4c0depUvfjii5o4caKka4vCO3bsqMuXLys1NVU//PCDFi9erHXr1qlly5ZlPIOCdu/erfT0dP3yyy8aN26cpkyZojp16igxMdFzBubrr79Wz549lZqaqsaNG+vdd9/VPffco1WrVnlO1/vSp6z88ssv2rRpk06ePKkxY8Zo/PjxiouL8/yOuXjxoh544AE5nU795S9/8brc26ZNG9WvX1/StZt/Pvjgg3rsscfUunVrzZ49W8HBwdqwYUOZXyI+evSo1q9fL7fbrWHDhumll17y/D554IEHCh3TpUsXxcTEaM6cOZ62ffv2qU2bNurWrZu6deumefPm6ezZs9q0aVOZr3m7fsNASRoyZIh+//vfq2vXroqJiVHbtm0lXVsX1KZNG8XFxalfv37as2ePpk+frlmzZmnIkCGSpGPHjqlVq1Zq0aKF+vbtq8WLF2vfvn3avHlzkTd+vRlCTQnk5+dr3rx5+uabbxQWFqaUlBR17NixrMsqtieffFJXr14t0D5o0CD179/fs33kyBHNnDlThw8fVlxcnEaNGlVgsVd5MWPGDOXk5GjcuHFe7dnZ2Xr//fc9dxQeNWqUatWqVUZV+u/SpUuaPXu2tmzZomrVqunhhx9W165dvfo4nU6999572rNnj6KiojRixIhydVkmIyNDc+fOVWZmpu666y4lJyerR48eXn0uXLigmTNnKj09XTVq1FBqaqri4uLKqOIbW758uebPn1+gPTU1VUlJSZ7tbdu2ae7cuTp79qwSExP13HPPFXgj96VPWVizZo1mzZpVoP367xin06kRI0YUOnbUqFHq3LmzZ3vv3r368MMPlZ2drRYtWmjkyJGF3q32Vtu8ebMmT55coL13796eN/N/9Oc//1nVq1fXqFGjvNozMzM1a9YsHT16VPHx8Ro9enShdwa/1fbu3avXXnutQHunTp30/PPPe7adTqdmzpypXbt2qVatWnr88ccL/EFx/Phxvf/++547Co8ePVrVq1cvdm2EGgAAYIXbf9UjAACADwg1AADACoQaAABgBUINAACwAqEGAABYgVADAACsQKgBAABWINQAAAArEGoAAIAVCDUAAMAKhBoAAGAFQg0AALDC/wMFXQoujbnqOwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n=1\n",
    "k=1000\n",
    "u = stats.expon.rvs(loc=0, scale=30, size=(n,k))\n",
    "mean_values = u.mean(axis=0)\n",
    "\n",
    "plt.hist(mean_values, density=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now increase n to 2,3,6,30"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Part 3: Exam 2016, opg IX"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AKiifLrgtH379mUiIjY2VqdPn5bb7VZISIgSEhKUnZ3tteabb75Ru3btyj2uzWaTzWbzZRQAAGBRPl3z8dBDD2nDhg2ez+04c+aM0tLS1Lt3bwUFBUmSxo0bp5UrV+rHH3+UJG3btk2bNm3SuHHj/Dw6AACwIp/OfAwfPly7du1SmzZtFB8frwMHDuimm27y/FmtJD3yyCPauXOn2rZtqxtvvFH79u3TtGnTlJyc7PfhAQCA9fgUH5L0zDPPaPLkyfrll1903XXXlfnLluDgYC1atEizZ89WXl6ebrjhBtWrV89vAwMAAGvzOT4kqW7dupe9gFSSYmJiFBMTU6GhAABA1cUXywEAAKOIDwAAYBTxAQAAjCI+AACAUcQHAAAwivgAAABGER8AAMAo4gMAABhFfAAAAKOIDwAAYBTxAQAAjCI+AACAUcQHAAAwivgAAABGER8AAMAo4gMAABhFfAAAAKOIDwAAYBTxAQAAjCI+AACAUcQHAAAwivgAAABGER8AAMAo4gMAABhFfAAAAKOIDwAAYBTxAQAAjCI+AACAUcQHAAAwivgAAABG+RQfCxYsUJMmTbxu7du3L7Puiy++UFJSklq1aqUhQ4bou+++89vAAADA2nyKj4KCAkVEROjTTz/13NLT073WbN++XX379lXHjh21ePFixcbGqlevXtq3b59fBwcAANZUzdcdbDabmjRpUu7jzz33nG699VY988wzkqROnTopMzNT//jHP7Rw4cKKTwoAAKoEn6/52LNnj9q1a6du3brp8ccf1/Hjx70e//zzz9WvXz+vbf3799fnn39+VYMCAICqwaczHzVq1NCUKVN0xx136PTp03r22WfVvn177dq1S3Xq1FFRUZEKCwsVExPjtV9MTIwOHTpU7nGdTqecTqfnvsPh8PGfAQAArMKn+Hj88ccVEhLiud+lSxfdcMMNWrhwoWbOnCmXyyVJCg0N9dovLCxMFy9eLPe4qampmj17ti+jAAAAi/LpbZf/DQ9JioyMVOvWrZWTkyNJioiIkM1mU35+vte6kydPql69euUeNyUlRYWFhZ5bXl6eL2MBAAALuarP+XC73Tp48KBq167968GCg9W+fXtt27bNa11WVpY6duxY7nFsNpsiIyO9bgAAoGryKT6mT5+uw4cPS5JKS0s1c+ZMHThwQPfee69nzYQJE5Senq6t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8ys8HAAAqHp8io89e/bovvvuU0JCgnr06KF169aVWeNyufTwww+rUaNGuv/++xUbG6tZs2b5bWAAAGBtPsVHbm6uevfurX379pW7ZuHChVq+fLl++OEH5eTkKDMzU88//7xWrVp11cMCAADrq+bL4iFDhvzumrffflvDhw9X8+bNJUndunXT7bffrrffflvJyckVGhIAAFQdfr3g9OLFi9q1a5c6dOjgtb1z5876/vvvy93P6XTK4XB43QAAQNXk1/goKipSaWmpoqOjvbZHR0eroKCg3P1SU1MVFRXludntdn+OBQAAKhG/xkdoaKgk6dy5c17bS0pKFBYWVu5+KSkpKiws9Nzy8vL8ORYAAKhEfLrm4/fUrFlT0dHROnz4sNf2w4cPq2HDhuXuZ7PZZLPZ/DkKAACopPz+IWOJiYlas2aN5/7Fixe1du1aJSYm+vtHAQAAC/LpzEdhYaF27drlub93715lZWUpJiZGTZo0kSQ9+eST6ty5sx5++GENHDhQaWlpKioq0tSpU/07OQAAsCSfznz89NNPmjFjhmbMmKFbbrlFn332mWbMmKH09HTPmpYtW2rbtm06f/685s+fr7p16+qrr75SbGys34cHAADW49OZj44dOyorK+t31yUkJOidd96p8FAAAKDq4ovlAACAUcQHAAAwivgAAABGER8AAMAo4gMAABhFfAAAAKOIDwAAYBTxAQAAjCI+AACAUcQHAAAwivgAAABGER8AAMAo4gMAABhFfAAAAKOIDwAAYBTxAQAAjCI+AACAUcQHAAAwivgAAABGER8AAMAo4gMAABhFfAAAAKOIDwAAYBTxAQAAjCI+AACAUcQHAAAwivgAAABGER8AAMAo4gMAABhFfAAAAKOq/VEH3rlzpw4cOKD4+Hg1b978j/oxAADAYvx+5uP8+fMaMmSIevfurfnz56tz584aP3683G63v38UAACwIL+f+Zg/f762bNmiHTt2KC4uTjk5OerYsaN69eqlMWPG+PvHAQAAi/H7mY+0tDSNGDFCcXFxkqRWrVqpf//+SktL8/ePAgAAFuTXMx8XLlxQbm6uHnvsMa/trVu31muvvVbufk6nU06n03O/sLBQkuRwOPw5niTJ5Tzr92NWxB/xbwuEyvB8VpXn0ir4nf/5VIbfuVR1fu+V4fn8o57L3477e5da+DU+iouLdfHi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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "grades = [2,4,7,10,12]\n",
    "count = [22,78,84,72,24]\n",
    "plt.bar(grades,count)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "280\n"
     ]
    }
   ],
   "source": [
    "# How many datapoints (observations) in total?\n",
    "print(np.sum(count))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1) What is our Population and what is our Sample? <br>\n",
    "Population: All possible grades given in the same class over time. <br>\n",
    "Sample: The grades given a specific year. Is this a representative sample? (the data is actually not independent - the sample is not a random sample across years).<br>\n",
    "<br>\n",
    "2) Does the data follow a normal distribution?<br>\n",
    "No, the distribution is discrete. <br>\n",
    "But since n=280 (which is large!) - we can use CLT to justify our calculation of the CI for the average.<br>\n",
    "Hence we proceed with Method 3.9 to calculate the confidence interval. <br>\n",
    "<br>\n",
    "3) What information do we need?<br>\n",
    "The significance level is given: alpha = 0.05 (95% CI)<br>\n",
    "n = 280<br>\n",
    "We need to compute xbar (sample mean) and s (sample standard deviation)<br>\n",
    "We need to find the t-quantile t_0.975 in a t-distribution with n-1 degrees of freedom. <br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "n = 280"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.9714285714285715\n"
     ]
    }
   ],
   "source": [
    "# calculate xbar:\n",
    "xbar = 1/n * (np.sum(np.array(grades)*np.array(count))) # same as: xbar = 1/n * (22*2 + 78*4 + 84*7 + 72*10 + 24*12)\n",
    "print(xbar)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "8.959754224270354\n"
     ]
    }
   ],
   "source": [
    "# calculate s2 (sample variance) and then s (sample standard deviation)\n",
    "s2 = 1/(280-1) * (np.sum(np.array(count) * (grades-xbar)**2) )\n",
    "print(s2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.9932848551834077\n"
     ]
    }
   ],
   "source": [
    "s = np.sqrt(s2)\n",
    "print(s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.968503126548004\n"
     ]
    }
   ],
   "source": [
    "# fint t_0975 in the t distribution with df = n-1\n",
    "t0975 = stats.t.ppf(0.975, df=n-1)\n",
    "print(t0975)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(note that t0975 is almost equal to 1.96 - so the t-distribution is very close to a standard normal distribution since the degrees of fredom os so large)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.17888298474012831\n"
     ]
    }
   ],
   "source": [
    "# calculate the standard error of the mean (the standard error of \"xbar\")\n",
    "SE_xbar = s/np.sqrt(n)\n",
    "print(SE_xbar)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.61929685668139\n",
      "7.323560286175753\n"
     ]
    }
   ],
   "source": [
    "# calculate the confidence interval:\n",
    "upper_limit = xbar - t0975*SE_xbar\n",
    "lower_limit = xbar + t0975*SE_xbar\n",
    "\n",
    "print(upper_limit)\n",
    "print(lower_limit)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Does this mean that 95% of grades are between 6.6 and 7.3?? \n",
    "\n",
    "NO!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Can we calculate a confidence interval for the variance??\n",
    "\n",
    "NO! "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Part 4: Exam May 2020, opg III"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "An NGO has 15 callers employed to recruit new members. Let X represent the number of<br>\n",
    "members a single caller recruits during one working day. The number of new members each<br>\n",
    "caller recruits in a day can be assumed to be independent of each other. From experience it is<br>\n",
    "known that a good model for X is a binomial distribution, where the probability of getting a<br>\n",
    "new member in a call is 7%. It is assumed that each caller can do 120 calls in one day.<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "question III.1 (6): What is the probability that a caller on a single day recruits more than 5 new members?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Answer: We need to calculate P(X > 5) in a binomial distribution with n = 120 and p = 0.07\n",
    "\n",
    "P(X > 5) = 1 - P(X < 5) = 1 - F(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8522782161850251"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1 - stats.binom.cdf(5, n=120, p = 0.07)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "question III.2 (7): If Y is the total number of new members the 15 callers can recruit in a day, what is the mean and variance of Y ?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "answer: we need to define the stochastic variable Y. \n",
    "\n",
    "Y is the sum of new members recruited bu each of the 15 recruiters. If the number of members recruited by \"recruiter number i\" is given by the stochastic variable X_i then:\n",
    "\n",
    "Y = X_1 + X_2 + ... + X_15\n",
    "\n",
    "Additionaly we assume that each X_i follows a binomial distribution with n = 120 and p = 0.07. \n",
    "\n",
    "This means E[X_i] = np = 120 x 0.07 and V[X_i] = np(1-p) = 120 x 0.07 x (1-0.07)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "E[Y] = E[X_1] + E[X_2] + ... + E[X_15] = 15 x n x p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "126.00000000000001\n"
     ]
    }
   ],
   "source": [
    "print(15*120*0.07)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "V[Y] = V[X_1] + V[X_2] + ... + V[X_15] = 15 x n x p x (1-p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "117.18\n"
     ]
    }
   ],
   "source": [
    "print(15*120*0.07*(1-0.07))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>r1</th>\n",
       "      <th>r2</th>\n",
       "      <th>r3</th>\n",
       "      <th>r4</th>\n",
       "      <th>r5</th>\n",
       "      <th>r6</th>\n",
       "      <th>r7</th>\n",
       "      <th>r8</th>\n",
       "      <th>r9</th>\n",
       "      <th>r10</th>\n",
       "      <th>r11</th>\n",
       "      <th>r12</th>\n",
       "      <th>r13</th>\n",
       "      <th>r14</th>\n",
       "      <th>r15</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>13</td>\n",
       "      <td>9</td>\n",
       "      <td>14</td>\n",
       "      <td>4</td>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>16</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9</td>\n",
       "      <td>8</td>\n",
       "      <td>10</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>6</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7</td>\n",
       "      <td>9</td>\n",
       "      <td>6</td>\n",
       "      <td>10</td>\n",
       "      <td>12</td>\n",
       "      <td>7</td>\n",
       "      <td>14</td>\n",
       "      <td>10</td>\n",
       "      <td>3</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>12</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11</td>\n",
       "      <td>13</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>8</td>\n",
       "      <td>14</td>\n",
       "      <td>7</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>12</td>\n",
       "      <td>7</td>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>8</td>\n",
       "      <td>12</td>\n",
       "      <td>7</td>\n",
       "      <td>9</td>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>13</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>8</td>\n",
       "      <td>10</td>\n",
       "      <td>9</td>\n",
       "      <td>12</td>\n",
       "      <td>5</td>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>6</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>11</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>7</td>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>4</td>\n",
       "      <td>11</td>\n",
       "      <td>11</td>\n",
       "      <td>21</td>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>10</td>\n",
       "      <td>3</td>\n",
       "      <td>8</td>\n",
       "      <td>13</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    r1  r2  r3  r4  r5  r6  r7  r8  r9  r10  r11  r12  r13  r14  r15\n",
       "0    6   7   6  13   9  14   4  13  12    9   16    9    9    6    6\n",
       "1    9   8  10   6   7   8   9   9   6    9    9   10   10    8    8\n",
       "2    7   9   6  10  12   7  14  10   3    9    9    7    5    6   14\n",
       "3    9   5  10  10   4   9  10   8   9    7    3   12    7    8    6\n",
       "4   11  13   6   5   6   9   5   6   9    7    8    8    8    8    6\n",
       "..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ...  ...  ...  ...  ...  ...\n",
       "95   8  14   7  12   9   5  10  10   6    4   12    7   10    7   10\n",
       "96   8  12   7   9  13   3  10   7   9    7    5   13    5    8    4\n",
       "97   8  10   9  12   5  12  12   9   4    9    5    9    9    4    6\n",
       "98   6  10  11   9   5  11   6   6   9    7    6    4    7   10    7\n",
       "99   4  11  11  21   8   6   7  10   3    8   13    6    8    5   12\n",
       "\n",
       "[100 rows x 15 columns]"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Lets try to simmulate the situation:\n",
    "x = stats.binom.rvs(n=120, p=0.07, size=(100,15)) # 100 rows with 15 columns\n",
    "\n",
    "data = pd.DataFrame(x)                              # store in a dataframe named \"data\"\n",
    "data.columns = [f\"r{i}\" for i in range(1, 16)]      # change column names to reflect recruiter 1, recruiter 2 etc\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>r1</th>\n",
       "      <th>r2</th>\n",
       "      <th>r3</th>\n",
       "      <th>r4</th>\n",
       "      <th>r5</th>\n",
       "      <th>r6</th>\n",
       "      <th>r7</th>\n",
       "      <th>r8</th>\n",
       "      <th>r9</th>\n",
       "      <th>r10</th>\n",
       "      <th>r11</th>\n",
       "      <th>r12</th>\n",
       "      <th>r13</th>\n",
       "      <th>r14</th>\n",
       "      <th>r15</th>\n",
       "      <th>total</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>12</td>\n",
       "      <td>7</td>\n",
       "      <td>2</td>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "      <td>10</td>\n",
       "      <td>8</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>11</td>\n",
       "      <td>10</td>\n",
       "      <td>14</td>\n",
       "      <td>3</td>\n",
       "      <td>133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5</td>\n",
       "      <td>9</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>10</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>10</td>\n",
       "      <td>6</td>\n",
       "      <td>12</td>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "      <td>13</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "      <td>14</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "      <td>132</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>10</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>4</td>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "      <td>112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>7</td>\n",
       "      <td>11</td>\n",
       "      <td>12</td>\n",
       "      <td>11</td>\n",
       "      <td>12</td>\n",
       "      <td>10</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>14</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "      <td>7</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>8</td>\n",
       "      <td>7</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "      <td>14</td>\n",
       "      <td>4</td>\n",
       "      <td>12</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>11</td>\n",
       "      <td>118</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>11</td>\n",
       "      <td>4</td>\n",
       "      <td>7</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>13</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>12</td>\n",
       "      <td>11</td>\n",
       "      <td>128</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>12</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>11</td>\n",
       "      <td>4</td>\n",
       "      <td>16</td>\n",
       "      <td>8</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "      <td>9</td>\n",
       "      <td>12</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>9</td>\n",
       "      <td>11</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>14</td>\n",
       "      <td>5</td>\n",
       "      <td>11</td>\n",
       "      <td>10</td>\n",
       "      <td>13</td>\n",
       "      <td>7</td>\n",
       "      <td>10</td>\n",
       "      <td>4</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 16 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    r1  r2  r3  r4  r5  r6  r7  r8  r9  r10  r11  r12  r13  r14  r15  total\n",
       "0    9  10  12   7   2  12  12  10   8    7    6   11   10   14    3    133\n",
       "1    5   9   8   9   7   3  10   8   9    8    6    8    9   12   13    124\n",
       "2   10   6  12   8   6  13   9   4  10   11   14    9    7    5    8    132\n",
       "3    6   8   8   5   6   7   8   5  10    9    9   10    4   10    7    112\n",
       "4    3   7  11  12  11  12  10   9   7   12    9   14    9    7    7    140\n",
       "..  ..  ..  ..  ..  ..  ..  ..  ..  ..  ...  ...  ...  ...  ...  ...    ...\n",
       "95   8   7  10   5   5   8   9   5   8   14    4   12    6    6   11    118\n",
       "96  10   5   8   9   9  11   4   7   9    9   13    6    5   12   11    128\n",
       "97   8   9  12   7   6   5   5  10   5   11    4   16    8    7    6    119\n",
       "98   8   6   8   8   6   9  12   4   5    9   11   10    2    5    7    110\n",
       "99   4   5  12   9   9   5   6  14   5   11   10   13    7   10    4    124\n",
       "\n",
       "[100 rows x 16 columns]"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# for each row calculate total load and store in a column names \"total\":\n",
    "data[\"total\"] = data.sum(axis=1)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "126.92\n",
      "105.58949494949493\n",
      "10.275674914549162\n"
     ]
    }
   ],
   "source": [
    "# compute mean and variance of total loads:\n",
    "print(np.mean(data['total']))\n",
    "print(np.var(data['total'], ddof=1))\n",
    "print(np.std(data['total'], ddof=1))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pernille",
   "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.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
