Bootstrap использование пакета rsample намного медленнее, чем использование загрузочного пакета - PullRequest
0 голосов
/ 03 марта 2020

Я обнаружил, что с помощью пакета boot, подобного этому

library(boot)

calculate_mean_1 <- function(.data, i){
  mean(.data$mpg[i])
}

system.time(
  samples_1 <- boot(mtcars, statistic = calculate_mean_1, R=10000)$t
)

, я могу создать bootstrap семплов более чем в 10 раз быстрее, чем с помощью пакета rsample:

library(tidyverse)
library(rsample)

calculate_mean_2 <- function(.data) {
  mean(analysis(.data)$mpg)
}

system.time(
  samples_2 <- bootstraps(mtcars, times = 10000) %>% 
    mutate(m = map_dbl(splits, calculate_mean_2))
)

Интересно, правильно ли я использую rsample.

1 Ответ

1 голос
/ 19 марта 2020

Похоже, вы все делаете правильно. Я предполагаю, что разница в том, что rsample использует списки, а не стандартный вектор. Преимущество rsample заключается в том, что вы можете рассчитывать несколько статистических данных за один прогон, поэтому вы можете выиграть некоторое время, если вы сделаете это (и упростите чтение кода).

...