如何自动获取逐步优化回归模型的拟合汇总及系数?
解决逐步回归后获取优化模型汇总的问题
我明白你的困扰——用stepAIC做完逐步回归后,想拿到能直接查看系数汇总的优化模型,但用$call只得到公式语句,没法像手动拟合那样用summary()输出完整统计结果。其实这里有个简单直接的解决方案:
核心方法:直接使用stepAIC返回的模型对象
MASS::stepAIC()函数的返回值本身就是已经完成逐步选择和拟合的线性回归模型对象,完全不需要重新构造lm()调用。你只需要直接对它调用summary(),就能得到包含系数、显著性检验、R²等所有统计信息的完整汇总:
# 直接查看优化后模型的完整统计汇总 summary(step.model)
如果需要把这个模型赋值给一个新变量方便后续调用,直接赋值即可,不需要额外执行拟合操作:
OptiRegression <- step.model # 查看新变量对应的模型汇总 summary(OptiRegression)
为什么$call不行?
step.model$call只是存储了拟合模型时的调用语句(也就是公式部分),它是一个语言对象,不是已经拟合好的模型实例。所以直接对它用summary()肯定得不到你想要的系数汇总结果。
特殊场景:通过call重新拟合(不推荐,但可用)
如果出于某些特殊需求,你一定要通过$call来生成新的模型,可以用eval()函数执行这个调用语句,得到拟合好的模型:
OptiRegression <- eval(step.model$call) summary(OptiRegression)
不过这种方法完全是多此一举,因为step.model已经是拟合完成的模型,直接使用它更高效。
内容的提问来源于stack exchange,提问作者Mr.Spock
相关产品推荐
相关产品推荐

