`scatterplot3d`: невозможно добавить плоскость регрессии к 3D точечной диаграмме

#r #plot #regression #linear-regression #lm

#r #график #регрессия #линейная регрессия #lm

Вопрос:

Я создал 3D-диаграмму рассеяния в R и хочу добавить плоскость регрессии. Я просмотрел код из 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)
  

введите описание изображения здесь

Ответ №1:

Я не могу воспроизвести проблему в следующем воспроизводимом примере:

 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)
  

введите описание изображения здесь

Вам следует избегать $ в формуле модели. Вместо этого используйте data аргумент:

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

Ответ №2:

Ваша z-переменная (зависимая переменная) на точечном графике — Try$Radio, тогда как в регрессионной модели зависимой переменной является Try$Visits, и это вызывает путаницу. 3- я переменная в аргументе точечной диаграммы обрабатывается как зависимая переменная R.