【发布时间】:2011-11-27 03:39:47
【问题描述】:
我正在尝试使用 R 的 boot 包中的 boot.ci 从参数引导计算偏差和偏斜校正引导置信区间。通过阅读手册页和实验,我得出结论,我必须自己计算折刀估计并将它们输入boot.ci,但这在任何地方都没有明确说明。我无法找到其他文档,但公平地说,我没有看过原始的 Davison 和 Hinkley 的代码所依据的书......
如果我天真地运行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)
引导程序:
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)
有人知道这是否是我应该这样做的方式吗?
更新:boot包的原作者回复了一封电子邮件:
...你是对的,问题在于你正在做一个 参数引导。在引导中实现的 bca 间隔是 非参数区间,这应该已经说明 明确地某处。参数 bca 区间的公式 不相同并且取决于最不利的衍生物 当存在令人讨厌的参数时的家庭可能性,如您的 案子。 (参见 Davison & Hinkley 的第 206-207 页)empinf 假设 统计量是用于非参数引导的形式之一 (您在示例调用 empinf 中所做的)但您原来的 调用启动(正确)具有不同形式的统计信息 适用于参数重采样。
你当然可以做你正在做的事,但我不确定 混合参数重采样的理论性质 非参数区间估计。
【问题讨论】:
-
我可能有一个优势,因为我有这本书,而且它有一整章关于回归应用程序。但是,我不知道发布我使用
jack.after.boot的结果是否有用,因为您说您确信需要先完成折刀。