微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AIC 后使用 train() 函数的 qqplot和其他诊断图

如何解决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 举报,一经查实,本站将立刻删除。