В смысле, построить график рассеяния (scatter plot) в координатах X1, X2, Y и нанести предсказания модели fit на него?
- это плоскость, а не прямая.
Поскольку график трёхмерный, придётся использовать Rgl. Функция
surface3d(x,y,z) строит матрицу
z на сетке
x y.
Код:
# симулируем данные
lab2 <- data.frame(X1=runif(100,1,10), X2=runif(100,10,20))
lab2$Y <- with(lab2, X1*5 + X2*10 + runif(100))
# строим модель
fit <- lm(Y~X1+X2,data=lab2)
require(rgl)
# строим scatter plot
with(lab2, plot3d(X1, X2, Y))
# готовим поверхность предсказаний
x1p <- seq(min(lab2$X1), max(lab2$X1), length.out=32)
x2p <- seq(min(lab2$X2), max(lab2$X2), length.out=32)
yp <- outer(x1p, x2p, function(x1,x2) predict(fit, data.frame(X1=x1, X2=x2)))
# строим поверхность
surface3d(x1p, x2p, yp, back="line", front="line")
Готово!