Bonjour,

je souhaite tester un modèle de régression multiple sur un jeu de données test. Pour cela j'utilise la fonction "predict". Le modèle a été créé en utilisant la fonction "regsubsets" de la librairie "leaps". Cette fonction permet de faire le choix du meilleur modèle sur la base de différentes métriques tel que: r², adjusted-r², BIC...la création du modèle se base sur trois méthodes, la méthode ascendante (forward), descendante (backward) et la méthode exhaustive.

Mais pour le test du modèle, la fonction "predict" n'est pas compatible avec le résultat de la fonction "regsubsets" d'après un message d'erreur.

Ci-après un code reproductible

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
n<-100
d<-data.frame (y=runif(n), x1=(runif(n))*0.5, x2=(runif(n))*0.25, x3=(runif (n))*3.2,
               x4=(runif(n))*4.35, x5=(runif(n))*2.2)
set.seed(123)
smp_size <- floor(0.75 * nrow(d))
train_ind <- sample(seq_len(nrow(d)), size = smp_size)
 
train <- d[train_ind, ]
test <- d[-train_ind, ]
 
regfit.full=regsubsets(y~.,train,nvmax=5)
reg.summaryfull<-summary (regfit.full)
names(summary(regfit.full))
summary(regfit.full)$rsq
summary(regfit.full)$obj
summary(regfit.full)$adjr2
which.max (reg.summaryfull$rsq)
 
library(Metrics)
#le souci se situe à ce niveau
predictedfor_multlm<-predict(regfit.full, test) 
rmse_mult<-rmse(test$y,predictedfor_multlm)
rmse_mult
rmse_mult/mean(test$y)
reg<-lm(test$y~predictedfor_multlm)
summary(reg)
Merci pour toute aide pour compléter ce code ou en proposer un autre.