Вы можете сделать это вручную.
library(bootstrap)
data('law')
names(law) <- tolower(names(law))
set.seed(1)
theta <- function(ind) cor(law[ind, 1], law[ind, 2], method = "pearson")
law.boot <- bootstrap(1:15, 1000, theta)
ci1 <- qnorm(p=c(.025, .975),
mean=mean(law.boot$thetastar),
sd=sd(law.boot$thetastar))
Дает:
> ci1
[1] 0.5055894 1.0268053
По сравнению с начальной загрузкой с нуля:
set.seed(1)
FX <- function(x) with(x, cor(lsat, gpa))
boot <- replicate(1000, FX(law[sample(nrow(law), round(nrow(law)),
replace=TRUE), ]))
ci2 <- qnorm(p=c(.025, .975),
mean=mean(boot),
sd=sd(boot))
Дает:
> ci2
[1] 0.5065656 1.0298412
Таким образом ci1
и ci2
кажутся похожими.
Однако, обратите внимание: Я адаптировал загрузчик для 1000 повторений.Только с 100 повторениями разница, естественно, несколько больше.
Примечание 2: В моем ответе КИ считаются заданными.Однако, вероятно, более уместно использовать процентили.См. ответ Тотала как их получить.