[R] mcr mcreg: Why are BCa and quantile se values calculated, stored, then the stored values set to NA?

Fabian Model fabian.model at gmail.com
Mon Mar 17 16:31:01 CET 2014


This piece of code is indeed confusing. Generally quantile and BCa 
bootstrap do not estimate a global SE, so the glob.sigma slot you want to 
access is not really meaningful for those methods.
 
The result object of a BCa bootstrap as calculated by the mc.bootstrap 
function will contain a glob.sigma slot that is set to the analytical SE 
estimates of the complete data set for regression methods where analytical 
estimates of SE are available (LinReg, WLinReg, Deming). For the other 
regression methods (WDeming, PaBa) glob.sigma will already be NA. Since the 
analytical SE estimates are not relevant when you perform quantile or BCa 
bootstrap we decided at some point to always set them NA for these 
bootstrap methods - independent of regression method. The code copying the 
glob.sigma results is pointless and we'll remove it in the next release.
 
Now, if you want to calculate the mean or the sd of the individual 
bootstrap estimates, you can directly access the MCResultResampling and 
MCResultBCa objects. They store the estimates of regression coefficients 
for each bootstrap sample in slots B0 (intercept) and B1 (slope). Example:

library(mcr)
data(creatinine)
m <- mcreg(as.matrix(creatinine), method.bootstrap.ci = "quantile", na.rm = 
TRUE)
mean.slope.est<- mean(m at B1)
sd.slope.est<- sd(m at B1)
mean.intercept.est <- mean(m at B0)
sd.intercept.est <- sd(m at B1)
 
However, note that these estimates have no direct relationship to the BCa 
confidence intervals.
Best regards,
Fabian
 

On Tuesday, February 25, 2014 3:54:11 PM UTC+1, Peter Crowther wrote:

> In mcreg, there's the following snippet for bootstrap CI method of BCa 
> (and a very similar one for quantile): 
>
> else if (method.bootstrap.ci == "BCa") { 
>             bootB0 <- mc.calc.bca(Xboot = B0, Xjack = B0jack, 
>                 xhat = glob.coef[1], alpha) 
>             bootB1 <- mc.calc.bca(Xboot = B1, Xjack = B1jack, 
>                 xhat = glob.coef[2], alpha) 
>             bootB0$se <- glob.sigma[1] 
>             bootB1$se <- glob.sigma[2] 
>             bootB0$se <- NA 
>             bootB1$se <- NA 
>         } 
> [...] 
>         mc.res <- mc.make.CIframe(b0 = glob.coef[1], b1 = glob.coef[2], 
>             se.b0 = bootB0$se, se.b1 = bootB1$se, CI.b0 = bootB0$CI, 
>             CI.b1 = bootB1$CI) 
>
> I'd quite like to use in my code the SE values that were calculated in 
> mcreg.  Can any kind soul shed light on why they're calculated, 
> stored, then the stored values set to NA? 
>
> Thanks in advance for any insight! 
>
> - Peter 
> -- 
> Peter Crowther, Director, Melandra Limited 
>
> ______________________________________________ 
> R-h... at r-project.org <javascript:> 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. 
>


More information about the R-help mailing list