首页 文章

使用引导包中的参数引导程序调整引导置信区间(BCa)

提问于
浏览
16

我试图使用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) 也是如此 . 我可以让事情发挥作用的唯一方法是明确计算折刀估计(使用带有 data 参数的 empinf() )并将它们输入 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)

有谁知道这是我应该这样做的方式吗?

updateboot 包的原作者回复了一封电子邮件:

...你是对的,问题是你正在做一个参数化的引导程序 . 在引导中实现的bca间隔是非参数间隔,这应该在某处明确说明 . 参数bca区间的公式不相同,并且当存在如您的情况中的有害参数时,它们取决于最不利的族可能性的导数 . (参见Davison&Hinkley的第206-207页)empinf假设统计数据是用于非参数自举的形式之一(您在示例中调用了empinf),但是您的原始调用启动(正确)具有统计数据以适合参数重采样的不同形式 . 你当然可以做你正在做的事情,但我不确定将参数重采样与非参数区间估计混合的理论特性 .

1 回答

  • 5

    在查看了boot.ci页面之后,我决定使用一个引导对象,该对象是在Davison和Hinkley的第6章中的一个例子中构建的,看它是否产生了你观察到的错误 . 我收到警告,但没有错误:

    require(boot) 
    lmcoef <- function(data, i){
          d <- data[i, ]
          d.reg <- lm(y~x, d)
          c(coef(d.reg)) }
    lmboot <- boot(d, lmcoef, R=999)
    m1
    boot.ci(lmboot, index=2)   # I am presuming that the interest is in the x-coefficient
    #----------------------------------
    BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
    Based on 999 bootstrap replicates
    
    CALL : 
    boot.ci(boot.out = lmboot, index = 2)
    
    Intervals : 
    Level      Normal              Basic         
    95%   (-0.0210,  0.0261 )   (-0.0236,  0.0245 )  
    
    Level     Percentile            BCa          
    95%   (-0.0171,  0.0309 )   (-0.0189,  0.0278 )  
    Calculations and Intervals on Original Scale
    Warning message:
    In boot.ci(lmboot, index = 2) :
      bootstrap variances needed for studentized intervals
    

相关问题