Estoy tratando de entender cómo funciona el AIC. Estoy utilizando los datos de este tutorial: https://www.jaredknowles.com/journal/2013/11/25/getting-started-with-mixed-effect-models-in-r
library(lme4) # load library
library(arm) # convenience functions for regression in R
lmm.data <- read.table("http://bayes.acs.unt.edu:8083/BayesContent/class/Jon/R_SC/Module9/lmm.data.txt",
header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
Al ajustar el primer modelo obtenemos este AIC:
MLexamp <- glm(extro ~ open + agree + social, data=lmm.data)
AIC(MLexamp)
[1] 8774.291
A mi entender, si añado al modelo una variable totalmente descorrelacionada, el AIC debería compensar el sobreajuste para mantenerse en la media, pero parece que corrige más que eso:
res.rand <- replicate(1000, {
lmm.data$rand.cont <- rnorm(nrow(lmm.data))
list(aic = AIC(glm(extro ~ open + agree + social + rand.cont, data=lmm.data )),
adj.r2 = summary(lm(extro ~ open + agree + social + rand.cont,
data=lmm.data))$adj.r.squared)
}, simplify=F)
mean(sapply(res.rand, "[[", "aic"))
[1] 8775.331
sd(sapply(res.rand, "[[", "aic"))
[1] 1.267697
El AIC es en promedio 1 punto más alto que en el primer modelo.
Si estimo la R cuadrada ajustada de lm
la adición de la variable no correlacionada no tiene aproximadamente ningún efecto en la media:
OLSexamp <- lm(extro ~ open + agree + social, data = lmm.data)
summary(OLSexamp)$adj.r.squared
[1] -0.001984873
mean(sapply(res.rand, "[[", "adj.r2"))
[1] -0.00202206
sd(sapply(res.rand, "[[", "adj.r2"))
[1] 0.001057333
¿Puedes averiguar qué me he perdido?