使用 scatter3D() 在 R 中绘制多元线性回归(包 plot3D)

Plotting a multiple linear regression in R using scatter3D() (package plot3D)

我在 csv 文件中有以下数据。

y,x1,x2,x3,x4,x5,x6,x7,x8,x9
10,2113,1985,38.9,64.7,4,868,59.7,2205,1917
11,2003,2855,38.8,61.3,3,615,55,2096,1575
11,2957,1737,40.1,60,14,914,65.6,1847,2175
13,2285,2905,41.6,45.3,-4,957,61.4,1903,2476
10,2971,1666,39.2,53.8,15,836,66.1,1457,1866
11,2309,2927,39.7,74.1,8,786,61,1848,2339
10,2528,2341,38.1,65.4,12,754,66.1,1564,2092
11,2147,2737,37,78.3,-1,761,58,1821,1909
4,1689,1414,42.1,47.6,-3,714,57,2577,2001
2,2566,1838,42.3,54.2,-1,797,58.9,2476,2254
7,2363,1480,37.3,48,19,984,67.5,1984,2217
example = data.frame(x1,x2,x3,x4,y)

如何使用 scatter3D(x,y,z) 绘制变量 x1x2x3 的图形?

我试过:

library("plot3D")
with(example,scatter3D(y ~ x1 + x2 + x3))

但是我得到错误:

Error in min(x,na.rm) : invalid 'type' (list) of argument

您似乎想要绘制回归平面。 car 包中的 scatter3d 函数可以做到这一点。您需要安装 carrgl。首先让我们让您的数据更易于访问:

dput(example)
structure(list(y = c(10L, 11L, 11L, 13L, 10L, 11L, 10L, 11L, 
4L, 2L, 7L), x1 = c(2113L, 2003L, 2957L, 2285L, 2971L, 2309L, 
2528L, 2147L, 1689L, 2566L, 2363L), x2 = c(1985L, 2855L, 1737L, 
2905L, 1666L, 2927L, 2341L, 2737L, 1414L, 1838L, 1480L), x3 = c(38.9, 
38.8, 40.1, 41.6, 39.2, 39.7, 38.1, 37, 42.1, 42.3, 37.3), x4 = c(64.7, 
61.3, 60, 45.3, 53.8, 74.1, 65.4, 78.3, 47.6, 54.2, 48), x5 = c(4L, 
3L, 14L, -4L, 15L, 8L, 12L, -1L, -3L, -1L, 19L), x6 = c(868L, 
615L, 914L, 957L, 836L, 786L, 754L, 761L, 714L, 797L, 984L), 
    x7 = c(59.7, 55, 65.6, 61.4, 66.1, 61, 66.1, 58, 57, 58.9, 
    67.5), x8 = c(2205L, 2096L, 1847L, 1903L, 1457L, 1848L, 1564L, 
    1821L, 2577L, 2476L, 1984L), x9 = c(1917L, 1575L, 2175L, 
    2476L, 1866L, 2339L, 2092L, 1909L, 2001L, 2254L, 2217L)),
    class = "data.frame", row.names = c(NA, -11L))

install.packages("car")
install.packages("rgl")
library(car)
library(rgl)
scatter3d(y~x1+x2, example)

地块window会很小。用鼠标拖动右下角使其变大。您可以在图中拖动以旋转它。