Introducción al bootstrapping

Muestreo en Python

James Chapman

Curriculum Manager, DataCamp

Con o sin

Muestreo sin reemplazo:

Cartas sobre una mesa de casino.

Muestreo con reemplazo ("remuestreo"):

Cuatro dados rodando.

Muestreo en Python

Muestreo aleatorio simple sin reemplazo

Población:

Granos de café en filas y columnas.

Muestra:

Granos de café en filas y columnas, la mayoría en gris.

Muestreo en Python

Muestreo aleatorio simple con reemplazo

Población:

Granos de café en filas y columnas.

Remuestra:

Una muestra aleatoria de granos de café, algunos duplicados.

Muestreo en Python

¿Por qué muestrear con reemplazo?

  • coffee_ratings: una muestra de la población de todos los cafés
  • Cada café de la muestra representa muchos cafés hipotéticos de la población
  • Muestrear con reemplazo es un proxy
Muestreo en Python

Preparación de datos de café

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]
Muestreo en Python

Remuestreo con .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]
Muestreo en Python

Cafés repetidos

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
Muestreo en Python

Cafés que faltan

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

Bootstrapping

Lo opuesto a muestrear de una población

-Muestreo: ir de una población a una muestra más pequeña

-Bootstrapping: construir una población teórica a partir de la muestra

Caso de uso del bootstrapping:

  • Entender la variabilidad del muestreo con una sola muestra

Una bota vaquera.

Muestreo en Python

Proceso de bootstrapping

  1. Crea un remuestreo del mismo tamaño que la muestra original
  2. Calcula la estadística de interés para esta muestra bootstrap
  3. Repite los pasos 1 y 2 muchas veces

Las estadísticas resultantes son estadísticas bootstrap y forman una distribución bootstrap

Muestreo en Python

Bootstrapping del sabor medio del café

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'])
)
Muestreo en Python

Histograma de la distribución bootstrap

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

Distribución bootstrap del sabor medio

Muestreo en Python

¡Vamos a practicar!

Muestreo en Python

Preparing Video For Download...