John Williams <jwilliams at business.otago.ac.nz> writes:
I'm a bit embarrassed to ask this, but can anyone tell me (or point me
to a reference) on how to plot a regression plane in R?
I have a regression model with two independent variables and have
created a nice 3d scatterplot with scatterplot3d (thanks Uwe!) and now
would like to overlay the regression plane (gridded, preferably.) Ay
pointers would be appreciated.
Doesn't look like something to be embarrassed about... (Uwe, you might
want to add this to one of the examples).
As far as I can see the key would be to use the points3d() function
returned by scatterplot3d(). Something like:
model <- lm(....)
s <- scatterplot3d(....)
for (x in seq(...)) {
line.x <- rep(x,2)
line.y <- c(ymin, ymax)
line.z <- predict(model, new = data.frame(x=line.x, y=line.y)
s$points3d(line.x, line.y, line.z, type="l", lty="dotted")
}
for (y in seq(....)) {
...
}
Alternatively, you might generate the endpoints for a segments() call
by first producing the coordinates in 3d using predict and then
convert them with s$xyz.convert(). That'd be
d1<-rbind(data.frame(x=xmin,y=seq(...)), data.frame(x=seq(...),y=ymin)
d2<-rbind(data.frame(x=xmax,y=seq(...)), data.frame(x=seq(...),y=ymax)
p1 <- predict(model, new=d1)
p2 <- predict(model, new=d2)
line.begin <- s$xyz.convert(d1$x,d1$y,p1)
line.end <- s$xyz.convert(d2$x,d2$y,p2)
segments(line.begin$x,line.begin$y,line.end$x,line.end$y, lty="dotted")
[As you may have gathered, none of this is actually tested...]
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._