¿Qué es el criterio de información Akaike AIC?

Autor: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

El criterio de información de Akaike (AIC) o aic bic es un estimador de la calidad relativa del modelo que tiene en cuenta su complejidad.

A medida que se va aumentando el número de parámetros de entrada o de grados de un polinomio, el valor de R va a ser mejor, porque el error cuadrático medio disminuye. El criterio de información Akaike (aic metric) penaliza los modelos complejos en favor del los sencillos para evitar el sobreajuste.

¿Cómo se calcula el criterio de información Akaike?

Se calcula a partir del log-likelihood, el logaritmo del estimador de máxima verosimilitud:

criterio de información akaike

En el caso de una regresión lineal:

regresión lineal

Una vez que el modelo está entrenado, resulta que:

modelo entrenado lm

Si sustituimos en la ecuación de criterio de información akaike:

sustitución modelo

Como el valor del criterio de información Akaike realmente solo se utiliza para comparar un modelo con otro, el termino constante C se puede ignorar, porque no cambia entre los modelos.

criterio de akaike AIC

El valor P es el número de coeficientes del modelo más 1. El criterio de información Akaike suele multiplicar P por 2, pero otros valores son posibles en función de la importancia que queramos darle a los parámetros extra.

Tanto la primera como la última de las fórmulas que aparecen en las imágenes funcionan del mismo modo, es decir, el resultado de una operación hecha con una u otra no va a variar.

Cuanto más bajo sea el criterio de información Akaike, mejor.

Veamos:

// akaike info criterion
In [13] : k_val = 2
AIC (model, k = k_val)

440.181501249111

In [14] : rss <- sum ((model$residuals) ^ 2)
n <- nrow (df)

// criterios de información akaike y bayesiano
In [17] : loglik <- -n / 2 * log (2 * pi * rss / n) -n / 2

In [18] : -2 * loglik + k_val * (length (model$coefficients) + 1)

440.181501249111

Vemos que ambos resultados de distintas fórmulas terminan siendo los mismos.

// aic bic interpretation
In [19] : model$coefficients

(Intercept): 3.6456315740211 x: 5.06324797293581

In [20] : model_lin <- lm (data = df, formula = y ~ 1)
summary (model_lin)

Call:

lm (formula = y ~ 1, data = df)

Residuals:

Min: -64.14

1Q: -27.69

Median: 4.38

3Q: 24.76

Max: 65.66

Coefficients:

EstimateStd. Errort valuePr (> ltl)
(Intercept)4.4904.4531.0080.318

Residual standard error: 34.5 on 59 degrees of freedom.

En anteriores ejercicios habíamos estado usando el lm. En este caso, usamos el glm, que significa «modelo lineal generalizado», y family = gaussian. Esta fórmula es igual a:

model <- lm (data = df, formula = y ~ x)

Si se van a hacer regresiones lineales, lo mejor es usar este modelo, ya que las respuestas van a ser más rápidas y consume menos memoria, entre otros muchos beneficios.

Si usamos en la fórmula y ~ 1 en vez de y ~ 0, el intercept cambiará y, por tanto, la gráfica quedaría distinta. De modo que, si no le damos un valor a ese intercept, vamos a obtener una gráfica sin pendientes y el valor que se obtenga será la media.

In [21] : AIC (model_lin)

598.166654240199

Esto también tiene un modelo más alto, por lo que vemos que la calidad es malísima.

In [22] : rss <- sum ((model_lin$residuals) ^ 2)
n <-  nrow(df)
loglik <- - n / 2 * log (2 * pi * rss /  n) - n / 2
- 2 loglik + 2 * (length (model_lin$coefficients) + 1)

598.166654240199

In [23] : length (model_lin$coefficients)

1

¿Qué sigue?

Hemos aprendido qué es el criterio de información Akaike o AIC y cómo funciona en modelos que son lineales y que no lo son. En ambos casos se aplica la fórmula de manera distinta, dependiendo de las necesidades de información.

Si quieres seguir aprendiendo sobre este tema, puedes inscribirte en nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, con el que en muy poco tiempo podrás convertirte en un gran data scientist y conseguir el trabajo de tus sueños. ¡Anímate a solicitar más información!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado