我正在使用多元线性回归。
我有z输出,这是x * y交互的结果。
我想创建这些数据的表面图,但没有任何运气。 我尝试了突击队的线框和persp,但似乎我还没能设计我的突击队员。
我创建了一个漂亮的scatterplot3d,但是如何创建相同数据的表面图?
答案 0 :(得分:4)
当你说你已经在线性回归中拟合了3D曲面时,我假设你知道你正在做什么。 persp
和wireframe
期望的是x和y值的网格,以及每个网格点的预测z高度。您可以使用expand.grid
生成此内容。这是一个指示性的例子。
preddf <- expand.grid(x=seq(xmin, xmax, len=51),
y=seq(ymin, ymax, len=51))
preddf$z <- predict(model, preddf)
persp(preddf)
将[{1}},xmin
,xmax
和ymin
替换为预测变量的范围,将51替换为所需网格的大小/密度。
答案 1 :(得分:3)
expand.grid
的另一种替代方法是使用outer
,速度更快。
使用@HongOoi数据:
z <- outer(x,y, function(x,y)
predict(mod,data.frame(x=x,y=y)))
persp(x,y,z)