Aby pomóc wypełnić tutaj tag R, publikuję kilka pytań, które często otrzymywałem od studentów. Na przestrzeni lat rozwinąłem na nie swoje własne odpowiedzi, ale być może są lepsze sposoby na poruszanie się, o których nie wiem.Najlepszy sposób na wykreślenie efektów interakcji z liniowego modelu
Pytanie: Właśnie prowadził regresji z ciągłym y
i x
ale czynnik f
(gdzie levels(f)
produkuje c("level1","level2")
)
thelm <- lm(y~x*f,data=thedata)
teraz chciałbym wykreślić przewidywanych wartości y
przez x
podziale na grupy zdefiniowane przez f
. Wszystkie wątki, które otrzymuję, są brzydkie i pokazują zbyt wiele linii.
Moja odpowiedź: wypróbuj funkcję predict()
.
##restrict prediction to the valid data
##from the model by using thelm$model rather than thedata
thedata$yhat <- predict(thelm,
newdata=expand.grid(x=range(thelm$model$x),
f=levels(thelm$model$f)))
plot(yhat~x,data=thethedata,subset=f=="level1")
lines(yhat~x,data=thedata,subset=f=="level2")
Czy są jakieś inne pomysły, które obecnie nie są (1) łatwiejsze do zrozumienia dla początkującego i/lub (2) lepsza od innej perspektywy?
Zauważ, że 'ggplot2' ma funkcję' fortyfikacja.lm', która uzupełnia dane o szereg statystyk dopasowania modelu liniowego – mnel