mi estudiante preguntó hoy cómo interpretar la estadística AIC (criterios de información de Akaike) para la selección de modelos. Terminamos golpeando algún código R
para demostrar cómo calcular el AIC para un GLM simple (modelo lineal general
). Siempre pienso que si puedes entender la derivación de una estadística
, Es mucho más fácil recordar cómo usarla.,
ahora si Google derivación de la AIC, es probable que se encuentre con un
muchas matemáticas. Pero los principios no son realmente tan complejos. Así que aquí vamos a encajar algunos GLMs simples, luego derivar un medio para elegir el ‘mejor’
uno.
salta al final si solo quieres repasar los principios básicos.
antes de que podamos entender la AIC, necesitamos entender la metodología estadística de probabilidades.,
Explicando las probabilidades
Dicen que usted tiene algunos datos que están distribuidos normalmente con una media de 5
y una sd de 3
:
set.seed(126)n <- 50 #sample sizea <- 5sdy <- 3y <- rnorm(n, mean = a, sd = sdy)hist(y)
Ahora queremos estimar algunos parámetros para la población que y
fue
muestreo de, al igual que su media y estándar devaiation (que conocemos aquí
5 y 3, pero en el mundo real no se sabe que).
vamos a utilizar estadísticas de frecuentistas para estimar esos parámetros.,
filosóficamente esto significa que creemos que hay ‘un valor verdadero’ para
cada parámetro, y los datos que observamos son generados por este valor verdadero
.
m1 <- glm(y ~ 1, family = "gaussian")sm1 <- summary(m1)
La estimación de la media se almacenan aquí coef(m1)
=4.38, el estimado de
la varianza aquí sm1$dispersion
= 5.91, o la SD sqrt(sm1$dispersion)
=2.43. Para ser totalmente claros, también especificamos que creemos que los datos
siguen una distribución normal (también conocida como «Gaussiana»).,
simplemente ajustamos un GLM pidiendo R para estimar un parámetro de intercepción (~1
),
Que es simplemente la media de y
. También obtenemos una estimación de la SD
(=variance \ varianza sqrt variance) podría pensar que es excesivo usar un GLM para
estimar la media y la SD, cuando podríamos calcularlos directamente.
bien aviso ahora que R también estimó algunas otras cantidades, como la desviación residual
y la estadística AIC.
También puede ser consciente de que la desviación es una medida del ajuste del modelo, al igual que las sumas de cuadrados., Tenga en cuenta también que el valor del AIC es sospechosamente cercano a la desviación. A pesar de su nombre extraño, los conceptos que subyacen a la desviación son bastante simples.
como dije anteriormente, estamos observando datos que se generan a partir de una población
con una media verdadera y una de verdadera. Dado que sabemos que tenemos estimaciones de estas cantidades que definen una distribución de probabilidad, también podríamos estimar la probabilidad de medir un nuevo valor de y
que
dice = 7.,
Para hacer esto, simplemente conecte los valores estimados en la ecuación
la distribución normal y preguntar por la probabilidad relativa de 7
. Hacemos esto con la función Rdnorm
sdest <- sqrt(sm1$dispersion)dnorm(7, mean = coef(m1), sd = sdest)## 0.09196167
formalmente, esta es la probabilidad relativa del valor 7 dados los valores
de la media y la de que estimamos (=4.8 y 2.39
respectivamente misma semilla aleatoria que yo).,
usted podría preguntar por qué la probabilidad es mayor que 1, seguramente, como viene
de una distribución de probabilidad, debería ser < 1. Bueno, la distribución normal
Es continua, lo que significa que describe un conjunto infinito de valores
possible y
, por lo que la probabilidad de cualquier valor dado será cero.
la verosimilitud relativa por otro lado se puede utilizar para calcular la probabilidad
de un rango de valores
.,
por lo que podría darse cuenta de que el cálculo de la probabilidad de todos los datos
sería una forma sensata de medir qué tan bien nuestro ‘modelo’ (solo una media y
SD aquí) se ajusta a los datos.
he Aquí lo que la probabilidad de que se ve así:
plot(y, dnorm(y, mean = coef(m1), sd = sdest), ylab = "Likelihood")
Es sólo una distribución normal.
para hacer esto, piense en cómo calcularía la probabilidad de
múltiples eventos (independientes). Digamos que la posibilidad de que me paseo en bicicleta para trabajar en
cualquier día es 3/5 y la posibilidad de que llueva es 161/365 (como
Vancouver!,), entonces la posibilidad de que voy a montar en la lluvia es 3/5 *
161/365 = alrededor de 1/4 , así que mejor usar un abrigo si se conduce en Vancouver.
Podemos hacer lo mismo para las probabilidades, simplemente multiplicar la probabilidad de
cada individuo y
valor y tenemos la probabilidad total. Esto será
un número muy pequeño, porque multiplicamos muchos números pequeños por cada
otro., Así que un truco que utilizamos es sumar el registro de las probabilidades en lugar
de multiplicarlas:
y_lik <- dnorm(y, mean = coef(m1), sd = sdest, log = TRUE)sum(y_lik)## -114.8636
cuanto mayor (menos negativa) sea la probabilidad de nuestros datos dadas las estimaciones del modelo
, ‘mejor’ el modelo se ajusta a los datos. La desviación es
calculada a partir de la probabilidad y para la desviación valores más pequeños
indican un ajuste más cercano del modelo a los datos.
los valores de parámetro que nos dan el valor más pequeño de la
-log-verosimilitud se denominan las estimaciones de máxima verosimilitud.,
comparando hipótesis alternativas con probabilidades
ahora decimos que tenemos mediciones y dos covariables, x1
y x2
, cualquiera de los cuales creemos que podría afectar a y:
a <- 5b <- 3n <- 100x1 <- rnorm(n)x2 <- rnorm(n)sdy <- 1y <- a + b*x1 + rnorm(n, sd = sdy)par(mfrow = c(1,2))plot(x1, y)plot(x2, y)
así que X1 es una causa de y, pero x2 no afecta a y. ¿cómo elegiríamos
Qué hipótesis es más probable?, Bueno, una forma sería comparar modelos
con diferentes combinaciones de covariables:
m1 <- glm(y ~ x1)m2 <- glm(y ~ x2)m3 <- glm(y ~ x1 + x2)
Ahora estamos ajustando una línea a y, por lo que nuestra estimación de la media es ahora la línea
de mejor ajuste, varía con el valor de x1. Para visualizar este:
plot(x1, y)lines(x1, predict(m1))
El predict(m1)
da la línea de mejor ajuste, es decir, el valor medio de y
dado que cada valor de x1., Luego usamos predict para obtener las probabilidades para cada modelo
:
la probabilidad de m1
es mayor que m2
, lo que tiene sentido porquem2
tiene la covariable ‘falsa’. La verosimilitud de m3
(que tiene
tanto x1 como x2 en él) es fraccionalmente mayor que la verosimilitud m1
,
entonces, ¿deberíamos juzgar que el modelo da casi la misma representación de los datos?,
debido a que la probabilidad es solo un poco mayor, la adición de x2
solo ha explicado una pequeña cantidad de la varianza en los datos. Pero donde
dibujas la línea entre incluir y excluir x2? Se encuentra con un
problema similar si utiliza r^2 para la selección del modelo.
¿y si penalizamos la probabilidad por el número de parámetros que tenemos que estimar para ajustarse al modelo? Entonces si incluimos más covariables
(y estimamos más parámetros de pendiente) solo aquellos que representan un lote
de la variación superarán la penalización.,
lo que queremos es una estadística que nos ayude a seleccionar el modelo más parsimonioso.
el AIC como medida de parsimonia
Una forma en que podríamos penalizar la verosimilitud por el número de parámetros es
para añadir una cantidad que es proporcional al número de parámetros.
Primero, multipliquemos el log-verosimilitud por -2, de modo que sea positivo
y valores más pequeños indiquen un ajuste más cercano.
LLm1 <- sum(dnorm(y, mean = predict(m1), sd = sqrt(sm1$dispersion), log = TRUE))-2*LLm1## 251.2428
¿por Qué sus -2 -1 no, yo no recuerdo bien, pero creo que sólo histórico
razones.,
luego agregue 2 * k, donde k es el número de parámetros estimados.
-2*LLm1 + 2*3## 257.2428
Para m1
hay tres parámetros, una intercepción, un pendiente y una
desviación estándar. Ahora, calculemos el AIC para los tres modelos:
vemos que el modelo 1 tiene el AIC más bajo y por lo tanto tiene el ajuste más parsimonioso. El modelo 1 ahora supera al modelo 3 que tenía una probabilidad ligeramente
más alta, pero debido a la covariable adicional también tiene una penalización
más alta.,
principios básicos de la AIC
así que para resumir, los principios básicos que guían el uso de la AIC son:
-
Lower indica un modelo más parsimonioso, en relación con un modelo de ajuste
con una AIC superior. -
es una medida relativa de la parsimonia del modelo, por lo que solo tiene
significado Si comparamos el AIC para hipótesis alternativas (= diferentes
modelos de los datos). -
podemos comparar modelos no anidados. Por ejemplo, podríamos comparar un
lineal con un modelo no lineal., -
Las comparaciones solo son válidas para modelos que se ajustan a los mismos datos de respuesta
(Es decir, valores de y). -
La selección del modelo realizada con el AIC elegirá el mismo modelo que
la validación cruzada leave-one-out (donde omitimos un punto de datos
y ajustamos el modelo, luego evaluamos su ajuste a ese punto) para tamaños de muestra grandes
. -
no deberías comparar demasiados modelos con el AIC., Se ejecutará
en los mismos problemas con la comparación de modelos múltiples como lo haría
con valores p, en el que podría por casualidad encontrar un modelo con el
AIC más bajo, que no es realmente el modelo más apropiado. -
al usar el AIC, puede terminar con varios modelos que funcionan de manera similar entre sí. Así que tienes pruebas similares
pesos para diferentes hipótesis alternativas. En el ejemplo anterior m3
Es realmente tan bueno como m1. -
debe corregir los tamaños de muestra pequeños si utiliza el AIC con
tamaños de muestra pequeños, utilizando la estadística AICc.,
asumiendo que llueve todo el día, lo cual es razonable para Vancouver.
Deja una respuesta