С использованием
boot * 1.3-18 2016-02-23 CRAN (R 3.2.3)
data.table * 1.9.7 2015-10-05 Github (Rdatatable/data.table@d607425)
Я получил ошибку, используя код OP с ответом, предоставленным @eddi:
data <- as.data.table(list(x1 = runif(200), x2 = runif(200), group = runif(200)>0.5))
stat <- function(x, i) {x[i, c(m1 = mean(x1), m2 = mean(x2)), by = "group"]}
data[, list(list(boot(.SD, stat, R = 10))), by = group]$V1
Выдает сообщение об ошибке:
Error in eval(expr, envir, enclos) : object 'group' not found
Ошибка исправлена удалением by=group
из функции stat
:
set.seed(1000)
data <- as.data.table(list(x1 = runif(200), x2 = runif(200), group = runif(200)>0.5))
stat <- function(x, i) {x[i, c(m1 = mean(x1), m2 = mean(x2))]}
data[, list(list(boot(.SD, stat, R = 10))), by = group]$V1
Что дает следующие результаты статистики Bootstrap:
[[1]]
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = .SD, statistic = stat, R = 10)
Bootstrap Statistics :
original bias std. error
t1* 0.5158232 0.004930451 0.01576641
t2* 0.5240713 -0.001851889 0.02851483
[[2]]
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = .SD, statistic = stat, R = 10)
Bootstrap Statistics :
original bias std. error
t1* 0.5142383 -0.0072475030 0.02568692
t2* 0.5291694 -0.0001509404 0.02378447
Ниже я изменяю образец набора данных, чтобы выделить, какая статистика Bootstrap соответствует какой комбинации группы и столбца:
Рассмотрим группу 1, имеющую среднее значение 10 для x1 и среднее значение 10000 для x2, и группу 2, имеющую среднее значение 2000 для x1 и среднее значение 8000 для x2:
data2 <- as.data.table(list(x1 = c(runif(100, 9,11),runif(100, 1999,2001)), x2 = c(runif(100, 9999,10001),runif(100, 7999,8001)), group = rep(c(1,2), each=100)))
stat <- function(x, i) {x[i, c(m1 = mean(x1), m2 = mean(x2))]}
data2[, list(list(boot(.SD, stat, R = 10))), by = group]$V1
Который дает:
[[1]]
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = .SD, statistic = stat, R = 10)
Bootstrap Statistics :
original bias std. error
t1* 10.00907 0.007115938 0.04349184
t2* 9999.90176 -0.019569568 0.06160653
[[2]]
ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = .SD, statistic = stat, R = 10)
Bootstrap Statistics :
original bias std. error
t1* 1999.965 0.031694179 0.06561209
t2* 8000.110 -0.006569872 0.03992401
person
swihart
schedule
20.04.2016
boot
есть аргументstrata
. - person Roland   schedule 20.09.2013