Untuk menjalankan banyak regresi linear, kita akan menggunakan kembali fungsi Im(). Kita akan memprediksikan harga rumah dari varabel “medv” sebagai variable response, yang berdasar pada variable explanatory “crim”, “zn”, “indus”, “rm”, “age”, ’dis”, “tax”, dan “rad”.
library(rgl)
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
library(scatterplot3d)
library(FactoClass)
## Loading required package: ade4
## Loading required package: ggrepel
## Loading required package: xtable
library(MASS)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
Boston2 <- Boston[1:50,]
fit3 <- lm(medv ~ rm +age, data=Boston2)
sp <- scatterplot3d::scatterplot3d(Boston2$rm,
Boston2$age,
Boston2$medv,
angle = 45)
sp$plane3d(fit3, lty.box = "solid")#,
# polygon_args = list(col = rgb(.1, .2, .7, .5)) # Fill color
orig <- sp$xyz.convert(Boston2$rm,
Boston2$age,
Boston2$medv)
plane <- sp$xyz.convert(Boston2$rm,
Boston2$age, fitted(fit3))
i.negpos <- 1 + (resid(fit3) > 0)
segments(orig$x, orig$y, plane$x, plane$y,
col = c("blue", "red")[i.negpos],
lty = 1) # (2:1)[i.negpos]
sp <- FactoClass::addgrids3d(Boston2$rm,
Boston2$age,
Boston2$medv,
angle = 45,
grid = c("xy", "xz", "yz"))