Начальная загрузка

Bootstrap — чрезвычайно мощный статистический инструмент, который можно использовать в тех случаях, когда доступных данных гораздо меньше. Другими словами, оценка различных statistic сомнительна из-за низкого уровня данных. Элегантность Bootstrap проявляется в том, что его можно легко применить к различным методам статистического обучения, таким как подбор линейной регрессии.

Каждый набор данных начальной загрузки содержит n наблюдений, отобранных с заменой из данного набора данных. Каждый набор данных начальной загрузки используется для получения оценки данного statistic. Это настолько просто, насколько это возможно. Однако для того, чтобы осознать его влияние в целом, требуется время.

Использование повторной выборки Bootstrap для повторного заполнения набора данных может помочь в создании удивительного набора данных для создания распределений и, таким образом, подбора предопределенных кривых.

Почему стоит доверять результату?

Если вы посмотрите на процесс, с помощью которого это создается, как показано на изображении ниже, можно увидеть, что это эквивалентно выполнению выборки из реального мира.

Можно возразить, что выборка данных идеального сценария в значительной степени пытается избежать замены, но опять же следует понимать, что большинство наборов данных реального мира также носят вероятностный характер. Итак, вкратце, можно доверять результатам, поскольку весь процесс Bootstrap повторной выборки делает очень мало предположений об основном распределении исходного набора данных. И раздел комментариев открыт для разногласий по сделанному наблюдению :)

питон

Я понимаю, что будет несправедливо предоставить рабочий образец. Итак, вот один из people.duke.edu

import sys
import glob
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
%matplotlib inline
%precision 4
plt.style.use('ggplot')

np.set_printoptions(formatter={'float': lambda x: '%.3f' % x})

# For example, what is the 95% confidence interval for
# the mean of this data set if you didn't know how it was generated?

x = np.concatenate([np.random.exponential(size=200), np.random.normal(size=100)])
plt.hist(x, 25, histtype='step');

n = len(x)
reps = 10000
xb = np.random.choice(x, (n, reps))
mb = xb.mean(axis=0)
mb.sort()

np.percentile(mb, [2.5, 97.5])

Случаи использования

Ниже приведены некоторые возможные ситуации, в которых следует рассмотреть передискретизацию Bootstrap:

  • Меньше набора данных, всего 30 точек данных,
  • Распространение неизвестно,
  • Создайте более плавное распределение,

Надеюсь, когда-нибудь это поможет кому-то с ограниченными данными :)

Ссылка