R中线性回归的bootstrap标准误差



我有一个lm对象,我只想引导它的标准错误。在实践中,我希望在每次复制时只使用部分样本(带替换(,并获得标准错误的分布。然后,如果可能的话,我想显示原始线性回归的摘要,但带有自举的标准误差和相应的p值(换句话说,相同的贝塔系数但不同的标准误差(。

编辑:总之,我想"修改"我的lm对象,使其具有与我在原始数据上运行的原始lm对象相同的贝塔系数,但具有通过在不同子样本上多次计算该lm回归而获得的自举标准误差(以及相关的t状态和p值((带替换(。

所以我的lm对象看起来像

Coefficients:
Estimate Std. Error t value Pr(>|t|)    
(Intercept)                      3.812793   0.095282  40.016  < 2e-16 ***
x                                -0.904729   0.284243  -3.183  0.00147 ** 
z                                0.599258   0.009593  62.466  < 2e-16 ***
x*z                              0.091511   0.029704   3.081  0.00208 ** 

但相关的标准误差是错误的,我想通过在不同的子样本上复制这种线性回归1000次(复制(来估计它们(带替换(。

有办法做到这一点吗?有人能帮我吗?

谢谢你抽出时间。Marco

您的要求可以按照下面的代码行完成
由于您没有发布示例数据集,也没有发布适合的模型,我将使用内置数据集mtcars,这是一个具有两个连续预测因子的简单公式。

library(boot)
boot_function <- function(data, indices, formula){
d <- data[indices, ]
obj <- lm(formula, d)
coefs <- summary(obj)$coefficients
coefs[, "Std. Error"]
}
set.seed(8527)
fmla <- as.formula("mpg ~ hp * cyl")
seboot <- boot(mtcars, boot_function, R = 1000, formula = fmla)
colMeans(seboot$t)
##[1] 6.511530646 0.068694001 1.000101450 0.008804784

我相信,使用上面的代码可以满足大多数具有数字响应和预测因子的需求。

最新更新