scatterplot3d for Response Surface in R

a 夏天 提交于 2019-12-01 08:16:11

问题


I want to graph response surface through scatterplot3d but the following code through an error.

library(rsm)
swiss2.lm <- lm(Fertility ~ poly(Agriculture, Education, degree = 2), data = swiss)
persp(swiss2.lm, Education ~ Agriculture, zlab = "Fertility")

library(scatterplot3d)
s3d <- 
  scatterplot3d(
      swiss
   # , type = "h"
    , highlight.3d = TRUE
    , angle = 55
    , scale.y = 0.7
    , pch = 16
     )

s3d$plane3d(swiss2.lm, lty.box = "solid")

I'd highly appreciate if you help to figure out the issue. Thanks

Eidt

Error in segments(x, z1, x + y.max * yx.f, z2 + yz.f * y.max, lty = ltya,  : 
  cannot mix zero-length and non-zero-length coordinates

I'm using swiss data from rsm library.


回答1:


How attached are you to using scatterplot3d? If you're willing to do it in rgl it's pretty easy. Following from your example:

Set up evenly spaced grid and make predictions:

newdat <- expand.grid(Education=seq(0,50,by=5),
            Agriculture=seq(0,100,by=10))
newdat$pp <- predict(swiss2.lm,newdata=newdat)

Plot points and add surface:

library(rgl)
with(swiss,plot3d(Agriculture,Education,Fertility))
with(newdat,surface3d(unique(Agriculture),unique(Education),pp,
                      alpha=0.3,front="line"))
rgl.snapshot("swiss.png")

rgl has some advantages (hidden line removal, lighting effects, dynamic rotation and zooming) and some disadvantages (doesn't fit well into base-package layouts etc.; harder to manipulate fonts, include plotmath equations, etc.; harder to adjust label placement and plot style). The scatter3d function in the car package has some nice features for adding regression surfaces to an rgl plot, but as far as I can see it does additive models, but doesn't allow for quadratic polynomial models ...

As far as I can see, in order to do this in the scatterplot3d framework you would have to construct the points corresponding to the quadrangles in the regression surface and use xyz.convert and segments to draw them ...



来源:https://stackoverflow.com/questions/13570792/scatterplot3d-for-response-surface-in-r

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!