【问题标题】:How to train a multiple linear regression model to find the best combination of variables?如何训练多元线性回归模型以找到变量的最佳组合?
【发布时间】:2019-11-11 23:33:47
【问题描述】:

我想运行一个包含大量变量的线性回归模型,并且我想要一个 R 函数来迭代这些变量的良好组合并给我最好的组合。

【问题讨论】:

    标签: r lm


    【解决方案1】:

    表征“最佳”模型有多种不同的方法,但 AIC 是一种常见的方法,base R 提供step(),而包MASS 提供stepAIC()

    summary(lm1 <- lm(Fertility ~ ., data = swiss))
    slm1 <- step(lm1)
    summary(slm1)
    slm1$anova
    

    【讨论】:

      【解决方案2】:

      glmulti package 会相当有效地做到这一点:

      自动模型选择和模型平均。为 glm 和其他功能提供包装器,自动生成具有指定响应和解释变量的所有可能模型(在用户设置的约束下),并根据某些信息标准(AIC、AICc 或 BIC)找到最佳模型。可以处理非常大量的候选模型。采用遗传算法,可在无法对候选人进行详尽筛选时找到最佳模型。

      以下是主动提供的建议:

      HOWEVER. 请注意,虽然这种方法可以找到最小化样本内误差的模型(拟合优度根据您的实际数据),它有两个主要问题,应该让您在使用它时三思而后行。

      • 这种类型的数据驱动模型选择几乎总是会破坏您做出可靠推断(计算 p 值、置信区间等)的能力。见this CrossValidated question
      • 它可能会过度拟合您的数据(尽管使用包描述中列出的信息标准会有所帮助)

      【讨论】:

        猜你喜欢
        • 2021-03-03
        • 1970-01-01
        • 1970-01-01
        • 2022-07-14
        • 2019-03-30
        • 2021-03-15
        • 1970-01-01
        • 2021-11-15
        • 2019-09-11
        相关资源
        最近更新 更多