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ù...)

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 {}
  }
}
J'obtiens alors une sortie classique avec 3 lignes supplémentaires :

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 :

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,]
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...
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 !