Bonjour à tous,
Je recherche une solution pour estimer et tester tous les termes d'interaction dans un modèle de régression linéaire et/ou logistique.
En effet, je pourrais tester les effets un à un mais quand on a beaucoup de variables, il y a beaucoup trop de termes d'interactions possibles, et je pense qu'il y a une solution bien plus rapide.
En admettant que je souhaite tester les 8 premières variables de mon data frame, j'ai deux pistes :
-> une boucle (mais celles-ci ne me sont pas encore très familières, j'ai donc forcément commis une erreur mais je ne sais pas où...)
J'obtiens alors une sortie classique avec 3 lignes supplémentaires :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 for ( i in c(1:8)) { for (j in c(1:8)){ if (i !=j){ modele<-lm(data$X~data$a+data$b+data$c+data$d+data$e+data$f+data$g+data$h+data[,i]*data[,j]) drop<-drop1(modele,.~.,test="F") } else {} } }
data[, i] NA NA NA NA
data[, j] NA NA NA NA
data[, i]:data[, j] -1.223e-04 9.214e-05 -1.328 0.185295
-> une méthode lue :
La sortie ici est pas mal, je pense être sur la bonne voie mais (malheureusement) rien n'est significatif et cela ne correspond pas avec le résultat attendu compte tenu de mes données...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 modele<- lm (data$X~data$a+data$b+data$c+data$d+data$e+data$f+data$g+data$h) modele.inter<-data.frame(add1(modele,~.^2, test="Chisq")) isort<- order(M.inter["Pr..Chi."]) modele.inter[isort,]
Dois-je récupérer une partie des interactions avec, par exemple, p<0,20 et les mettre dans mon modèle ?
Ou me conseillez-vous plutôt une méthode pas à pas malgré sa longueur ?
Merci par avance pour votre aide !
Partager