Comment obtenir le critère d'Akaike avec R ? : AIC

Le critère d’Akaike (AIC) est un critère utilisé pour la sélection de modèles. Ce critère représente un compromis entre le biais diminuant avec le nombre de paramètres libres et la parcimonie, volonté de décrire les données avec le plus petit nombre de paramètres possible. Il se calcule de la façon suivante -2log-likelihood + knpar. Par défaut on a souvent k=2. Le meilleur modèle est celui qui possède l’AIC le plus faible.

On obtient ce critère en utilisant la fonction AIC(objet,k=?), k=2 par défaut. Prenons un exemple




library(MASS) #pour la fonction fitdistr
 
#  z est un vecteur contenant les données, on essaie de modéliser ces données par une distribution de weibull ou gamma
 
z<-c(14,14,14,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,23)
 
# on utilise la fonction fitdistr pour une loi Weibull, regarder ?fitdistr
 
paraw <- fitdistr(z,densfun="weibull")
loglikw<-logLik(paraw)  # on peut avoir le loglikelihood
loglikw

#on fait la même chose pour une loi gamma

parag<-fitdistr(z,densfun="gamma")
loglikg<-logLik(parag)
loglikg

#AIC avec k=2 par défaut

AIC(paraw)#environ 204
AIC(parag)#environ 209

#d'après ce critère on choisirait la loi de weibull

#on vérifie en recalculant les AIC directement

akaike<-function(npar,loglik,k){-2*loglik+k*npar}

akaike(2,loglikw[1],2)
akaike(2,loglikg[1],2)


L’AIC est un critère comme les autres, faites en bon usage et n’en n’abusez pas trop!