In an effort to help populate the R tag here, I am posting a few questions I have often received from students. I have developed my own answers to these over the years, but perhaps there are better ways floating around that I don't know about.
The question: I just ran a regression with continuous y
and x
but factor f
(where levels(f)
produces c("level1","level2")
)
thelm <- lm(y~x*f,data=thedata)
Now I would like to plot the predicted values of y
by x
broken down by groups defined by f
. All of the plots I get are ugly and show too many lines.
My answer: Try the predict()
function.
##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")
Are there other ideas out there that are (1) easier to understand for a newcomer and/or (2) better from some other perspective?