Disons que j'ai des données:
x1 <- rnorm(100,2,10)
x2 <- rnorm(100,2,10)
y <- x1+x2+x1*x2+rnorm(100,1,2)
dat <- data.frame(y=y,x1=x1,x2=x2)
res <- lm(y~x1*x2,data=dat)
summary(res)
Je veux tracer l'interaction continue par continue de telle sorte que x1 soit sur l'axe X et x2 soit représenté par 3 lignes, une qui représente x2 à un score Z de 0, une à un score Z de +1 et une autre à un Score Z de -1, avec chaque ligne une couleur distincte et étiquetée. Comment puis-je faire cela en utilisant ggplot2?
Par exemple, cela pourrait ressembler à quelque chose comme ça (bien sûr avec des lignes de couleurs différentes plutôt que des types de lignes différents):
r
regression
ggplot2
interaction
russellpierce
la source
la source
Réponses:
Voici ma version avec votre jeu de données simulé:
Je vous laisse gérer les détails sur les étiquettes des axes x / y et le positionnement des légendes.
la source
Calcul des estimations pour y avec un score Z de 0 ( colonne y0 ), -1 ( colonne y1m ) et 1 ( colonne y1p ):
Tracer les lignes avec la base
plot()
:Pour utiliser ggplot, vous pouvez appeler geom_line :
la source
predict
, mais semble utile.