Est-il possible de calculer AIC et BIC pour les modèles de régression au lasso?

31

Est-il possible de calculer les valeurs AIC ou BIC pour les modèles de régression au lasso et d'autres modèles régularisés où les paramètres n'entrent que partiellement dans l'équation. Comment détermine-t-on les degrés de liberté?

J'utilise R pour adapter les modèles de régression au lasso avec la glmnet()fonction du glmnetpackage, et j'aimerais savoir comment calculer les valeurs AIC et BIC pour un modèle. De cette façon, je pourrais comparer les valeurs avec des modèles ajustés sans régularisation. Est-ce possible?

Jota
la source
1
Oui, vous pouvez le faire, mais cela nécessitera très probablement que vous dériviez la correction appropriée. La correction est dérivée dans cet article ncbi.nlm.nih.gov/pmc/articles/PMC2629611 dans le contexte de la modélisation des mélanges finis pénalisés, mais un argument analogue suffirait dans d'autres modèles pénalisés.
Macro

Réponses:

10

Je me débattais beaucoup avec un moyen de calculer AIC et BIC pour les modèles glmnet. Cependant, après beaucoup de recherches, j'ai trouvé la réponse sur la troisième page des résultats de Google. Il peut être trouvé ici . Je le poste ici pour les futurs lecteurs car je pense que je ne peux pas être le seul.

Au final, j'ai implémenté l'AIC et le BIC de la manière suivante:

fit <- glmnet(x, y, family = "multinomial") 

tLL <- fit$nulldev - deviance(fit)
k <- fit$df
n <- fit$nobs
AICc <- -tLL+2*k+2*k*(k+1)/(n-k-1)
AICc

BIC<-log(n)*k - tLL
BIC
johnnyheineken
la source
2

Dans le lien référencé par johnnyheineken, l'auteur déclare:

Je crains que les deux quantités disponibles à partir de l'objet glmnet (dev.ratio, nulldev) ne soient pas suffisantes pour obtenir la probabilité pour le modèle, dont vous avez besoin pour calculer AICc. Vous avez deux équations dans trois inconnues: vraisemblance (nulle), vraisemblance (modèle) et vraisemblance (saturée). Je ne peux pas libérer la vraisemblance (modèle) de la vraisemblance (nulle).

Il me semble que si vous comparez l'AIC entre deux modèles, le fait que vous ne puissiez pas séparer la déviance nulle ne devrait pas avoir d'importance. Puisqu'il existe des deux côtés de l'inégalité, il montrerait quel modèle doit avoir l'AIC inférieur. Cela dépend de deux choses:

  1. Les données sont les mêmes dans les deux modèles (nécessaires pour la comparaison AIC de toute façon)
  2. Je n'oublie ni quelque chose de Stat101 ni d'algèbre de lycée (une hypothèse forte étant donné mon apport actuel en caféine)
naturalBlogarithm
la source