library(AER)
library(MASS)
data(Boston)
full_mod <- lm(medv ~., data = Boston)
# encuentre el modelo que se ajuste mejor a los datos que full_mod
# esta solución es un poco técnica pero eficiente
# bucle de estimación de modelos
l <- list()
for (i in 1:13) {
d <- Boston[, -i]
# guardar cada R^2 ajustada como una entrada de lista en l
l[[i]] <- summary(lm(medv ~., data=d))$adj.r.squared
}
# asignar nombres de variables a las entradas de la lista
names(l) <- names(Boston[, 1:13])
# seleccionar la variable cuya omisión conduce a la mayor mejora en la R^2 ajustada
which.max(l) # 7th column this is "age"
# por lo tanto, un modelo que se ajusta mejor a los datos es
better_model <- lm(medv ~., data = Boston[, -7])
test_object("better_model")
success_msg("Correcto. Observe que este modelo se ajusta mejor a los datos que el modelo completo y lo hace mejor que todos los demás modelos que incluyen 12 del conjunto disponible de 13 regresores, en términos del R^2 ajustado. Sin embargo, se debe tener en cuenta que el aumento en la R^2 ajustada es muy pequeño y ese modelo no es el mejor de todos los modelos imaginables.")