具有R语言的拟合回归3D平面的3D散点图

时间:2019-10-11 21:44:31

标签: r

我正在尝试绘制3D多项式回归。我有两个自变量(面积和卧室数)和一个因变量(价格)。每个自变量都有其自己的多项式度(面积为3度多项式,卧室数为4度多项式)。

到目前为止,我只能使用“ scatterplot3d”软件包在3D中进行绘图,但无法在我的绘图中创建拟合的回归3D平面。

我的问题:我想使用拟合的回归3D平面和散点图创建3D图,应该使用哪个程序包?如果我的绘图中有适合的回归3D平面,那么代码看起来如何(如果您有一般的想法)?

谢谢您的帮助:)

注意:我正在r studio云中使用r语言。

1 个答案:

答案 0 :(得分:2)

下面是一个使用plotPlane包中的rockchalk的示例,该示例在“幕后”使用了persp函数,但简化了绘图操作的细节。请参阅plotPlane(类型为?plotPlane)的帮助,以详细了解该函数的工作方式以及自定义绘图的各种选项。

library(rockchalk)

m1 = lm(mpg ~ poly(wt,2) + disp, data=mtcars)

old.par = par(mfrow=c(1,2), mar=c(1,1,1,1))

plotPlane(m1, "wt", "disp", pch=16, col=rgb(0,0,1,0.1), drawArrows=TRUE, alength=0, 
          acol="red", alty=1,alwd=1, theta=25, phi=0)
plotPlane(m1, "wt", "disp", pch=16, col=rgb(0,0,1,0.1), drawArrows=TRUE, alength=0, 
          acol="red", alty=1,alwd=1, theta=35, phi=20)

enter image description here

如果模型中有两个以上的因变量,plotPlane会将其他变量(未绘制的变量)设置为其平均值(对于数字变量)或众数(对于因子)。例如:

m2 = lm(mpg ~ poly(wt,2) + disp + poly(hp,2) + poly(wt,2), data=mtcars)

plotPlane(m2, "wt", "disp", pch=16, col=rgb(0,0,1,0.1), drawArrows=TRUE, alength=0, 
          acol="red", alty=1,alwd=1, theta=25, phi=0)
plotPlane(m2, "wt", "disp", pch=16, col=rgb(0,0,1,0.1), drawArrows=TRUE, alength=0, 
          acol="red", alty=1,alwd=1, theta=35, phi=20)

enter image description here

# Reset graphical parameters back to defaults
par(old.par)