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)