Toutes mes variables sont continues. Il n'y a pas de niveaux. Est-il possible d' avoir même une interaction entre les variables?
la source
Toutes mes variables sont continues. Il n'y a pas de niveaux. Est-il possible d' avoir même une interaction entre les variables?
Oui pourquoi pas? La même considération que pour les variables catégorielles s'appliquerait dans ce cas: l'effet de sur le résultat n'est pas le même selon la valeur de . Pour aider à le visualiser, vous pouvez penser aux valeurs prises par lorsque prend des valeurs hautes ou basses. Contrairement aux variables catégorielles, l'interaction n'est ici représentée que par le produit de et . Il est à noter qu'il vaut mieux centrer vos deux variables en premier (de sorte que le coefficient de par exemple se lise comme l'effet de lorsque est à sa moyenne d'échantillon). Y X 2 X 1 X 2 X 1 X 2 X 1 X 1 X 2
Comme l'a gentiment suggéré @whuber, un moyen simple de voir comment varie avec en fonction de lorsqu'un terme d'interaction est inclus, est d'écrire le modèle . Y X 2 E ( Y | X ) = β 0 + β 1 X 1 + β 2 X 2 + β 3 X 1 X 2
Ensuite, on peut voir que l'effet d'une augmentation d'une unité de lorsque est maintenu constant peut être exprimé comme suit:X 2
De même, l'effet lorsque est augmenté d'une unité tout en maintenant constant est . Cela démontre pourquoi il est difficile d'interpréter les effets de ( ) et ( ) isolément. Cela sera encore plus compliqué si les deux prédicteurs sont fortement corrélés. Il est également important de garder à l'esprit l'hypothèse de linéarité qui est faite dans un tel modèle linéaire.
Vous pouvez jeter un œil à Régression multiple: tester et interpréter les interactions , par Leona S. Aiken, Stephen G. West et Raymond R. Reno (Sage Publications, 1996), pour un aperçu des différents types d'effets d'interaction dans la régression multiple . (Ce n'est probablement pas le meilleur livre, mais il est disponible via Google)
Voici un exemple de jouet dans R:
library(mvtnorm)
set.seed(101)
n <- 300 # sample size
S <- matrix(c(1,.2,.8,0,.2,1,.6,0,.8,.6,1,-.2,0,0,-.2,1),
nr=4, byrow=TRUE) # cor matrix
X <- as.data.frame(rmvnorm(n, mean=rep(0, 4), sigma=S))
colnames(X) <- c("x1","x2","y","x1x2")
summary(lm(y~x1+x2+x1x2, data=X))
pairs(X)
où la sortie se lit réellement:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.01050 0.01860 -0.565 0.573
x1 0.71498 0.01999 35.758 <2e-16 ***
x2 0.43706 0.01969 22.201 <2e-16 ***
x1x2 -0.17626 0.01801 -9.789 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3206 on 296 degrees of freedom
Multiple R-squared: 0.8828, Adjusted R-squared: 0.8816
F-statistic: 743.2 on 3 and 296 DF, p-value: < 2.2e-16
Et voici à quoi ressemblent les données simulées:
Pour illustrer le deuxième commentaire de @ whuber, vous pouvez toujours regarder les variations de en fonction de à différentes valeurs de (par exemple, terciles ou déciles); les affichages en treillis sont utiles dans ce cas. Avec les données ci-dessus, nous procéderions comme suit:
library(Hmisc)
X$x1b <- cut2(X$x1, g=5) # consider 5 quantiles (60 obs. per group)
coplot(y~x2|x1b, data=X, panel = panel.smooth)
n
(11K) et j'utilise MiniTab pour faire un tracé d'interactions et il faut une éternité pour calculer mais n'affiche rien. Je ne sais pas comment je vois s'il y a interaction avec cet ensemble de données.