在R中,您可以使用bestglm
包运行所有子集回归,并根据您指定的标准选择“最佳”模型。
可重现的例子:
require(xlsx)
require(bestglm)
lbw <- read.xls("http://www.umass.edu/statdata/statdata/data/lowbwt.xls")
## Prepare data
lbw.for.best.logistic <- within(lbw, {
id <- NULL # Delete
bwt <- NULL
race <- NULL
ptl <- NULL
ftv <- NULL
y <- low # bwt into y
low <- NULL # Delete bwt
})
## Reorder variables
lbw.for.best.logistic <-
lbw.for.best.logistic[, c("age","lwt","race.cat","smoke","preterm","ht","ui","ftv.cat","y")]
## Perform
res.best.logistic <-
bestglm(Xy = lbw.for.best.logistic,
family = binomial, # binomial family for logit
IC = "AIC", # AIC chosen to select models
method = "exhaustive")
现在,我想要做的是从最佳结果中提取回归公式,以便我可以将它传递给我函数中的另一个统计过程。
最佳模型存储在res.best.logistic$BestModel
中,但存储在该对象的str()
中的公式只是调用y~.
而不是实际选择的最佳模型。
有没有办法确定最佳模型的公式?
答案 0 :(得分:6)
尝试formula
:
formula(res.best.logistic$BestModel)