如何解决AIC 后使用 train() 函数的 qqplot和其他诊断图
我正在使用 train() 函数对 OLS 进行逐步变量选择。
在我运行模型并尝试使用 plot() 绘制 qqplot 后,它会根据最大预测变量数绘制 RMSE。
有没有办法在上面的模型之后绘制qqplot和其他诊断图?
我写的代码如下:
OLS_AIC_CV = train(Variable ~ .,data = df_train_all,method = "leapSeq",trControl = trainControl(method = "cv",number = 3),tuneGrid = data.frame(nvmax = 1:10)
)
plot(OLS_AIC_CV)
谢谢,
解决方法
您可以尝试这样的操作:从逐步选择中,选择变量的最佳子集,使用最佳子集重新拟合 lm
模型,然后从新的 lm
对象中提取 qqplot .
data("mtcars")
library(caret)
set.seed(5)
OLS_AIC_CV = train(mpg ~ .,data = mtcars,method = "leapSeq",trControl = trainControl(method = "cv",number = 3),tuneGrid = data.frame(nvmax = 1:10)
)
fit <- OLS_AIC_CV$finalModel
#extract the best subset of variable
x <- summary(fit)$which[2,-1]
new.df <- mtcars[,x]
#refit the lm model
OLS <- train(
mpg ~ .,data = new.df,method = "lm",number = 3)
)
#plot the qqplot
plot(OLS$finalModel,2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。