Ist es möglich, AIC und BIC für Lasso-Regressionsmodelle zu berechnen?

31

Ist es möglich, AIC- oder BIC-Werte für Lasso-Regressionsmodelle und andere regulierte Modelle zu berechnen, bei denen Parameter nur teilweise in die Gleichung eingehen? Wie bestimmt man die Freiheitsgrade?

Ich verwende R, um Lasso-Regressionsmodelle mit der glmnet()Funktion aus dem glmnetPaket zu versehen, und möchte wissen, wie AIC- und BIC-Werte für ein Modell berechnet werden. Auf diese Weise kann ich die Werte mit Modellen vergleichen, die ohne Regularisierung passen. Ist das möglich zu tun?

Jota
quelle
1
Ja, Sie können dies tun, aber es wird höchstwahrscheinlich erforderlich sein, dass Sie die richtige Korrektur ableiten. Die Korrektur wird in dieser Veröffentlichung ncbi.nlm.nih.gov/pmc/articles/PMC2629611 im Zusammenhang mit der bestraften Modellierung endlicher Gemische abgeleitet, aber ein analoges Argument würde in anderen bestraften Modellen ausreichen.
Makro

Antworten:

12

Möglicherweise interessieren Sie auch die folgenden Artikel:

RJ Tibshirani und J. Taylor (2011), Freiheitsgrade bei Lasso-Problemen , arXiv Preprint: 1111.0653 .

H. Zou, T. Hastie und R. Tibshirani (2007), Zu den Freiheitsgraden des Lassos , Annals of Statistics 35 (5), 2173–2192.

Alexandra
quelle
14
Wäre schön gewesen, wenn die endgültige Antwort ein wenig erklärt worden wäre.
user4581
10

Ich hatte große Probleme damit, AIC und BIC für glmnet-Modelle zu berechnen. Nach einigem Suchen fand ich jedoch auf der dritten Seite der Google-Ergebnisse die Antwort. Es kann hier gefunden werden . Ich poste es hier für zukünftige Leser, da ich glaube, dass ich nicht der einzige sein kann.

Am Ende habe ich den AIC und den BIC folgendermaßen implementiert:

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
quelle
2

In dem Link, auf den Johnnyheineken verweist, heißt es:

Ich befürchte, dass die beiden vom glmnet-Objekt verfügbaren Größen (dev.ratio, nulldev) nicht ausreichen, um die Wahrscheinlichkeit für das Modell zu ermitteln, das Sie zur Berechnung von AICc benötigen. Sie haben zwei Gleichungen in drei Unbekannten: Wahrscheinlichkeit (null), Wahrscheinlichkeit (Modell) und Wahrscheinlichkeit (gesättigt). Ich kann die Wahrscheinlichkeit (Modell) nicht von der Wahrscheinlichkeit (Null) befreien.

Es scheint mir, dass, wenn Sie den AIC zwischen zwei Modellen vergleichen, die Tatsache, dass Sie die Nullabweichung nicht trennen können, keine Rolle spielen sollte. Da es auf beiden "Seiten" der Ungleichung existiert, würde es zeigen, welches Modell den niedrigeren AIC haben muss. Dies hängt von zwei Dingen ab:

  1. Die Daten sind in beiden Modellen gleich (ohnehin für den AIC-Vergleich notwendig)
  2. Ich vergesse weder etwas von Stat101 noch von der Algebra der High School (eine starke Vermutung angesichts meiner aktuellen Koffeinaufnahme)
naturalBlogarithmus
quelle