caret的train()训练lm模型后如何得到与原生lm()一致的输出?
解决方案
当你使用caret包的train()函数训练线性回归模型(指定method = "lm")时,输出的训练对象已经内置了标准原生lm对象,无需额外转换函数,直接提取对应字段即可。
核心操作
caret的train输出对象的$finalModel字段存储的就是原生lm类模型,直接将该字段传入检验函数即可正常运行:
# 正态性检验 ols_test_normality(Model2$finalModel) # VIF共线性检验 ols_vif_tol(Model2$finalModel) # 杜宾-沃森自相关检验 durbinWatsonTest(Model2$finalModel)
验证逻辑
你可以通过以下代码确认该字段的类和原生lm输出完全一致:
# 查看原生lm模型类 class(Model1) # 查看提取的finalModel类 class(Model2$finalModel) # 二者输出均为 "lm",符合检验函数的入参要求
内容的提问来源于stack exchange,提问作者Tim007
相关产品推荐
相关产品推荐

