我正在尝试绘制3D多项式回归。我有两个自变量(面积和卧室数)和一个因变量(价格)。每个自变量都有其自己的多项式度(面积为3度多项式,卧室数为4度多项式)。
到目前为止,我只能使用“ scatterplot3d”软件包在3D中进行绘图,但无法在我的绘图中创建拟合的回归3D平面。
我的问题:我想使用拟合的回归3D平面和散点图创建3D图,应该使用哪个程序包?如果我的绘图中有适合的回归3D平面,那么代码看起来如何(如果您有一般的想法)?
谢谢您的帮助:)
注意:我正在r studio云中使用r语言。
答案 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)
如果模型中有两个以上的因变量,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)
# Reset graphical parameters back to defaults
par(old.par)