Powiedzmy, że mam dane:
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)
Chcę wykreślić ciągłe przez ciągłą interakcję tak, że x1 jest na osi X, a x2 jest reprezentowany przez 3 linie, jedna reprezentująca x2 przy wyniku Z wynoszącym 0, jedna przy wyniku Z wynoszącym +1, a druga przy wyniku Z-score równy -1, z każdą linią osobnym kolorem i oznaczony. Jak mogę to zrobić za pomocą ggplot2?
Na przykład może to wyglądać mniej więcej tak (choć oczywiście z różnymi kolorowymi liniami zamiast z różnymi rodzajami linii):
r
regression
ggplot2
interaction
russellpierce
źródło
źródło
Odpowiedzi:
Oto moja wersja z symulowanym zestawem danych:
Pozwalam ci zarządzać szczegółami na temat etykiet osi x / y i pozycjonowania legend.
źródło
Obliczanie szacunków dla y z wynikiem Z wynoszącym 0 ( kolumna y0 ), -1 ( kolumna y1m ) i 1 ( kolumna y1p ):
Rysowanie linii z bazą
plot()
:Aby użyć ggplot, możesz wywołać geom_line :
źródło
predict
, ale wydaje się przydatny.