22 ¿Cómo obtener la matriz \(\boldsymbol{X}\) y el vector \(\boldsymbol{y}\)?
En este corto capítulo se muestra cómo crear la matriz \(\boldsymbol{X}\) y el vector \(\boldsymbol{y}\) necesario para aplicar varios modelos predictivos.
Las funciones model.matrix
, model.frame
y model.extract
son útiles para obtener la matriz \(\boldsymbol{X}\) y el vector \(\boldsymbol{y}\). A continuación se muestra un ejemplo ilustrativo.
Ejemplo
Usando la base de datos de abajo construya la matriz \(\boldsymbol{X}\) y el vector \(\boldsymbol{y}\) para crear un modelo de regresión que explique la variable Precio
del apartamento en función del Area
del apartamento y Pisci
. Tome el nivel Sin
de la variable Pisci
como nivel de referencia.
Solución
Lo primero es crear el marco de datos así:
datos <- data.frame(Precio = c(12, 15, 25, 11, 16, 7),
Area = c(3, 4, 1, 6, 5, 3),
Pisci = factor(x=c('Grande', 'Sin', 'Pequena', 'Pequena', 'Sin', 'Grande'),
levels=c('Sin','Pequena','Grande')))
datos
## Precio Area Pisci
## 1 12 3 Grande
## 2 15 4 Sin
## 3 25 1 Pequena
## 4 11 6 Pequena
## 5 16 5 Sin
## 6 7 3 Grande
Luego usamos la función model.matrix
para obtener \(\boldsymbol{X}\).
## (Intercept) Area PisciPequena PisciGrande
## 1 1 3 0 1
## 2 1 4 0 0
## 3 1 1 1 0
## 4 1 6 1 0
## 5 1 5 0 0
## 6 1 3 0 1
## attr(,"assign")
## [1] 0 1 2 2
## attr(,"contrasts")
## attr(,"contrasts")$Pisci
## [1] "contr.treatment"
Luego usamos las funciones model.frame
y model.extract
para obtener el vector \(\boldsymbol{y}\).
## 1 2 3 4 5 6
## 12 15 25 11 16 7