【问题标题】:Extract the formula for stepwise optimized regression model提取逐步优化回归模型的公式
【发布时间】:2019-09-18 00:41:20
【问题描述】:

我执行了多元线性回归。我的真实数据框包含更多的 x 值。

Regression <- lm(df1$y ~ df2$x1 + df2$x2 + df2$x3 + df2$x4 + df2$x5 + df2$x6)

StepRegression=step(Regression,direction="both")

#Or with the MASS package
library(MASS)
step.model <- stepAIC(Regression, direction = "both", trace = FALSE)
step.model

我现在的问题是,如何自动获取优化模型?我厌倦了这个:

library(MASS)
OptiRegression = step.model$call

但这只会给我这个:

lm(formula =df1$y ~ df2$x1 + df2$x3 + df2$x5)

summary(test)
Length  Class   Mode 
     2   call   call 

但我想获得更新模型的摘要,例如当我输入时得到的系数:

OptiRegression = lm(df1$y ~ df2$x1 + df2$x3 + df2$x5)
summary (OptiRegression)

【问题讨论】:

  • 查看str(step.model$terms)
  • 谢谢,那是 $formula 吗?但是我该如何使用它呢? step.model$formula 不起作用。
  • 我也读到过关于 $anova 的文章,但我仍然无法让它工作。
  • 我不明白,什么不起作用? stepstepAIC 函数已经返回更新的模型。你不必做你正在做的事情OptiRegression。不管怎样,看我的回答。

标签: r model regression linear-regression


【解决方案1】:

我相信您正在尝试执行以下两种回归中的任何一种。我将使用内置数据集mtcars,因为您还没有发布。

library(MASS)

Regression <- lm(mpg ~ ., data = mtcars)

StepRegression <- step(Regression, direction = "both")

OptiReg1 <-StepRegression$terms
fit1 <- lm(OptiReg1, data = mtcars)

如您所见,两个摘要是相等的,只是公式发生了变化。

summary(StepRegression)
summary(fit1)

或者使用MASS 包,函数stepAIC

step.model <- stepAIC(Regression, direction = "both", trace = FALSE)

OptiReg2 <- step.model$terms
fit2 <- lm(OptiReg2, mtcars)

现在,这两个总结在实践中是相等的,只是公式发生了变化。它发生了变化,因为在fit2 中传递的是OptiReg

summary(step.model)
summary(fit2)

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2021-12-08
    • 2021-12-08
    • 2021-05-05
    相关资源
    最近更新 更多