Что такое репликация Bootstrap?
Для тех, кто догоняет здесь, бутстрап-выборка относится к процессу выборки данного набора данных «с заменой»… И именно здесь большинство людей теряются. Вы берете много образцов и строите распределение, чтобы отметить свой доверительный интервал.
Возьмем небольшой пример.
Крипто в колледже
Допустим, вы хотите узнать, как население колледжа относится к криптовалюте; ну, скорее всего, вы не сможете собрать ответы от всех в школе; что, вероятно, произойдет, так это то, что вы раздадите какой-нибудь опрос и получите несколько ответов, которые, как вы надеетесь, отражают общее мнение населения, хорошее или плохое.
Хотя у вас есть четкое представление о распределении среди ваших респондентов, вы хотите создать реалистичный доверительный интервал, который будет более показательным для всей школы. Вот тут-то и появляется ускоренная репликация!
Отбор проб с заменой
Пока мы знаем, что репликация начальной загрузки - это выборочный подход. Основная идея здесь в том, что когда выбран один сэмпл, его можно выбирать снова и снова. Это служит цели воссоздания случайного повторения типа респондента, которое на самом деле может быть вызвано случайной случайностью.
Каждый образец начальной загрузки называется репликацией. В этом случае допустим 1000 повторений.
Как только у нас есть 1000 повторов или образцов, у нас теперь есть 1000 значений для выборочного среднего.
Из этого распределения мы получим наш фактический доверительный интервал.
Допустим, нам нужен доверительный интервал 95%; мы бы получили это, посмотрев на наше начальное распределение и взяв 2,5-е и 97,5-е значения в качестве нашего интервала.
Давайте посмотрим на код!
library(infer) replicates <- crypto_opinions %>% specify(response = opinion, success = "positive") %>% generate(reps = 1, type = "bootstrap")
replicates %>% summarize(prop_high = mean(response == 'positive')) %>% pull()
Мы используем specify
, чтобы изолировать переменную ответа, которая нам важна, и значение переменной, определяющее «успех». Оттуда мы используем generate
для создания нашей первой репликации начальной загрузки. Вы также заметите, что мы указываем type
как bootstrap
. Затем мы используем суммирование и вытягивание, чтобы сгенерировать долю указанного уровня «положительный».
replicates <- crypto_opinions %>%
specify(response = opinion, success = "positive") %>% generate(reps = 1000, type = "bootstrap")%>% calculate(stat = "prop")
Как и в предыдущем блоке кода, мы увеличили количество повторений до 1000 и теперь связываем функцию calculate
. Функция calculate
создает фрейм данных с одной записью для каждой «stat» реплики, которая соответствует этой реплике.
ggplot(replicates, aes(stat)) +
geom_density()
На приведенной выше диаграмме показана диаграмма плотности или распределение среднего результата для каждой реплики.
Отсюда просто вычислить стандартное отклонение и использовать его для определения верхней и нижней границы вашего диапазона!
Lower_bound <- mean(replicates$stat) - sd(replicates$stat) * 2 upper_bound <- mean(replicates$stat) + sd(replicates$stat) * 2
Вывод
Надеюсь, вам понравился этот пост и он сэкономит вам время! Пожалуйста, поделитесь тем, что работает, а что нет!
Не стесняйтесь проверить некоторые из моих других сообщений на datasciencelessons.com
Поздравления с наукой о данных!