[R] Bootstrap BCa confidence limits with your own resamples

Frank Harrell f.harrell at vanderbilt.edu
Tue Mar 12 19:24:00 CET 2013


That's very helpful John.  Did you happen to run a test to make sure that
boot.ci(..., type='bca') in fact gives the BCa intervals or that they at
least disagree with percentile intervals?

Frank


John Fox wrote
> Dear Frank,
> 
> I'm not sure that it will help, but you might look at the bootSem()
> function
> in the sem package, which creates objects that inherit from "boot". Here's
> an artificial example:
> 
> ---------- snip ----------
> 
> library(sem)
> for (x in names(CNES)) CNES[[x]] <- as.numeric(CNES[[x]])
> model.cnes <- specifyModel()
> F -> MBSA2, lam1
> F -> MBSA7, lam2
> F -> MBSA8, lam3
> F -> MBSA9, lam4
> F <-> F, NA, 1
> MBSA2 <-> MBSA2, the1
> MBSA7 <-> MBSA7, the2
> MBSA8 <-> MBSA8, the3
> MBSA9 <-> MBSA9, the4
> 
> sem.cnes <- sem(model.cnes, data=CNES)
> summary(sem.cnes)
> 
> set.seed(12345) # for reproducibility
> system.time(boot.cnes <- bootSem(sem.cnes, R=5000))
> class(boot.cnes)
> boot.ci(boot.cnes)
> 
> ---------- snip ----------
> 
> I hope this helps,
>  John
> 
>> -----Original Message-----
>> From: 

> r-help-bounces@

>  [mailto:r-help-bounces at r-
>> project.org] On Behalf Of Frank Harrell
>> Sent: Tuesday, March 12, 2013 11:27 AM
>> To: 

> r-help@

>> Subject: [R] Bootstrap BCa confidence limits with your own resamples
>> 
>> I like to bootstrap regression models, saving the entire set of
>> bootstrapped
>> regression coefficients for later use so that I can get confidence
>> limits
>> for a whole set of contrasts derived from the coefficients.  I'm
>> finding
>> that ordinary bootstrap percentile confidence limits can provide poor
>> coverage for odds ratios for binary logistic models with small N.  So
>> I'm
>> exploring BCa confidence intervals.
>> 
>> Because the matrix of bootstrapped regression coefficients is generated
>> outside of the boot packages' boot() function, I need to see if it is
>> possible to compute BCa intervals using boot's boot.ci() function after
>> constructing a suitable boot object.  The function below almost works,
>> but
>> it seems to return bootstrap percentile confidence limits for BCa
>> limits.
>> The failure is probably due to my being new to BCa limits and not
>> understanding the inner workings.   Has anyone successfully done
>> something
>> similar to this?
>> 
>> Thanks very much,
>> Frank
>> 
>> bootBCa <- function(estimate, estimates, n, conf.int=0.95) {
>>   require(boot)
>>   if(!exists('.Random.seed')) runif(1)
>>   w <- list(sim= 'ordinary',
>>             stype = 'i',
>>             t0 = estimate,
>>             t  = as.matrix(estimates),
>>             R  = length(estimates),
>>             data    = 1:n,
>>             strata  = rep(1, n),
>>             weights = rep(1/n, n),
>>             seed = .Random.seed,
>>             statistic = function(...) 1e10,
>>             call = list('rigged', weights='junk'))
>>   np <- boot.ci(w, type='perc', conf=conf.int)$percent
>>   m  <- length(np)
>>   np <- np[c(m-1, m)]
>>   bca <- tryCatch(boot.ci(w, type='bca', conf=conf.int),
>>                   error=function(...) list(fail=TRUE))
>>   if(length(bca$fail) && bca$fail) {
>>     bca <- NULL
>>     warning('could not obtain BCa bootstrap confidence interval')
>>   } else {
>>     bca <- bca$bca
>>     m <- length(bca)
>>     bca <- bca[c(m-1, m)]
>>   }
>>   list(np=np, bca=bca)
>> }
>> 
>> 
>> 
>> 
>> -----
>> Frank Harrell
>> Department of Biostatistics, Vanderbilt University
>> --
>> View this message in context: http://r.789695.n4.nabble.com/Bootstrap-
>> BCa-confidence-limits-with-your-own-resamples-tp4661045.html
>> Sent from the R help mailing list archive at Nabble.com.
>> 
>> ______________________________________________
>> 

> R-help@

>  mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-
>> guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> 
> ______________________________________________

> R-help@

>  mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.





-----
Frank Harrell
Department of Biostatistics, Vanderbilt University
--
View this message in context: http://r.789695.n4.nabble.com/Bootstrap-BCa-confidence-limits-with-your-own-resamples-tp4661045p4661077.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list