【发布时间】:2020-02-02 12:54:17
【问题描述】:
感谢那些帮助我解决许多模型之前关于coefficients 和p values 的问题的人。现在,我可以从许多模型中获取所有系数、p 值和 AIC 值。
md <- "mpg ~ cyl"
xlist <- c("disp", "hp", "am")
n <- length(xlist)
comb_lst <- unlist(lapply(1:n, function(x) combn(xlist, x, simplify = F)), recursive = F)
md_lst <- lapply(comb_lst, function(x) paste(md, "+", paste(x, collapse = "+")))
coefs <- unlist(lapply(md_lst, function(x) lm(as.formula(x),data = mtcars)$coe[2]))
pvalues <- unlist(lapply(md_lst, function(x) summary(lm(as.formula(x), data = mtcars))$coe["cyl", 4]))
aic <- unlist(lapply(md_lst, function(x) AIC(lm(as.formula(x), data = mtcars))))
从上面的代码中可以看出,最后 3 行中的每一行都可以独立地拟合多个模型。这意味着代码将适合同一组模型 3 次。对于大数据和许多变量,这可能会很耗时。我的问题是如何将所有模型拟合一次,然后再拿起系数、p 值和 AIC 值。
【问题讨论】:
-
函数
leaps::regsubsets让您使用逐步向前/向后的详尽技术拟合模型 -
您不需要三次拟合模型。一次就够了。我在手机上,但您可以将要选择的变量映射到单个模型并执行一次。不是三次。
标签: r model regression coefficients