Skip to content

Instantly share code, notes, and snippets.

@josiahdavis
Last active January 13, 2017 21:54
Show Gist options
  • Save josiahdavis/f5b8944dd2288d4400beb5a40084edbf to your computer and use it in GitHub Desktop.
Save josiahdavis/f5b8944dd2288d4400beb5a40084edbf to your computer and use it in GitHub Desktop.
Simple bootstrapping example
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
LSAT GPA
576 3.39
635 3.3
558 2.81
578 3.03
666 3.44
580 3.07
555 3
661 3.43
651 3.36
605 3.13
653 3.12
575 2.74
545 2.76
572 2.88
594 2.96
School LSAT GPA
1 622 3.23
2 542 2.83
3 579 3.24
4 653 3.12
5 606 3.09
6 576 3.39
7 620 3.1
8 615 3.4
9 553 2.97
10 607 2.91
11 558 3.11
12 596 3.24
13 635 3.3
14 581 3.22
15 661 3.43
16 547 2.91
17 599 3.23
18 646 3.47
19 622 3.15
20 611 3.33
21 546 2.99
22 614 3.19
23 628 3.03
24 575 3.01
25 662 3.39
26 627 3.41
27 608 3.04
28 632 3.29
29 587 3.16
30 581 3.17
31 605 3.13
32 704 3.36
33 477 2.57
34 591 3.02
35 578 3.03
36 572 2.88
37 615 3.37
38 606 3.2
39 603 3.23
40 535 2.98
41 595 3.11
42 575 2.92
43 573 2.85
44 644 3.38
45 545 2.76
46 645 3.27
47 651 3.36
48 562 3.19
49 609 3.17
50 555 3
51 586 3.11
52 580 3.07
53 594 2.96
54 594 3.05
55 560 2.93
56 641 3.28
57 512 3.01
58 631 3.21
59 597 3.32
60 621 3.24
61 617 3.03
62 637 3.33
62 572 3.08
64 610 3.13
65 562 3.01
66 635 3.3
67 614 3.15
68 546 2.82
69 598 3.2
70 666 3.44
71 570 3.01
72 570 2.92
73 605 3.45
74 565 3.15
75 686 3.5
76 608 3.16
77 595 3.19
78 590 3.15
79 558 2.81
80 611 3.16
81 564 3.02
82 575 2.74
1 622 3.23
2 542 2.83
3 579 3.24
4 653 3.12
5 606 3.09
6 576 3.39
7 620 3.1
8 615 3.4
9 553 2.97
10 607 2.91
11 558 3.11
12 596 3.24
13 635 3.3
14 581 3.22
15 661 3.43
16 547 2.91
17 599 3.23
18 646 3.47
19 622 3.15
20 611 3.33
21 546 2.99
22 614 3.19
23 628 3.03
24 575 3.01
25 662 3.39
26 627 3.41
27 608 3.04
28 632 3.29
29 587 3.16
30 581 3.17
31 605 3.13
32 704 3.36
33 477 2.57
34 591 3.02
35 578 3.03
36 572 2.88
37 615 3.37
38 606 3.2
39 603 3.23
40 535 2.98
41 595 3.11
42 575 2.92
43 573 2.85
44 644 3.38
45 545 2.76
46 645 3.27
47 651 3.36
48 562 3.19
49 609 3.17
50 555 3
51 586 3.11
52 580 3.07
53 594 2.96
54 594 3.05
55 560 2.93
56 641 3.28
57 512 3.01
58 631 3.21
59 597 3.32
60 621 3.24
61 617 3.03
62 637 3.33
62 572 3.08
64 610 3.13
65 562 3.01
66 635 3.3
67 614 3.15
68 546 2.82
69 598 3.2
70 666 3.44
71 570 3.01
72 570 2.92
73 605 3.45
74 565 3.15
75 686 3.5
76 608 3.16
77 595 3.19
78 590 3.15
79 558 2.81
80 611 3.16
81 564 3.02
82 575 2.74
School LSAT GPA
4 653 3.12
6 576 3.39
13 635 3.3
15 661 3.43
31 605 3.13
35 578 3.03
36 572 2.88
45 545 2.76
47 651 3.36
50 555 3
52 580 3.07
53 594 2.96
70 666 3.44
79 558 2.81
82 575 2.74
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$e^x=\\sum_{i=0}^\\infty \\frac{1}{i!}x^i$$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$s = \\sqrt{\\frac{1}{N-1}}$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$c = \\sqrt{a^2 + b^2}$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Agenda\n",
"1. What is Bootstrapping?\n",
"2. Why would we use Bootstrapping?\n",
"3. Calculating Confidence Intervals using Bootstrapping\n",
"4. Example in Python\n",
"5. How to measure the goodness of bootstrapping\n",
"6. Estimating Bias through Bootstrapping"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"Welcome! As you know, the topic of this webinar is Bootstrapping in Statistical Inference. Let me start with some questions to motivate this. I fully realize that bootstrapping may be a new topic. Let me start with a motivating question: *How do you conduct statistical inference, when you don't know what distribution the data comes from?*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Defining Terms\n",
"First of all, we need to make some definitions. For many of you, this beginning segment will be a review. What do we mean by statitical inference? Statistical inference can be thought of as comprising three different, but related tasks: Point estimation, Confidence Intervals, Hypothesis tests. \n",
"\n",
"In point estimation you are trying to estimate a parameter of interest. What is a parameter? A parameter is commonly defined to be the true value from a distribution. Let's say the median amount of time it takes for customer to be converted from a qualified lead to a paying customer. You don't know what the true value of the time will be, but you can look at historical data to estimate what it is.\n",
"\n",
"In the real world, there is a lot of variability. You might have some people that take longer to convert, and others that take less time. There are a lot of factors that could influence how long they take to convert. If they have extra budget lying around, or if they have to go through an approval process. If they like what they see right away, or if they want to shop around for a while before making a decision. In statistical inference, the concept of a confidence interval is created to summarize, how much variation we can expect to see so we can get a sense of where the true value is, knowing that the empirical data might change on a day-to-day basis. \n",
"\n",
"Those of you who are more well-versed in statistics will know that the way of interpreting confidence intervals can be controversial, due to a difference in the interpretation between people who describe themselves as Bayesian statisticians, and frequentist statisticians. I'm going to side-step that debate for now, since it is a bigger discussion, and rather use the frequentist way of describing confidence sets for consistency.\n",
"\n",
"Here's a working definition of a confidence interval. Let's make it a 95% Confidence interval for concreteness. A 95% confidence interval is the interval that will contain the true value of the parameter 95% of the time. That means, if you run an experiment 20 times, 19 out of 20 times your confidence interval will contain the true value. Another way to interpret a confidence interval is to say that if you run 20 different experiements, 19 of those experiments will produce a confidence interval that contains the true value.\n",
"\n",
"Last of all, let's define hypothesis testing to be the process of evaluating concrete ideas using data. I CAN DO BETTER."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What is bootstrapping?\n",
"\n",
"Now that we have that background, what is bootstrapping? Bootstrapping is a statistical technique for making inferences from data. It's name is derived from the idea of picking yourself up from your bootstraps. We'll see later why this might feel like an appropriate name. More specifically, bootstrapping is a flexible statistical technique that allows someone to estimate the bias and variance of a statistic, which in turn enables you to conduct point estimation, confidence sets, and hypothesis tests. Why is it flexible? Two reasons. First, it requires little or no assumptions about the underlying distribution of the data.\n",
"\n",
"If you have a statistic. You can say that this mean value follows a particular sampleing distribution such as a gamma distribution or a normal distribution or a beta distribution. But how do you know what distribution it follows? If you only have one value to work off of, you don't usually know. Now, you can make an assumption, but if you're wrong, your confidence intervals might be wildly off. Bootstrapping allows us to sidestep this difficulty.\n",
"\n",
"Second reason that bootstrapping is flexible. It is able to provide confidence intervals for statistics that have very difficult to calculate variances. As an example of the last point, how would you calculate the variance of the mean? Well, it's pretty easy. It works out to being the sum of the squared difference from the mean, divided by the total number of samples.\n",
"\n",
"INSERT VARIANCE FORMULA\n",
"\n",
"Now then, let's say that you want to calculate the median statistic. What is the variance of that statistic? That one is not so easy. However, that's where bootstrapping can help us out."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example\n",
"Now, with that background, let's go through a simple example in python. In this example, we will be bootstrapping the correlation between an individual's SAT scores and their college GPA. This examples comes from the data used in the original paper that Bradley Efron published back in 1979. If you'd like to read it I will provide a link to that in the follow-up email that I send out."
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Load packages and setup\n",
"import numpy as np\n",
"import pandas as pd\n",
"import scipy.stats\n",
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline\n",
"plt.style.use('ggplot')\n",
"np.random.seed(100)"
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>School</th>\n",
" <th>LSAT</th>\n",
" <th>GPA</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4</td>\n",
" <td>653</td>\n",
" <td>3.12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>6</td>\n",
" <td>576</td>\n",
" <td>3.39</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>13</td>\n",
" <td>635</td>\n",
" <td>3.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>15</td>\n",
" <td>661</td>\n",
" <td>3.43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>31</td>\n",
" <td>605</td>\n",
" <td>3.13</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" School LSAT GPA\n",
"0 4 653 3.12\n",
"1 6 576 3.39\n",
"2 13 635 3.30\n",
"3 15 661 3.43\n",
"4 31 605 3.13"
]
},
"execution_count": 210,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Read in the data\n",
"law = pd.read_csv('law_sample.csv')\n",
"lawPopulation = pd.read_csv('law_pop.csv')\n",
"law.head()"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.text.Text at 0x11ca97780>,\n",
" <matplotlib.text.Text at 0x11c9620b8>,\n",
" <matplotlib.text.Text at 0x11cab2470>]"
]
},
"execution_count": 178,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm8AAAFZCAYAAADO/cilAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt4VOW59/HfTI4EJ+QgQUMIQQ6CqaCImI3HFtR6brsl\nVmnloAYwCAY5WcWIiorhoEAQUBEsdlf0rbrdB621imBLFQtVIygoEDCaQGIgGgPJzHr/YGfMkEky\nSWbWrJV8P9fV68rMrFlzzyLevfOs57kfh2EYhgAAAGALznAHAAAAgMBRvAEAANgIxRsAAICNULwB\nAADYCMUbAACAjVC8AQAA2AjFG2xn3759cjqd+tvf/tbuc40fP16XXXZZEKICAHP16dNHDz/8cLjD\nQBhQvCFg48ePl9PplNPpVFRUlDIyMjR58mRVVFSYHovD4WjV8c8//7yczsa/7kuXLtWLL74YrLAA\ndBA1NTWaO3euBgwYoLi4OCUnJ2v48OFavnx5uEMDFBnuAGAvF110kV588UXV1tbqww8/1K233qoD\nBw7otddeMzWO1vaWNgzDb8HncrmCFRKADmTSpEnauHGjli5dqsGDB+vIkSPatm2biouLwx0awMgb\nWic6Olrdu3dXamqqrrnmGk2bNk2vv/66jh49qs8++0xXXXWVXC6XXC6Xrr32Wn3xxRfe965bt05R\nUVF666239JOf/ERdunRRVlaW/vWvf3mPWbt2raKionw+86uvvpLT6dS7777bZFz33nuvzjjjDHXt\n2lXp6emaPHmyqqqqJEkbN27UzTffLElyOp2KiIjQhAkTJEnjxo1rdNt04cKF6tu3r2JiYtSvXz89\n8cQTPq/36dNH+fn5uvPOO5WcnKxTTjlF06dPl8fjacMVBWBFr776qmbOnKlrrrlGvXv31plnnqmb\nb75Z9957r/eYbdu26corr1SPHj3kcrk0fPhwvfHGGz7n6dOnj+677z7dfvvtSkxMVI8ePbRixQod\nO3ZMU6dOVVJSktLS0lRYWOjzPqfTqaVLl+r666/XSSedpLS0NC1durTZmOvq6nT//ffrtNNOU5cu\nXXTmmWdq9erVwbsosAyKN7RLbGysPB6Pamtrddlll+nYsWPatGmT3n33XX333Xe64oorVFdX5z3e\n4/Fo9uzZWrlypT744AN1795dV199tY4ePSrp+O1QfyNkLd0mjYuL09NPP60dO3Zo3bp12rhxo6ZO\nnSpJGjFihPdWR2lpqb7++mtvQXbieQsLC5Wfn6/f/e53+vTTTzVr1izNmTNHzz77rM9xy5cvV2pq\nqt5//30tX75cy5cv17p161p59QBY1amnnqrXX39d3377bZPHHDlyRL/+9a+1ceNGbdu2TT//+c91\n3XXXaffu3T7HLV++XAMGDNCHH36oadOmacqUKfrlL3+p0047TVu3btWUKVM0depU7dy50+d9Dzzw\ngH72s59p+/btmj17tu66665m73LceuuteuWVV/TUU09p586duu+++/zmL3QABhCgcePGGZdeeqn3\ncVFRkdG3b19jxIgRxjPPPGN07drVqKio8L5eWlpqdOnSxfj9739vGIZhrF271nA6ncbbb7/tPebb\nb781TjrpJGPNmjXeY6Kionw+98CBA4bD4TA2btxoGIZh7N2713A4HMZ7773XZKwvv/yyERsb6328\nfv16w+l0tvidevXqZcyZM8fnmLy8PKNv377exxkZGcZ1113nc8wVV1xh3HTTTU3GA8Be3nvvPSMj\nI8OIiIgwBg8ebOTk5BivvPJKi+8bMmSI8fDDD3sfZ2RkGL/85S+9jz0ejxEfH29ce+21Ps8lJiYa\nhYWF3uccDocxduxYn3PfdNNNxkUXXeRz7vnz5xuGYRhffvml4XQ6jc8++8znPQ888IBx1llnBfal\nYRuMvKFV3n77bblcLsXFxWnw4MHq16+f1q9fr6KiIp1xxhlKTEz0HpuSkqLTTz9dRUVFPufIysry\n/pyQkKBBgwY1Oqa1/vSnP+niiy9Wz5495XK5NGbMGB07dkzffPNNwOeoqqrSgQMHdOGFF/o8f/HF\nF2vv3r2qqanxPnfWWWf5HJOamqrS0tJ2fQcA1jFixAh98cUX2rx5s8aNG6eysjJdf/31uu6667zH\nHDp0SLfffrsGDRqkxMREuVwuffrpp9q3b5/PuYYMGeL92eFwqHv37ho8eLDPcykpKSorK/N5X8Nc\nKUnnn39+k7nyww8/lGEYGjZsmHfqisvl0sMPP+wzfQUdAwsW0CpZWVl67rnnFBERodTUVEVGBvdX\nyN+K0Nra2mbf849//EPZ2dm65557tHDhQiUmJurvf/+7xo0bp2PHjgU1vnrR0dE+jx0OB3PegA7G\n6XQqKytLWVlZysvL0/PPP6/f/va32rRpky688EKNHTtWBw4c0MKFC5WRkaEuXbrohhtuaJR3TpzH\n63A4/D7Xnhzi8XjkcDj097//XV26dGl0bnQsjLyhVbp06aI+ffooPT3dp3DLzMzUp59+6tM2pLS0\nVJ999pnOPPNMn3Ns2bLF+3NlZaV27NihzMxMScdH69xutw4ePOg95sMPP2w2+bz33nvq3r275s2b\np3PPPVf9+vXT/v37fY6pL7aMZlapulwupaWlNVoY8c4776hPnz6KjY1t8r0AOr6BAwdKkjc/bdq0\nSbfffruuuuoqZWZmqkePHvryyy+D9nkNc6V0PNedccYZfo8955xzJB3vg3naaaf5/K9Pnz5BiwnW\nQPGGoLjpppt08skn64YbbtC2bdv04Ycf6te//rV69eql7Oxsn2NnzZqlTZs26eOPP9bNN9+s+Ph4\n3XjjjZKk4cOH66STTtKcOXO0e/duvf7663rwwQeb/ezTTz9dBw8e1Jo1a7Rnzx4999xzevLJJ32O\nqU9er776qg4dOqTvv//e77nuvvtuLVu2TE8//bR2796tVatWadWqVbrnnnvaemkA2NAll1yiVatW\n6cMPP1RxcbHeeust5ebmKjExUZdccomk47nn+eef1yeffKLt27frpptuCuoI/H/913+psLBQu3fv\n1rJly/Tiiy9qxowZfo/t27evxo8fr9tuu03r16/XF198oY8++kjPPvusCgoKghYTrIHiDUERGxur\nN998UzExMbr44ov105/+VPHx8frf//1fnxG6iIgIPfzww5o4caKGDx+ugwcP6n/+53+8o1qJiYn6\n4x//qC1btmjIkCGaP3++38TTcCTuqquu0j333KN77rlHgwcP1oYNG7Rw4UKf44cNG6Zp06Zp0qRJ\n6tGjh+644w6/32Py5Ml64IEH9MgjjygzM1MFBQVasGCBxo0b5/ezAXRMV155pf7whz/oqquu0sCB\nA3XLLbdowIABeu+995SUlCTpeGsjj8ej8847T7/61a90xRVX6Nxzz/U5T6Cr5/09d9999+kvf/mL\nhgwZokcffVQFBQW69tprm3zPU089pby8PD388MPKzMzUqFGj9Nxzz+m0005r0zWAdTmM5u4jBVFt\nba3y8/NVV1cnt9utrKwsjR49utFxRUVFWrdundxut+Lj45Wfn29GeDDBunXrdNttt4VsHhoAdBRO\np1Pr16/XTTfdFO5QYEGmjbxFRUUpPz9fjz32mAoKCrR9+/ZGvXCqq6v1zDPPaM6cOVq0aJHy8vIC\n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\noXgDAACwEYo3AAAAG6F4AwAAsBGKNwAAABuheAMAALARijcAAAAbiTTrg8rLy7V8+XIdPnxYDodD\nI0eO1JVXXtnouKKiIq1bt05ut1vx8fHKz883K0QAAADLM614i4iI0NixY5WRkaGamhrNnj1bQ4YM\nUc+ePb3HVFdX65lnntG9996rpKQkHTlyxKzwAAAAbMG026YJCQnKyMiQJMXGxqpnz56qqKjwOWbz\n5s0677zzlJSUJEmKj483KzwAAABbMG3kraGysjLt27dP/fv393m+pKREbrdb8+bNU01Nja644gpd\ndNFF4QgRAADAkkwv3mpqarR48WKNGzdOsbGxPq95PB7t2bNH9913n44ePap7771XAwYM0CmnnOJz\nXFFRkYqKiryPs7Oz5XK5TIm/PaKjo20Rp2SfWIkz+OwU64YNG7w/Z2ZmKjMzM4zRBI4cFlrEGXx2\nidUucUrty18OwzCMUATlj9vt1qOPPqqzzz7b72KFV155RbW1tRo9erQkaeXKlTrrrLOUlZXV4rlL\nSkqCHm+wuVwuVVVVhTuMgNglVuIMPrvEmpqaGu4QgoocFjzEGXx2idUucbY3f5naKuTJJ59UWlqa\n38JNks4991zt3LlTHo9HR48e1a5du5SWlmZmiAAAAJZm2m3TnTt3atOmTUpPT9esWbPkcDh04403\n6uDBg3I4HBo1apR69uypIUOGaMaMGXI6nRo1ahTFGwAAQAOmFW8DBw7UCy+80OJx1157ra699loT\nImre/uJibShcKs+35XImJis7d6p6paeHOywAANDJscOCH/uLi7Vm2iTllO3QdKNcOWU7tGbaJO0v\nLg53aAAAoJOjePNjQ+FSTU9wKC4yQpIUFxmh6QkObShcGubIAABAZ0fx5ofn23Jv4VYvLjJCnsry\nMEUEAABwHMWbH87EZFXXuX2eq65zy5mQHKaIAAAAjqN48yM7d6oWVxreAq66zq3FlYayc6eGOTIA\nANDZhWV7LKvrlZ6uCU+s1OrCpfJUlsuZkqwJ81htCgAAwo/irQm90tN114KF4Q4DAADAB7dNAQAA\nbITiDQAAwEYo3gAAAGyE4g0AAMBGKN4AAABshOINAADARijeAAAAbITiDQAAwEYo3gAAAGyE4g0A\nAMBGKN4AAABshOINAADARijeAAAAbITiDQAAwEYo3gAAAGyE4g0AAMBGKN4AAABshOINAADARije\nAAAAbITiDQAAwEYo3gAAAGyE4g0AAMBGKN4AAABshOINAADARijeAAAAbITiDQAAwEYo3gAAAGyE\n4g0AAMBGKN4AAABshOINAADARiLN+qDy8nItX75chw8flsPh0MiRI3XllVf6PXb37t2aO3eu7rzz\nTp133nlmhQgAAGB5phVvERERGjt2rDIyMlRTU6PZs2dryJAh6tmzp89xHo9Hf/jDHzRkyBCzQgMA\nALAN026bJiQkKCMjQ5IUGxurnj17qqKiotFxr7/+urKyshQfH29WaAAAALYRljlvZWVl2rdvn/r3\n7+/zfEVFhT744ANddtll4QgLAADA8kwv3mpqarR48WKNGzdOsbGxPq+tXbtWY8aM8T42DMPs8AAA\nACzNYZhYIbndbj366KM6++yz/S5WmDJliqTjRVtVVZViYmI0ceJEDRs2zOe4oqIiFRUVeR9nZ2eH\nNnAAlrRhwwbvz5mZmcrMzAxjNIEjhwFoV/4yTLRs2TJj7dq1AR1bWFhobNmyJaBjX3jhhfaEZRq7\nxGkY9omVOIPPLrHaJc5A2OW7EGdw2SVOw7BPrJ0lTtNWm+7cuVObNm1Senq6Zs2aJYfDoRtvvFEH\nDx6Uw+HQqFGjzAoFAADAtkwr3gYOHKgXXngh4ONvv/32EEYDAABgTxH333///eEOIhhSUlLCHUJA\n7BKnZJ9YiTP47BKrXeIMhF2+C3EGl13ilOwTa2eI09QFCwAAAGgf9jYFAACwEYo3AAAAGzFtwUJ7\neTwezZkzR8nJyZo9e7ZefPFFvfXWW+rWrZsk6cYbb9RZZ50lSXr55Zf19ttvKyIiQuPGjTN1n9Tc\n3FzFxcXJ4XAoIiJCjzzyiL777js9/vjjOnjwoFJSUpSXl6e4uLiwxuovTite0+rqaq1cuVL79++X\nw+HQ5MmTdeqpp1ruevqLc/v27Za7niUlJXr88cflcDhkGIZKS0t1ww036KKLLrLUNW0qzu+//95y\n1zQQ5K/Qx2nVa0oOCx7yVwPtblZiktdee8144oknjEcffdQwDMPYsGGD8dprrzU6bv/+/cbMmTON\nuro6o7S01JgyZYrh8XhMizM3N9eoqqryee73v/+98corrxiGYRgvv/yysX79+rDH6i9OK17T5cuX\nG3/9618NwzCMuro64/vvv7fk9fQXpxWvZ0Nut9vIyckxDh48aMlr6i9Oq1/TppC/Qh+nVa8pOSw0\nOnv+ssVt0/Lycm3btk0jR470ed7ws9Zi69atGjFihCIiIpSSkqJTTz1Vu3fvNitUGYbRKK6tW7fq\n4osvliRdcskl+uCDD8Ieq784658/UbjirK6u1s6dO/XTn/5UkhQREaG4uDjLXc+m4pSsdT1P9PHH\nH6tHjx46+eSTLXdNm4pTsvY19Yf8ZU6c9c+fKJxxksNCp7PnL1vcNl23bp1++9vfqrq62uf5119/\nXe+++6769u2rm2++WXFxcaqoqNCAAQO8xyQlJamiosK0WB0Ohx566CE5nU6NGjVKI0eO1OHDh5WQ\nkCBJSkhI0OHDhyUprLE2jHPkyJHeJslWuqZlZWVyuVxasWKF9u3bp9NOO03jxo2z3PVsKk7JWtfz\nRH/72990wQUXSJLlrumJcZ5//vnex1a+pv6Qv0Ibp1Xzl0QOC6XOnr8sX7z985//VLdu3ZSRkeGz\nF+Dll1+u66+/Xg6HQ3/84x/13HPPadKkSWGM9LgHH3xQiYmJOnLkiB566CGlpqY2OsbhcIQhMl8N\n43zwwQeVlpZmuWvq8Xi0Z88e3XLLLerbt6/Wrl2rV155pdFx4b6eTcV5xRVXWOp6NlRXV6etW7dq\nzJgxfl8P9zWtd2KcVvsdbQn5KzTskL8kcliokL9ssNp0586d2rp1q6ZMmaInnnhCn3zyiZYvX674\n+HjvP9DIkSO9Q4xJSUk6dOiQ9/3l5eVKSkoyLd7ExERJUnx8vM4991zt3r1bCQkJqqyslCRVVlZ6\nJyuGM9aGcQ4fPly7d++23DVNSkpScnKy+vbtK0nKysrSnj17LHc9m4rTatezoe3bt+u0005TfHy8\nJFnumjYVp5WvqT/kr9DHadX8Vf/Z5LDgI3/ZoHi76aab9OSTT2r58uW688479ZOf/ERTpkzx/kNJ\n0j/+8Q/16tVLkjRs2DD97W9/U11dncrKyvTNN9+oX79+psR69OhR1dTUSJJqamr00UcfKT09Xeec\nc47eeecdSdI777yjYcOGhTVWf3H26tXLctc0ISFBycnJKikpkXR87kBaWprlrmdTcVrteja0efNm\nn6F8q13TpuK08jX1h/xlTpxWzF8SOSxUyF82uG3alPXr12vv3r1yOBzq3r27cnJyJElpaWn6t3/7\nN+Xl5SkyMlK33nqraUOohw8fVkFBgRwOh9xuty688EINGTJEffv21ZIlS/T222+re/fuysvLC2us\nTcW5fPlyy13T8ePHa9myZaqrq1OPHj10++23y+PxWOp6NhXnmjVrLHc9peP/5/fxxx9r4sSJ3ud+\n8YtfWO6a+ovTiv/dt4UVvwf5KzTIYcFF/jqO7bEAAABsxPK3TQEAAPAjijcAAAAboXgDAACwEYo3\nAAAAG6F4AwAAsBGKNwAAABuheAMAALAR2zbpRceSm5uryZMn6yc/+YnP83/605/017/+VVVVVYqL\ni9Ppp5+uO++80+eYwsJCbd68WU8++aR3c+KnnnpKmzZtksPhUG1trQzDUHR0tCRp4MCBuvvuu835\nYgA6BXIYzETxBst65513tHnzZt13331KSUnR4cOHtXXrVp9jjh49qvfff19xcXHatGmTrrnmGknS\nbbfdpttuu02S9OKLL6q0tFRTpkwx/TsA6LzIYQgVbpvCsr788ksNGTJEKSkpkqRu3bpp5MiRPsds\n2bJFXbt21fXXX+/d2w4ArIAchlCheINl9e/fX++++67+8z//U19++aU8Hk+jY959911dcMEFGjFi\nhEpKSrRnz54wRAoAjZHDECrcNoVlXXjhhXI4HHrnnXf00ksvKSoqStdee62uu+46SdKhQ4f0ySef\naOzYserWrZvOPPNMbdy4UX369Alz5ABADkPoULzB0i644AJdcMEF8ng8ev/997V06VL16dNHgwcP\n1rvvvqu0tDSlp6dLks4//3ytX79eN998s5xOBpUBhB85DKFA8QZbcDqdysrK0quvvqri4mJv4isv\nL1dOTo4kye1267vvvtM///lPDRs2LMwRA8CPyGEIJoo3WEZdXZ1qa2slSYZhaPPmzUpISNAZZ5yh\nmJgYbd++XQcOHFD//v31+eefq7S0VAUFBXK5XN5zrFu3Ths3biTxATAdOQxmoXiDZTzyyCM+j9PS\n0tS1a1ctW7ZMhmGoe/fuuu2223T66afrqaee0rnnnqu0tDSf91x55ZXKz8/X999/r65du5oZPoBO\njhwGszgMwzDCHQQAAAACw4xIAAAAG6F4AwAAsBGKNwAAABuheAMAALARijcAAAAboXgDAACwEYo3\nAAAAG6F4AwAAsBGKNwAAABv5/4+xPIP+Lo4KAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11c093c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Visualize the data\n",
"fig, ax = plt.subplots(1, 2, sharex=True, sharey=True, figsize = (10, 5))\n",
"\n",
"ax[0].plot(lawPopulation.LSAT, lawPopulation.GPA, 'o')\n",
"ax[0].set(title='Population', ylabel='GPA', xlabel = 'LSAT')\n",
"\n",
"ax[1].plot(law.LSAT, law.GPA, 'o')\n",
"ax[1].set(title='Sample', ylabel='GPA', xlabel = 'LSAT')"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def calc_corr(x, y):\n",
" return(np.corrcoef(x, y)[0, 1])"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [],
"source": [
"# Set the number of bootstrap iterations\n",
"B = 3200\n",
"\n",
"# Create an empty numpy array to store the results\n",
"tBoot = np.zeros((B, 1))\n",
"\n",
"# Run the bootstrapping\n",
"for i in np.arange(B):\n",
" lawResample = law.sample(n = law.shape[0], replace = True)\n",
" tBoot[i] = calc_corr(lawResample.LSAT, lawResample.GPA)"
]
},
{
"cell_type": "code",
"execution_count": 211,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Compare the bootstrapped sample with repeated sampling from the population\n",
"tSample = np.zeros((B, 1))\n",
"\n",
"# Run the sampling\n",
"for i in np.arange(B):\n",
" lawSample = lawPopulation.sample(n = law.shape[0], replace = False)\n",
" tSample[i] = calc_corr(lawSample.LSAT, lawSample.GPA)"
]
},
{
"cell_type": "code",
"execution_count": 217,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.text.Text at 0x11d279cf8>, <matplotlib.text.Text at 0x11d2c6128>]"
]
},
"execution_count": 217,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n7Oxs/O1vf6vzLU97fmeCg4ORlpaG3377DQUFBdU+zqhRo9CyZUuMGDECJpMJhw4dwsiRI3H77bcj\nLi6uIU8bUZO5evUq8vLykJeXh9zcXLz++us4evQohg4div79+yMyMhKjRo3Cf//7X2RmZuLJJ5/E\nlStX8MwzzwAAJk2ahOLiYsTHx8NsNmPfvn148skn0adPH+k7JoODg3Hu3DkcOHAABQUFuHz5Mvbv\n34958+bh4MGD+O233/D111/jp59+kv7g/L//+z+o1Wp89tlnyM/PR3FxcY3H4Ovri1atWmHdunXI\nycnB/v37MWrUKHh5eVUZa09td3T99/LywtNPP41Zs2Zh586dyMnJwaxZs6TTWUh+bNwcbNCgQdiy\nZQsefPBBhIeHIyEhAe3bt0daWhoMBgMAYOPGjbBarejZsyeGDh2KBx54AD169LB5nOpeEPaumzNn\nDr766it07twZf//737F48WI88sgjNd6nruXqTJkyBZMmTcKUKVMQERGBgwcP4vnnn7eZebJXTftL\nSUnB/fffj9GjR6NLly7Yv38/du7cibCwsFrva++6m0VGRuKee+7BwIEDMWjQIHTu3BkpKSnS9sTE\nRLz22mtYsGABjEYjFi9ejIULFyI+Pt7mcZKSknDy5El0794dkydPxnPPPYfnnntO2j59+nQ8+OCD\nGDlyJHr37g29Xl9n02TP78yrr76KoqIi3HnnnfD395e+O/DGY/fw8EBqaiq0Wi369OmDfv36wdvb\nG59//nmd3yfFIk2uZu/evWjbti3atm2Lbt26YceOHVi/fj0ef/xxAMBHH32E8PBwPPTQQ+jZsyfO\nnz+Pr776SqrF/v7+2LVrF06dOoXIyEg88sgj6NSpE7Zt2ybtY8iQIXjsscfw4IMPwt/fH4sXL4aP\njw/279+PIUOGoH379hg3bhxGjx6NWbNmSY+7YMEC/P3vf0fbtm0xZMiQGo9BpVLhP//5D37++Wd0\n7twZTz31FKZOnYo2bdpUGVtXbbdnTEPq/aJFi/Dwww/jr3/9K3r27InCwkLEx8c3qN5T46nEzSfb\nOJnVasXMmTNhMBgwffp0m21ZWVlYtGgRWrduDeDaP6TDhg2TM57iqdVqvPvuuxg1apTs+37qqadw\n5MgRpKeny77vxho7dixOnz6NXbt2NepxgoODMX78eLz00ksOSkZEZF9tl7P+DxgwAAaDwabJJXnI\n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\nREREpBD/D1Aq79yuNS2lAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11d4ccbe0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Show similarity between sampling from population and bootstrapping\n",
"fig, ax = plt.subplots(1, 2, sharex=True, sharey=True, figsize = (10, 5))\n",
"kwargs = dict(bins=30, normed=True, color='steelblue', edgecolor='none')\n",
"ax[0].hist(tSample, **kwargs)\n",
"ax[0].set(title='Sampling from population', ylabel='Density', xlabel = 'Correlation Coefficient')\n",
"ax[1].hist(tBoot, **kwargs)\n",
"ax[1].set(title='Bootstrapping', xlabel = 'Correlation Coefficient')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Calculate the plug-in estimate\n",
"corHat = calc_corr(law.LSAT, law.GPA)\n",
"\n",
"# Calculate the standard error for the correlation coefficient\n",
"seHat = np.sqrt(np.var(tBoot))\n",
"seHat"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.51165211, 1.04109688])"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Normal intervals\n",
"normalInterval = corHat + seHat * norm.ppf([0.025, 0.975])\n",
"normalInterval"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.46194551, 0.96169933])"
]
},
"execution_count": 202,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Percentile intervals\n",
"percentileInterval = np.percentile(tBoot, [2.5, 97.5])\n",
"percentileInterval"
]
},
{
"cell_type": "code",
"execution_count": 204,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cor = calc_corr(lawPopulation.LSAT, lawPopulation.GPA)"
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n5dmDAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11ca3b898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot the results\n",
"plt.hist(tBoot, bins=30, normed=True, color='steelblue', edgecolor='none');\n",
"plt.axvline(x = percentileInterval[0], linestyle = '--', color = 'black', label = 'Percentile')\n",
"plt.axvline(x = percentileInterval[1], linestyle = '--', color = 'black')\n",
"plt.axvline(x = cor, label = 'True Value', color = 'red')\n",
"plt.axvline(x = corHat, label = 'Estimated Value', color = 'black')\n",
"plt.legend(framealpha=1, frameon=False, loc = 'upper left');\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 231,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"3.0946666666666669"
]
},
"execution_count": 231,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"law.GPA.values.mean()"
]
},
{
"cell_type": "code",
"execution_count": 239,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import time"
]
},
{
"cell_type": "code",
"execution_count": 256,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.023602008819580078"
]
},
"execution_count": 256,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Comparing NumPy and Pandas resampling\n",
"B = 1000\n",
"testArrray = law.GPA.values\n",
"testArrayResult = np.zeros((B, 1))\n",
"\n",
"startNumPyTime = time.time()\n",
"for i in np.arange(B):\n",
" arrayResample = np.random.choice(testArrray, size = 15, replace = True)\n",
" testArrayResult[i] = arrayResample.mean()\n",
"time.time() - startNumPyTime"
]
},
{
"cell_type": "code",
"execution_count": 255,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"4.146126985549927"
]
},
"execution_count": 255,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"testSeries = law.GPA\n",
"testSeriesResult = np.zeros((B, 1))\n",
"\n",
"startPandasTime = time.time()\n",
"for i in np.arange(B):\n",
" seriesResample = testSeries.sample(n = 15, replace = True)\n",
" testSeriesResult[i] = lawResample.mean()\n",
"time.time() - startPandasTime"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ideas\n",
"- Comparing the speed of bootstrapping for NumPy and Pandas\n",
"- Estimating the bias of a statistic\n",
"- Practical Tips for Implementing Bootstrapping\n",
"- How to compare bootstrapped results\n",
"- Put common tasks into functions\n",
"\n",
"## Done\n",
"- Comparison of bootstrapped sample with the original sample\n",
"- Example of bootstrapping the correlation coefficient\n",
"- Calculation of percentile interval and normal interval\n",
"- Historgram plot of bootstrapped results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"1. Efron, B. and Tibshirani, R. (1993) An Introduction to the Bootstrap. Chapman and Hall, New\n",
"York, London."
]
}
],
"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.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment