En un esfuerzo por ayudar a poblar la etiqueta R aquí, estoy publicando algunas preguntas que a menudo he recibido de los estudiantes. He desarrollado mis propias respuestas a lo largo de los años, pero tal vez haya formas mejores flotando que no conozco.La mejor manera de trazar los efectos de interacción de un modelo lineal
La pregunta: Me acaba de ejecutar una regresión con la continua y
y x
pero el factor f
(donde levels(f)
produce c("level1","level2")
)
thelm <- lm(y~x*f,data=thedata)
Ahora me gustaría trazar los valores predichos de y
por x
desglosado por grupos definido por f
. Todas las tramas que recibo son feas y muestran demasiadas líneas.
Mi respuesta: Pruebe la función 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")
¿Hay otras ideas por ahí que son (1) más fácil de entender para un recién llegado y/o (2) una mejor perspectiva de algún otro?
Tenga en cuenta que 'ggplot2' tiene una función' fortify.lm' que los datos del suplemento con una serie de estadísticas de ajuste modelo lineal – mnel