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
Merci pour toute aide pour compléter ce code ou en proposer un autre.
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)
Partager