How to calculate confidence interval using the “bootstrap function” in R

前端 未结 2 719
时光取名叫无心
时光取名叫无心 2021-01-07 10:57

I am trying to calculate the confidence interval in R. Due to some special reasons, I have to do it with the functions in \"bootstrap\" package.(which means I can\'t use th

相关标签:
2条回答
  • 2021-01-07 11:18

    You could do this by hand.

    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))
    

    Gives:

    > ci1
    [1] 0.5055894 1.0268053
    

    Compared to bootstrap from the scratch:

    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))
    

    Gives:

    > ci2
    [1] 0.5065656 1.0298412
    

    Thus ci1 and ci2 seem to be similar.

    However, note: I've adapted the bootstrap to 1,000 repetitions. With just 100 repetitions the difference is naturally somewhat larger.

    Note 2: My answer considers CIs as asked. However, probably it's more appropriate to use the percentiles. See the thothal's answer how to obtain them.

    0 讨论(0)
  • 2021-01-07 11:19

    There are different ways of calculating the CI for the bootstrap estimator (cf. to this Wikipedia article for instance.

    The easiest is to tale the 2.5% and 97.5% quantiles from the bootstrapped coefficients (Percentile Bootstrap in the Wikipedia article):

    quantile(law.boot$thetastar, c(0.025, 0.975))
    #      2.5%     97.5% 
    # 0.4528745 0.9454483 
    

    Basic Bootstrap would be calculated as

    2 * mean(law.boot$thetastar) - quantile(law.boot$thetastar, c(0.975, 0.025))
    #     97.5%      2.5% 
    # 0.5567887 1.0493625
    
    0 讨论(0)
提交回复
热议问题