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:

valores <- 0:5
pred <- predict(modelo, newdata = data.frame(servconj = valores))
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:

valores <- seq(0, 5, len = 100)
newdata <- data.frame(servconj = valores)
pred <- predict(modelo, newdata = newdata, interval = c("confidence"))
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)
pred2 <- predict(modelo, newdata = newdata, interval = c("prediction"))
matlines(valores, pred2[, -1], lty = 3, col = 1)
legend("topleft", c("Ajuste", "Int. confianza", "Int. predicción"), lty = c(1, 2, 3))