繁体   English   中英

R:用于固定设计回归的自举BCa置信区间

[英]R: Bootstrap BCa confidence intervals for fixed design regression

我有一个固定的设计回归问题,我试图使用R来获取引导程序的BCa置信区间。这是一个示例(使用lmRob),但这仅用于说明:

require(robust)
data(stack.dat)
stack.rob <- lmRob(Loss ~ ., data = stack.dat)

summary(stack.rob)

Call:
lmRob(formula = Loss ~ ., data = stack.dat)

Residuals:
    Min      1Q  Median      3Q     Max 
-8.6299 -0.6713  0.3594  1.1507  8.1740 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -37.65246    5.00256  -7.527 8.29e-07 ***
Air.Flow      0.79769    0.07129  11.189 2.91e-09 ***
Water.Temp    0.57734    0.17546   3.291  0.00432 ** 
Acid.Conc.   -0.06706    0.06512  -1.030  0.31757    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.837 on 17 degrees of freedom
Multiple R-Squared: 0.6205 

Test for Bias:
            statistic p-value
M-estimate      2.751  0.6004
LS-estimate     2.640  0.6197

R中有boot和bootstrap包(以及此处给出的代码,但是它们都派生了非参数的Bootstrap BCa置信区间。但这是固定设计的回归设置。因此,我想知道是否存在R可用于引导BCa置信区间固定设计回归的软件,使用lm的R包或类似产品的示例也可以。

谢谢!

我相信我有一个答案,是根据2002年R Journal的示例进行的修改。

require(boot)
require(robust)
data(stackloss)

stack.rob <- lmRob(stack.loss ~ ., data = stackloss)

lmRob.coef <- function(data, y, pred) {
    mod <- lmRob(formula = as.formula(eval(paste(y,"~", paste(pred,collapse="+")))) , data = data,  control = lmRob.control(mxr = 1000, mxf = 1000, mxs = 1000))
    coef(mod)
}

lmRob.results <- function(data, y, pred) {
    mod <- lmRob(formula = as.formula(eval(paste(y,"~", paste(pred,collapse="+")))) , data = data)
    data.frame(fitted = fitted(mod), residuals = resid(mod))
}

fit.dat <- lmRob.results(data = stackloss, y = "stack.loss", pred = c("Air.Flow", "Water.Temp", "Acid.Conc."))

model.fun <- function(data, i, y, pred, fitted.results) {
    dat <- cbind(data, fitted.results)
    dat[, y] <- dat$fitted + dat$residuals[i]
    lmRob.coef(data = dat, y = y, pred = pred)
}

lmRob.boot <- boot(data = stackloss, statistic = model.fun, R = 999, y = "stack.loss", pred = c("Air.Flow", "Water.Temp", "Acid.Conc."), fitted.results = fit.dat)

boot.ci(boot.out=lmRob.boot, type="bca", index=4)

BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 999 bootstrap replicates

CALL : 
boot.ci(boot.out = lmRob.boot, type = "bca", index = 4)

Intervals : 
Level       BCa          
95%   (-0.2644,  0.2963 )  
Calculations and Intervals on Original Scale

下一个目标是在模型中包括不同案例的权重。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM