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.")