8.3 Predicción
Para calcular predicciones (estimaciones de la media condicionada) se puede emplear la función predict()
(ejecutar help(predict.lm)
para ver todas las opciones disponibles).
Por defecto obtiene las predicciones correspondientes a las observaciones (modelo$fitted.values
). Para otros casos hay que emplear el argumento newdata
:
- data.frame con los valores de (todas) las covariables, sus nombres deben coincidir con los originales.
Ejemplo:
<- 0:5
valores <- predict(modelo, newdata = data.frame(servconj = valores))
pred pred
## 1 2 3 4 5 6
## 21.97544 30.27548 38.57552 46.87556 55.17560 63.47564
plot(fidelida ~ servconj, datos)
lines(valores, pred)
Esta función también permite obtener intervalos de confianza y de predicción:
<- seq(0, 5, len = 100)
valores <- data.frame(servconj = valores)
newdata <- predict(modelo, newdata = newdata, interval = c("confidence"))
pred head(pred)
## fit lwr upr
## 1 21.97544 16.79816 27.15272
## 2 22.39463 17.30126 27.48800
## 3 22.81383 17.80427 27.82338
## 4 23.23302 18.30718 28.15886
## 5 23.65221 18.80999 28.49444
## 6 24.07141 19.31269 28.83013
plot(fidelida ~ servconj, datos)
matlines(valores, pred, lty = c(1, 2, 2), col = 1)
<- predict(modelo, newdata = newdata, interval = c("prediction"))
pred2 matlines(valores, pred2[, -1], lty = 3, col = 1)
legend("topleft", c("Ajuste", "Int. confianza", "Int. predicción"), lty = c(1, 2, 3))