Введение в бутстрэппинг

Выборка в Python

James Chapman

Curriculum Manager, DataCamp

С возвращением или без

Выборка без возвращения:

Игральные карты на столе в казино.

Выборка с возвращением («ресэмплинг»):

Четыре игральных кубика.

Выборка в Python

Простая случайная выборка без возвращения

Генеральная совокупность:

Кофейные зёрна, расположенные рядами и столбцами.

Выборка:

Кофейные зёрна, большинство из которых выделены серым.

Выборка в Python

Простая случайная выборка с возвращением

Генеральная совокупность:

Кофейные зёрна, расположенные рядами и столбцами.

Повторная выборка:

Случайная выборка кофейных зёрен, среди которых есть дубликаты.

Выборка в Python

Зачем делать выборку с возвращением?

  • coffee_ratings — выборка из более широкой генеральной совокупности всего кофе
  • Каждый кофе в выборке представляет множество гипотетических значений из генеральной совокупности
  • Выборка с возвращением служит приближением
Выборка в Python

Подготовка данных о кофе

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]
Выборка в Python

Повторная выборка с помощью .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]
Выборка в Python

Повторяющиеся записи о кофе

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
Выборка в Python

Отсутствующие записи о кофе

num_unique_coffees = len(coffee_resamp.drop_duplicates(subset="index"))
868
len(coffee_ratings) - num_unique_coffees
470
Выборка в Python

Бутстрэппинг

Процесс, обратный выборке из генеральной совокупности

Выборка: переход от генеральной совокупности к меньшей выборке

Бутстрэппинг: построение теоретической совокупности на основе выборки

Область применения бутстрэппинга:

  • Изучение вариативности выборки на основе единственной выборки

Ковбойский сапог.

Выборка в Python

Процесс бутстрэппинга

  1. Сформируйте повторную выборку того же размера, что и исходная
  2. Вычислите интересующую статистику для этой бутстрэп-выборки
  3. Повторите шаги 1 и 2 многократно

Полученные статистики называются бутстрэп-статистиками и формируют бутстрэп-распределение

Выборка в Python

Бутстрэппинг среднего значения вкуса кофе

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'])
)
Выборка в Python

Гистограмма бутстрэп-распределения

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

Бутстрэп-распределение среднего значения вкуса

Выборка в Python

Давайте потренируемся!

Выборка в Python

Preparing Video For Download...