我有流行病学数据。我正在尝试绘制回归图:
y = 76.450438 + 0.047259*x_1 + 0.882275*x_2
我使用我的数据分析发现了这种回归。我尝试使用 plot3d、planes3d、plotly 和许多其他命令来绘制这个平面(这是一个平面,对吗?是的,我确保没有关于库或其他语法的错误。我处于 RStudio 接受输入的点,但 3D 图是空的,没有框,没有点,只有字母 x y 和 z 在稀薄的空气中。
另外,是否可以在同一 3D 图中将一个回归平面叠加在另一个回归平面上?如果可能的话,我想在同一图中比较两个回归模型。是否也可以将回归平面叠加在数据的散点图上?
任何建议都非常感谢。谢谢。
EpiSimulationRelevant$age <- x
EpiSimulationRelevant$totchol <- y
EpiSimulationRelevant$sysbp <- z
fit <- lm(z ~ x + y)
coefs <- coef(fit)
a <- coefs["x"]
b <- coefs["y"]
c <- -1
d <- coefs["(Intercept)"]
与标准基础图形不同,plot3D 或 rgl 中的绘图功能不将函数作为输入,因此您必须自己创建点,然后绘制具体结果。
即这有效:
x1 <- runif( 1000 )
x2 <- runif( 1000 )
f <- function( x1, x2 ) { 76.450438 + 0.047259 * x1 + 0.882275 * x2 }
m <- cbind( x1, x2, f( x1, x2 ) )
rgl::plot3d( m )
编辑:由于您使用 lm 函数创建了回归,因此该函数的结果是一个模型对象,该对象具有自己的通用绘图方法。你应该玩弄这些,看看其中一些是否符合你的需求。你试过简单地做plot( fit )
吗?