Comment calculer l’AIC dans R (y compris des exemples)



Le critère d’information d’Akaike (AIC) est une métrique utilisée pour comparer l’ajustement de plusieurs modèles de régression.

Il est calculé comme suit :

AIC = 2K – 2 ln (L)

où:

  • K : Le nombre de paramètres du modèle. La valeur par défaut de K est 2, donc un modèle avec une seule variable prédictive aura une valeur K de 2+1 = 3.
  • ln (L) : La log-vraisemblance du modèle. La plupart des logiciels statistiques peuvent calculer automatiquement cette valeur pour vous.

L’AIC est conçu pour trouver le modèle qui explique le plus de variation dans les données, tout en pénalisant les modèles qui utilisent un nombre excessif de paramètres.

Une fois que vous avez ajusté plusieurs modèles de régression, vous pouvez comparer la valeur AIC de chaque modèle. Plus l’AIC est bas, plus le modèle est adapté.

Pour calculer l’AIC de plusieurs modèles de régression dans R, nous pouvons utiliser la fonction aictab() du package AICcmodavg .

L’exemple suivant montre comment utiliser cette fonction pour calculer et interpréter l’AIC pour divers modèles de régression dans R.

Exemple : calculer et interpréter l’AIC dans R

Supposons que nous souhaitions ajuster trois modèles de régression linéaire multiple différents en utilisant des variables de l’ensemble de données mtcars .

Voici les variables prédictives que nous utiliserons dans chaque modèle :

  • Variables prédictives dans le modèle 1 : disp, hp, wt, qsec
  • Variables prédictives dans le modèle 2 : disp, qsec
  • Variables prédictives dans le modèle 3 : disp, wt

Le code suivant montre comment adapter chacun de ces modèles de régression :

#fit three models
model1 <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
model2 <- lm(mpg ~ disp + qsec, data = mtcars)
model3 <- lm(mpg ~ disp + wt, data = mtcars)

Ensuite, nous allons mettre les modèles dans une liste et utiliser la fonction aictab() pour calculer l’AIC de chaque modèle :

library(AICcmodavg)

#define list of models
models <- list(model1, model2, model3)

#specify model names
mod.names <- c('disp.hp.wt.qsec', 'disp.qsec', 'disp.wt')

#calculate AIC of each model
aictab(cand.set = models, modnames = mod.names)

Model selection based on AICc:

                K   AICc Delta_AICc AICcWt Cum.Wt     LL
disp.hp.wt.qsec 6 162.43       0.00   0.83   0.83 -73.53
disp.wt         4 165.65       3.22   0.17   1.00 -78.08
disp.qsec       4 173.32      10.89   0.00   1.00 -81.92

Voici comment interpréter le résultat :

  • K : Le nombre de paramètres dans le modèle.
  • AICc : la valeur AIC du modèle. Le « c » minuscule indique que l’AIC a été calculé à partir de l’AIC corrigé pour les petits échantillons.
  • Delta_AICc : la différence entre l’AIC du meilleur modèle et celui du modèle actuel comparé.
  • AICcWt : proportion de la puissance prédictive totale pouvant être trouvée dans le modèle.
  • Cum.Wt : La somme cumulée des poids AIC.
  • LL : La log-vraisemblance du modèle. Cela nous indique la probabilité du modèle, compte tenu des données que nous avons utilisées.

Le modèle avec la valeur AIC la plus basse est toujours répertorié en premier. À partir du résultat, nous pouvons voir que le modèle suivant a la valeur AIC la plus basse et est donc le modèle le mieux adapté :

mpg = β 0 + β 1 (disp) + β 2 (hp) + β 3 (poids) + β 4 (qsec)

Une fois que nous avons identifié ce modèle comme étant le meilleur, nous pouvons procéder à l’ajustement du modèle et analyser les résultats, y compris la valeur R au carré et les coefficients bêta, pour déterminer la relation exacte entre l’ensemble de variables prédictives et la variable de réponse .

Ressources additionnelles

Comment effectuer une régression linéaire simple dans R
Comment effectuer une régression linéaire multiple dans R
Comment calculer le R-carré ajusté en R
Comment calculer le Cp de Mallows dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *