Introdução ao bootstrapping

Amostragem em Python

James Chapman

Curriculum Manager, DataCamp

Com ou sem

Amostragem sem reposição:

Cartas de baralho numa mesa de cassino.

Amostragem com reposição ("reamostragem"):

Quatro dados rolando.

Amostragem em Python

Amostragem aleatória simples sem reposição

População:

Grãos de café em linhas e colunas.

Amostra:

Grãos de café em linhas e colunas, a maioria em cinza.

Amostragem em Python

Amostragem aleatória simples com reposição

População:

Grãos de café em linhas e colunas.

Reamostra:

Uma amostra aleatória de grãos de café, alguns duplicados.

Amostragem em Python

Por que amostrar com reposição?

  • coffee_ratings: uma amostra de uma população maior de cafés
  • Cada café da amostra representa muitos cafés hipotéticos da população
  • Amostragem com reposição é um substituto
Amostragem em Python

Preparando os dados 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]
Amostragem em Python

Reamostrando com .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]
Amostragem em 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
Amostragem em Python

Cafés ausentes

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

Bootstrapping

O oposto de amostrar de uma população

Amostragem: da população para uma amostra menor

Bootstrapping: construir uma população teórica a partir da amostra

Quando usar bootstrapping:

  • Entender a variabilidade amostral usando uma única amostra

Uma bota country.

Amostragem em Python

Processo de bootstrapping

  1. Faça uma reamostra do mesmo tamanho da amostra original
  2. Calcule a estatística de interesse para essa amostra bootstrap
  3. Repita os passos 1 e 2 muitas vezes

As estatísticas resultantes são as estatísticas bootstrap e formam uma distribuição bootstrap

Amostragem em Python

Bootstrapping da média de sabor do 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'])
)
Amostragem em Python

Histograma da distribuição bootstrap

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

Distribuição bootstrap da média do sabor

Amostragem em Python

Vamos praticar!

Amostragem em Python

Preparing Video For Download...