Skip to content

Instantly share code, notes, and snippets.

@onpillow
Created January 22, 2019 03:49
Show Gist options
  • Save onpillow/a35826302c837b92a83b32a945c1c77b to your computer and use it in GitHub Desktop.
Save onpillow/a35826302c837b92a83b32a945c1c77b to your computer and use it in GitHub Desktop.
For Medium06_2
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([102, 435, 348, 270, 106, 71, 188, 20, 102, 121, 466, 214, 330,\n",
" 458, 87, 372, 99, 359, 151, 130, 149, 308, 257, 343, 491, 413,\n",
" 293, 385, 191, 443, 276, 160, 459, 313, 21, 252, 235, 344, 48,\n",
" 474, 58, 169, 475, 187, 463, 270, 189, 445, 174, 445, 50, 363,\n",
" 54, 243, 319, 130, 484, 306, 134, 20, 328, 166, 273, 387, 88,\n",
" 315, 13, 241, 264, 345, 52, 385, 339, 91, 366, 443, 454, 427,\n",
" 263, 430, 34, 205, 80, 419, 49, 359, 387, 1, 389, 53, 105,\n",
" 259, 309, 476, 190, 401, 217, 43, 161, 201])"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# construct a population pickups for our lab\n",
"np.random.seed(42)\n",
"pickups = np.random.randint(0,500 , size=100)\n",
"pickups"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"252.7"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# population mean\n",
"pickups.mean()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"144.25342283634035"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# population standard deviation\n",
"pickups.std()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([166, 201, 458, 190, 445, 87, 385, 427, 387, 166, 474, 49, 430,\n",
" 205, 54, 343, 413, 389, 20, 58, 191, 87, 463, 88, 389, 52,\n",
" 102, 1, 102, 20])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# draw a sample from population\n",
"sample = np.random.choice(pickups, size=30)\n",
"sample"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"228.06666666666666"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# our first sample mean\n",
"sample_mean = sample.mean()\n",
"sample_mean"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"166.96890756052164"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# standard deiveation for this sample\n",
"sample_std = np.std(sample, ddof=1)\n",
"sample_std"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"30.48421235763086"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# estimated standard error for sapmle mann\n",
"sample_std/(30 ** 0.5)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"26.336951228264823"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# theorical standard error for sapmle mann\n",
"pickups.std()/(30 ** 0.5)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# construct the simulated sampling distribution\n",
"sample_props = []\n",
"for _ in range(100000):\n",
" sample = np.random.choice(pickups, size=30)\n",
" sample_props.append(sample.mean())\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# the simulated mean of the sampling distribution\n",
"simulated_mean = np.mean(sample_props)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# the simulated standard deviation of the sampling distribution\n",
"simulated_std = np.std(sample_props)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(array([1.7000e+01, 2.9400e+02, 3.0210e+03, 1.2917e+04, 2.8275e+04,\n",
" 3.1747e+04, 1.7958e+04, 5.0680e+03, 6.6100e+02, 4.2000e+01]),\n",
" array([136.76666667, 159.24666667, 181.72666667, 204.20666667,\n",
" 226.68666667, 249.16666667, 271.64666667, 294.12666667,\n",
" 316.60666667, 339.08666667, 361.56666667]),\n",
" <a list of 10 Patch objects>)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAD8CAYAAACcjGjIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAE3tJREFUeJzt3X/IneWd5/H3p/HHlO3MRGsqkqSb0A1s08KkTtYGCourg0b7RywoxD9qKEK6XYUWZqGx/9hpK+hCKwitsxazxqHbGNoOhjEdN1iHMjBV09aqMePmGXVrajDpRq2lrCX2u3+c6xmPuc6T51eS88S8X3A49/ne132f676e+8nnuX+ck1QVkiQNe8+4OyBJWngMB0lSx3CQJHUMB0lSx3CQJHUMB0lSx3CQJHUMB0lSx3CQJHXOGncH5uqCCy6oFStWjLsbknRa+elPf/rrqloyXbvTNhxWrFjBnj17xt0NSTqtJPk/M2nnaSVJUsdwkCR1DAdJUsdwkCR1DAdJUsdwkCR1DAdJUsdwkCR1DAdJUue0/YS0tFCt2PLQ2N77xds/Obb31ruLRw6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqTBsOSf4oyeNJfpFkb5K/avWVSR5Lsj/JA0nOafVz2+uJNn/F0LpuafXnklw5VF/fahNJtpz4zZQkzcZMjhzeBC6rqj8D1gDrk6wD7gDurKpVwKvAja39jcCrVfXvgDtbO5KsBjYCHwHWA99KsijJIuCbwFXAauD61laSNCbThkMN/La9PLs9CrgM+F6rbwOuadMb2mva/MuTpNW3V9WbVfUCMAFc0h4TVfV8Vf0e2N7aSpLGZEbXHNpf+E8Ch4DdwL8Ar1XV0dbkALC0TS8FXgJo818H3j9cP2aZqeqSpDGZUThU1VtVtQZYxuAv/Q+PataeM8W82dY7STYn2ZNkz+HDh6fvuCRpTmZ1t1JVvQb8A7AOWJxk8ruZlgEvt+kDwHKANv9PgSPD9WOWmao+6v3vqaq1VbV2yZIls+m6JGkWZnK30pIki9v0e4G/APYBjwLXtmabgAfb9M72mjb/R1VVrb6x3c20ElgFPA48Aaxqdz+dw+Ci9c4TsXGSpLmZybeyXgRsa3cVvQfYUVV/l+RZYHuSrwE/B+5t7e8F/ibJBIMjho0AVbU3yQ7gWeAocFNVvQWQ5GbgYWARsLWq9p6wLZQkzdq04VBVTwEfG1F/nsH1h2Pr/w+4bop13QbcNqK+C9g1g/5Kkk4BPyEtSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkzkw+5yCdllZseWjcXZBOWx45SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI604ZDkuVJHk2yL8neJJ9v9S8n+VWSJ9vj6qFlbkkykeS5JFcO1de32kSSLUP1lUkeS7I/yQNJzjnRGypJmrmZHDkcBf6yqj4MrANuSrK6zbuzqta0xy6ANm8j8BFgPfCtJIuSLAK+CVwFrAauH1rPHW1dq4BXgRtP0PZJkuZg2nCoqoNV9bM2/QawD1h6nEU2ANur6s2qegGYAC5pj4mqer6qfg9sBzYkCXAZ8L22/DbgmrlukCRp/mZ1zSHJCuBjwGOtdHOSp5JsTXJeqy0FXhpa7ECrTVV/P/BaVR09pi5JGpMZh0OS9wHfB75QVb8B7gY+BKwBDgJfn2w6YvGaQ31UHzYn2ZNkz+HDh2fadUnSLM0oHJKczSAYvlNVPwCoqleq6q2q+gPwbQanjWDwl//yocWXAS8fp/5rYHGSs46pd6rqnqpaW1VrlyxZMpOuS5LmYCZ3KwW4F9hXVd8Yql801OxTwDNteiewMcm5SVYCq4DHgSeAVe3OpHMYXLTeWVUFPApc25bfBDw4v82SJM3HWdM34RPAp4GnkzzZal9icLfRGgangF4EPgtQVXuT7ACeZXCn001V9RZAkpuBh4FFwNaq2tvW90Vge5KvAT9nEEaSpDGZNhyq6h8ZfV1g13GWuQ24bUR916jlqup53j4tJUkaMz8hLUnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpM604ZBkeZJHk+xLsjfJ51v9/CS7k+xvz+e1epLclWQiyVNJLh5a16bWfn+STUP1P0/ydFvmriQ5GRsrSZqZmRw5HAX+sqo+DKwDbkqyGtgCPFJVq4BH2muAq4BV7bEZuBsGYQLcCnwcuAS4dTJQWpvNQ8utn/+mSZLmatpwqKqDVfWzNv0GsA9YCmwAtrVm24Br2vQG4P4a+AmwOMlFwJXA7qo6UlWvAruB9W3en1TVP1VVAfcPrUuSNAazuuaQZAXwMeAx4MKqOgiDAAE+0JotBV4aWuxAqx2vfmBEfdT7b06yJ8mew4cPz6brkqRZmHE4JHkf8H3gC1X1m+M1HVGrOdT7YtU9VbW2qtYuWbJkui5LkuZoRuGQ5GwGwfCdqvpBK7/STgnRng+1+gFg+dDiy4CXp6kvG1GXJI3JTO5WCnAvsK+qvjE0aycwecfRJuDBofoN7a6ldcDr7bTTw8AVSc5rF6KvAB5u895Isq691w1D65IkjcFZM2jzCeDTwNNJnmy1LwG3AzuS3Aj8EriuzdsFXA1MAL8DPgNQVUeSfBV4orX7SlUdadOfA+4D3gv8sD0kSWMybThU1T8y+roAwOUj2hdw0xTr2gpsHVHfA3x0ur5Ikk4NPyEtSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkzkw+IS3pNLFiy0Njed8Xb//kWN5XJ49HDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSepMGw5JtiY5lOSZodqXk/wqyZPtcfXQvFuSTCR5LsmVQ/X1rTaRZMtQfWWSx5LsT/JAknNO5AZKkmZvJkcO9wHrR9TvrKo17bELIMlqYCPwkbbMt5IsSrII+CZwFbAauL61BbijrWsV8Cpw43w2SJI0f9OGQ1X9GDgyw/VtALZX1ZtV9QIwAVzSHhNV9XxV/R7YDmxIEuAy4Htt+W3ANbPcBknSCTafaw43J3mqnXY6r9WWAi8NtTnQalPV3w+8VlVHj6lLksZoruFwN/AhYA1wEPh6q2dE25pDfaQkm5PsSbLn8OHDs+uxJGnG5hQOVfVKVb1VVX8Avs3gtBEM/vJfPtR0GfDyceq/BhYnOeuY+lTve09Vra2qtUuWLJlL1yVJMzCncEhy0dDLTwGTdzLtBDYmOTfJSmAV8DjwBLCq3Zl0DoOL1jurqoBHgWvb8puAB+fSJ0nSiXPWdA2SfBe4FLggyQHgVuDSJGsYnAJ6EfgsQFXtTbIDeBY4CtxUVW+19dwMPAwsArZW1d72Fl8Etif5GvBz4N4TtnWSpDmZNhyq6voR5Sn/Aa+q24DbRtR3AbtG1J/n7dNSkqQFwE9IS5I6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6035CWpqPFVseGncXJM2BRw6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqGA6SpI7hIEnqTBsOSbYmOZTkmaHa+Ul2J9nfns9r9SS5K8lEkqeSXDy0zKbWfn+STUP1P0/ydFvmriQ50RspSZqdmRw53AesP6a2BXikqlYBj7TXAFcBq9pjM3A3DMIEuBX4OHAJcOtkoLQ2m4eWO/a9JEmn2LThUFU/Bo4cU94AbGvT24Brhur318BPgMVJLgKuBHZX1ZGqehXYDaxv8/6kqv6pqgq4f2hdkqQxmes1hwur6iBAe/5Aqy8FXhpqd6DVjlc/MKIuSRqjE31BetT1gppDffTKk81J9iTZc/jw4Tl2UZI0nbmGwyvtlBDt+VCrHwCWD7VbBrw8TX3ZiPpIVXVPVa2tqrVLliyZY9clSdOZazjsBCbvONoEPDhUv6HdtbQOeL2ddnoYuCLJee1C9BXAw23eG0nWtbuUbhhalyRpTM6arkGS7wKXAhckOcDgrqPbgR1JbgR+CVzXmu8CrgYmgN8BnwGoqiNJvgo80dp9paomL3J/jsEdUe8FftgekqQxmjYcqur6KWZdPqJtATdNsZ6twNYR9T3AR6frhyTp1PET0pKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSeoYDpKkjuEgSerMKxySvJjk6SRPJtnTaucn2Z1kf3s+r9WT5K4kE0meSnLx0Ho2tfb7k2ya3yZJkubrRBw5/KeqWlNVa9vrLcAjVbUKeKS9BrgKWNUem4G7YRAmwK3Ax4FLgFsnA0WSNB4n47TSBmBbm94GXDNUv78GfgIsTnIRcCWwu6qOVNWrwG5g/UnolyRphs6a5/IF/K8kBfz3qroHuLCqDgJU1cEkH2htlwIvDS17oNWmqneSbGZw1MEHP/jBeXZd0omyYstDY3nfF2//5Fje90ww33D4RFW93AJgd5J/Pk7bjKjVcep9cRA+9wCsXbt2ZBtJ0vzN67RSVb3cng8Bf8vgmsEr7XQR7flQa34AWD60+DLg5ePUJUljMudwSPJvkvzx5DRwBfAMsBOYvONoE/Bgm94J3NDuWloHvN5OPz0MXJHkvHYh+opWkySNyXxOK10I/G2SyfX8z6r6+yRPADuS3Aj8Eriutd8FXA1MAL8DPgNQVUeSfBV4orX7SlUdmUe/JEnzNOdwqKrngT8bUf+/wOUj6gXcNMW6tgJb59oXSdKJ5SekJUkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1DEcJEmd+X63kk4T4/piNEmnJ48cJEkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1PEruyWdtsb5VfQv3v7Jsb33qbBgjhySrE/yXJKJJFvG3R9JOpMtiHBIsgj4JnAVsBq4Psnq8fZKks5cC+W00iXARFU9D5BkO7ABeHasvTrB/N/YJJ0uFsSRA7AUeGno9YFWkySNwUI5csiIWnWNks3A5vbyt0meO6m9mt4FwK/H3IeFxPF4m2PxTu+68cgd81p8nOPxb2fSaKGEwwFg+dDrZcDLxzaqqnuAe05Vp6aTZE9VrR13PxYKx+NtjsU7OR7vdDqMx0I5rfQEsCrJyiTnABuBnWPukySdsRbEkUNVHU1yM/AwsAjYWlV7x9wtSTpjLYhwAKiqXcCucfdjlhbMKa4FwvF4m2PxTo7HOy348UhVd91XknSGWyjXHCRJC4jhMIUkW5McSvLMUO3LSX6V5Mn2uHpo3i3tqz+eS3LleHp98iRZnuTRJPuS7E3y+VY/P8nuJPvb83mtniR3tTF5KsnF492CE+c4Y3FG7h9J/ijJ40l+0cbjr1p9ZZLH2r7xQLvZhCTnttcTbf6Kcfb/RDvOeNyX5IWh/WNNqy/M35Wq8jHiAfxH4GLgmaHal4H/OqLtauAXwLnASuBfgEXj3oYTPB4XARe36T8G/nfb7v8GbGn1LcAdbfpq4IcMPsOyDnhs3NtwCsbijNw/2s/4fW36bOCx9jPfAWxs9b8GPtem/wvw1216I/DAuLfhFI3HfcC1I9ovyN8VjxymUFU/Bo7MsPkGYHtVvVlVLwATDL4S5F2jqg5W1c/a9BvAPgafYt8AbGvNtgHXtOkNwP018BNgcZKLTnG3T4rjjMVU3tX7R/sZ/7a9PLs9CrgM+F6rH7tvTO4z3wMuTzLqg7CnpeOMx1QW5O+K4TB7N7dDv62Tp1A4w77+o50G+BiDv4gurKqDMPhHE/hAa3ZGjMkxYwFn6P6RZFGSJ4FDwG4GR0evVdXR1mR4m/91PNr814H3n9oen1zHjkdVTe4ft7X9484k57bagtw/DIfZuRv4ELAGOAh8vdVn9PUf7wZJ3gd8H/hCVf3meE1H1N5VYzJiLM7Y/aOq3qqqNQy+3eAS4MOjmrXnM248knwUuAX498B/AM4HvtiaL8jxMBxmoapeaT/0PwDf5u1TAzP6+o/TXZKzGfxj+J2q+kErvzJ5CNyeD7X6u3pMRo3Fmb5/AFTVa8A/MDh3vjjJ5Gephrf5X8ejzf9TZn4K97QyNB7r2+nIqqo3gf/BAt8/DIdZOOY84KeAyTuZdgIb210YK4FVwOOnun8nUzsnfC+wr6q+MTRrJ7CpTW8CHhyq39DuxFgHvD55+ul0N9VYnKn7R5IlSRa36fcCf8HgOsyjwLWt2bH7xuQ+cy3wo2pXZt8NphiPfx76IyoMrr8M7x8L7ndlwXxCeqFJ8l3gUuCCJAeAW4FL2+1nBbwIfBagqvYm2cHg/584CtxUVW+No98n0SeATwNPt3OpAF8Cbgd2JLkR+CVwXZu3i8FdGBPA74DPnNrunlRTjcX1Z+j+cRGwLYP/tOs9wI6q+rskzwLbk3wN+DmDQKU9/02SCQZHDBvH0emTaKrx+FGSJQxOIz0J/OfWfkH+rvgJaUlSx9NKkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6vx/g6jcgwqlM/cAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xa5f0910>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot the simulated sampling distribution,\n",
"# under the Central Limit Theorem,\n",
"# it is expected normal\n",
"plt.hist(sample_props)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(252.7, 252.74267033333336)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# the theorical mean and simulated mean\n",
"(pickups.mean(), simulated_mean)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(26.336951228264823, 26.327169537452452)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# the theorical standard error and simulated standard error\n",
"(pickups.std()/(30 ** 0.5), simulated_std)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:Anaconda3]",
"language": "python",
"name": "conda-env-Anaconda3-py"
},
"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.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment