Трехмерный график рассеяния с подогнанной трехмерной плоскостью регрессии на языке R - PullRequest
1 голос
/ 12 октября 2019

Я пытаюсь построить 3D множественную полиномиальную регрессию. У меня есть две независимые переменные (площадь и количество спален) и одна зависимая переменная (цена). Каждая независимая переменная имеет свою собственную степень полинома (площадь имеет полиномиал 3 градуса, а количество спален имеет полиномиал 4 градуса).

До сих пор я мог строить только в 3D с помощью пакета "scatterplot3d", но мне не удалось создать подогнанную плоскость регрессии 3D на моем графике.

Мои вопросы: яХотите создать трехмерный график с трехмерной плоскостью и регрессией, какой пакет мне следует использовать? Как бы выглядел код, если бы на моем графике была встроенная трехмерная плоскость регрессии (если у вас есть общее представление)?

Спасибо за вашу помощь :)

Примечание: я использую язык r в облаке r studio.

1 Ответ

2 голосов
/ 12 октября 2019

Вот пример использования 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)

enter image description here

Если в модели более двух зависимых переменных, 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)

enter image description here

# Reset graphical parameters back to defaults
par(old.par)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...