我必须在 MASS 的“birthwt”数据集上引导逻辑回归模型。但是,当我运行引导程序代码时,出现以下错误
eval(predvars, data, env) 中的错误:未找到对象“low”
我不明白为什么会收到此错误,因为“low”是模型中的变量名称之一。
为什么我会收到此错误?如有任何反馈,我们将不胜感激!
data(birthwt, package = "MASS")
data <- as.data.frame(birthwt)
# converting predictor variable into factor
data$low <- as.factor(data$low)
pmod <- glm(low ~ . - bwt - age - ftv, data = data, family = binomial)
boot_results <- car::Boot(pmod, R = 100)
我只使用过
boot:boot
函数进行引导,但是查看 car::Boot
的帮助页面,它指出:
“此函数为
包中的boot
函数提供了一个简单的前端,该函数专为基于回归模型的引导而定制......”boot
我熟悉
boot
包 - 所以使用 boot::boot
的漫长方法是首先定义用于引导的逻辑回归,然后引导该函数:
boot_logreg <- function(my_data, indices) {
coef(glm(low ~ . - bwt - age - ftv, data = my_data[indices, ], family = binomial))
}
set.seed(123) # Seed for reproducibility, not required
boot_results <- boot::boot(data, boot_logreg, R = 1000)
# ORDINARY NONPARAMETRIC BOOTSTRAP
#
# Call:
# boot::boot(data = data, statistic = boot_logreg, R = 1000)
# Bootstrap Statistics :
# original bias std. error
# t1* -0.80364418 0.070440226 1.238398503
# t2* -0.01294747 -0.001190249 0.008038214
# t3* 0.46913122 0.012766086 0.228166001
# t4* 0.94817154 0.021266241 0.426519541
# t5* 0.49145146 0.050717609 0.450790533
# t6* 1.83315979 0.198129583 1.311930532
# t7* 0.74793544 0.027657403 0.559801377