Introductie tot bootstrapping

Steekproeven in Python

James Chapman

Curriculum Manager, DataCamp

Met of zonder

Steekproeven zonder teruglegging:

Speelkaarten op een casinotafel.

Steekproeven met teruglegging ("resampling"):

Vier rollende dobbelstenen.

Steekproeven in Python

Aselecte steekproef zonder teruglegging

Populatie:

Koffiebonen in rijen en kolommen.

Steekproef:

Koffiebonen in rijen en kolommen, waarvan de meeste grijs zijn gemaakt.

Steekproeven in Python

Aselecte steekproef met teruglegging

Populatie:

Koffiebonen in rijen en kolommen.

Hersteekproef:

Een willekeurige steekproef van koffiebonen, met enkele duplicaten.

Steekproeven in Python

Waarom met teruglegging steekproeven?

  • coffee_ratings: een steekproef uit de grotere populatie van alle koffies
  • Elke koffie in onze steekproef staat voor veel hypothetische populatiekoffies
  • Steekproeven met teruglegging is een benadering
Steekproeven in Python

Koffiedata voorbereiden

coffee_focus = coffee_ratings[["variety", "country_of_origin", "flavor"]]
coffee_focus = coffee_focus.reset_index()
      index  variety country_of_origin  flavor
0         0     None          Ethiopia    8.83
1         1    Other          Ethiopia    8.67
2         2  Bourbon         Guatemala    8.50
3         3     None          Ethiopia    8.58
4         4    Other          Ethiopia    8.50
...     ...      ...               ...     ...
1333   1333     None           Ecuador    7.58
1334   1334     None           Ecuador    7.67
1335   1335     None     United States    7.33
1336   1336     None             India    6.83
1337   1337     None           Vietnam    6.67

[1338 rows x 4 columns]
Steekproeven in Python

Hersteekproeven met .sample()

coffee_resamp = coffee_focus.sample(frac=1, replace=True)
      index  variety country_of_origin  flavor
1140   1140  Bourbon         Guatemala    7.25
57       57  Bourbon         Guatemala    8.00
1152   1152  Bourbon            Mexico    7.08
621     621  Caturra          Thailand    7.50
44       44     SL28             Kenya    8.08
...     ...      ...               ...     ...
996     996   Typica            Mexico    7.33
1090   1090  Bourbon         Guatemala    7.33
918     918    Other         Guatemala    7.42
249     249  Caturra          Colombia    7.67
467     467  Caturra          Colombia    7.50

[1338 rows x 4 columns]
Steekproeven in Python

Herhaalde koffies

coffee_resamp["index"].value_counts()
658     5
167     4
363     4
357     4
1047    4
       ..
771     1
770     1
766     1
764     1
0       1
Name: index, Length: 868, dtype: int64
Steekproeven in Python

Ontbrekende koffies

num_unique_coffees = len(coffee_resamp.drop_duplicates(subset="index"))
868
len(coffee_ratings) - num_unique_coffees
470
Steekproeven in Python

Bootstrapping

Het tegenovergestelde van steekproeven uit een populatie

Steekproeven: van een populatie naar een kleinere steekproef

Bootstrapping: een theoretische populatie opbouwen uit de steekproef

Gebruik van bootstrapping:

  • Inzicht krijgen in steekproefvariatie met één steekproef

Een cowboylaars.

Steekproeven in Python

Bootstrapping-proces

  1. Maak een hersteekproef met dezelfde omvang als de oorspronkelijke steekproef
  2. Bereken de gewenste statistiek voor deze bootstrapsteekproef
  3. Herhaal stappen 1 en 2 vaak

De uitkomsten zijn bootstrapstatistieken en vormen een bootstrapverdeling

Steekproeven in Python

Gemiddelde koffiesmaak bootstrappen

import numpy as np

mean_flavors_1000 = []
for i in range(1000):
mean_flavors_1000.append(
np.mean(coffee_sample.sample(frac=1, replace=True)['flavor'])
)
Steekproeven in Python

Histogram van bootstrapverdeling

import matplotlib.pyplot as plt
plt.hist(mean_flavors_1000)
plt.show()

Bootstrapverdeling van de gemiddelde smaak

Steekproeven in Python

Laten we oefenen!

Steekproeven in Python

Preparing Video For Download...