我进行了多元线性回归。我的真实数据框包含更多的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)
答案 0 :(得分:0)
我相信您正在尝试执行以下两个回归中的任何一个。我将使用内置数据集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)