【发布时间】:2019-11-11 23:33:47
【问题描述】:
我想运行一个包含大量变量的线性回归模型,并且我想要一个 R 函数来迭代这些变量的良好组合并给我最好的组合。
【问题讨论】:
我想运行一个包含大量变量的线性回归模型,并且我想要一个 R 函数来迭代这些变量的良好组合并给我最好的组合。
【问题讨论】:
表征“最佳”模型有多种不同的方法,但 AIC 是一种常见的方法,base R 提供step(),而包MASS 提供stepAIC()。
summary(lm1 <- lm(Fertility ~ ., data = swiss))
slm1 <- step(lm1)
summary(slm1)
slm1$anova
【讨论】:
glmulti package 会相当有效地做到这一点:
自动模型选择和模型平均。为 glm 和其他功能提供包装器,自动生成具有指定响应和解释变量的所有可能模型(在用户设置的约束下),并根据某些信息标准(AIC、AICc 或 BIC)找到最佳模型。可以处理非常大量的候选模型。采用遗传算法,可在无法对候选人进行详尽筛选时找到最佳模型。
以下是主动提供的建议:
HOWEVER. 请注意,虽然这种方法可以找到最小化样本内误差的模型(拟合优度根据您的实际数据),它有两个主要问题,应该让您在使用它时三思而后行。
【讨论】: