Я пытаюсь использовать пакет boot.ci
из R boot
для вычисления доверительных интервалов бутстрапа с коррекцией и перекосом от параметрического бутстрапа. Из моего чтения страниц и экспериментов с человеком я пришел к выводу, что мне приходится вычислять оценки самки и кормить их в boot.ci
, но это не указано явно нигде. Я не смог найти другую документацию, хотя, честно говоря, я не смотрел оригинальную книгу Дэвисона и Хинкли, на которой основан код...
Если я наивно запускаю b1 <- boot(...,sim="parametric")
, а затем boot.ci(b1)
, я получаю ошибку influence values cannot be found from a parametric bootstrap
. Эта ошибка возникает тогда и только тогда, когда я указываю type="all"
или type="bca"
; boot.ci(b1,type="bca")
дает ту же ошибку. Таким образом, empinf(b1)
. Единственный способ, с помощью которого я могу заставить работать, - это явно вычислить оценки джекнайфа (используя empinf()
с аргументом data
) и передать их в boot.ci
.
Построить данные:
set.seed(101)
d <- data.frame(x=1:20,y=runif(20))
m1 <- lm(y~x,data=d)
Bootstrap:
b1 <- boot(d$y,
statistic=function(yb,...) {
coef(update(m1,data=transform(d,y=yb)))
},
R=1000,
ran.gen=function(d,m) {
unlist(simulate(m))
},
mle=m1,
sim="parametric")
До сих пор.
boot.ci(b1)
boot.ci(b1,type="bca")
empinf(b1)
все дают ошибку, описанную выше.
Это работает:
L <- empinf(data=d$y,type="jack",
stype="i",
statistic=function(y,f) {
coef(update(m1,data=d[f,]))
})
boot.ci(b1,type="bca",L=L)
Кто-нибудь знает, так ли я должен это делать?
update. Оригинальный автор пакета boot
ответил на сообщение электронной почты:
... вы правы, что проблема в том, что вы делаете параметрический бутстрап. Интервалы bca, реализованные при загрузке, непараметрические интервалы, и это должно быть указано явно где-то. Формулы для параметрических интервалов bca не являются одинаковыми и зависят от производных наименее благоприятных вероятность семьи, когда есть параметры неприятности, как в вашем дело. (См. Стр. 206-207 в Дэвисоне и Хинкли). Empinf предполагает, что статистика находится в одной из форм, используемых для непараметрической начальной загрузки (который вы делали в своем примере на вызов empinf), но ваш оригинал вызов для загрузки (правильно) имел статистику в другой форме подходящий для параметрической передискретизации.
Вы, безусловно, можете делать то, что делаете, но я не уверен в теоретические свойства смешивания параметрической передискретизации с оценка непараметрического интервала.