`scatterplot3d`:无法将回归平面添加到三维散点图中

时间:2016-10-19 17:49:08

标签: r plot regression linear-regression lm

我在R中创建了一个3D散点图,并希望添加一个回归平面。我查看了statmethods.net网站上的代码,这些代码非常有用,而且很有用。然后我用我自己的数据试了一下,飞机没出现。

library(scatterplot3d)
s3d <- scatterplot3d(Try$Visits, Try$Net.Spend, Try$Radio, pch=16, highlight.3d = TRUE, type = "h", main = "3D Scatterplot")
fit <- lm(Try$Visits ~ Try$Net.Spend +Try$Radio)
s3d$plane3d(fit)

enter image description here

2 个答案:

答案 0 :(得分:2)

我无法通过以下可重现的示例重现该问题:

set.seed(0)
x <- runif(20)
y <- runif(20)
z <- 0.1 + 0.3 * x + 0.5 * y + rnorm(20, sd = 0.1)
dat <- data.frame(x, y, z)
rm(x,y,z)

fit <- lm(z ~ x + y, data = dat)
library(scatterplot3d)
s3d <- scatterplot3d(dat$x, dat$y, dat$z, pch=16, highlight.3d = TRUE, type = "h", main = "3D Scatterplot")
s3d$plane3d(fit)

enter image description here

您应避免在模型公式中使用$。请改用data参数:

fit <- lm(Visits ~ Net.Spend + Radio, data = Try)

答案 1 :(得分:0)

您在散点图中的z变量(因变量)为Try $ Radio,而在回归模型中,因变量为Try $ Visits,这引起了混乱。散点图参数中的第三个变量被视为因变量R。