Für meine aktuelle Forschung verwende ich die Lasso-Methode über das glmnet-Paket in R für eine binomialabhängige Variable.
In glmnet wird das optimale Lambda durch Kreuzvalidierung ermittelt und die resultierenden Modelle können mit verschiedenen Maßnahmen verglichen werden, z. B. Fehlklassifizierungen oder Abweichungen.
Meine Frage: Wie genau ist Abweichung in glmnet definiert? Wie wird es berechnet?
(In der entsprechenden Veröffentlichung "Regularisierungspfade für verallgemeinerte lineare Modelle über Koordinatenabstieg" von Friedman et al. Findet ich nur diesen Kommentar zu der in cv.glmnet verwendeten Abweichung: "mittlere Abweichung (minus die doppelte logarithmische Wahrscheinlichkeit für die Auslassung) Daten) "(S. 17)).
glm
(oder sollte es zumindest sein - es gibt nur eine Definition von Abweichung, die mir bekannt ist).Antworten:
In Friedman, Hastie und Tibshirani (2010) wird die Abweichung eines Binomialmodells zum Zwecke der Kreuzvalidierung berechnet als
Angesichts der Tatsache, dass dies das in der Dokumentation für
glmnet
(auf S. 2 und 5) zitierte Papier ist, ist dies wahrscheinlich die im Paket verwendete Formel.Tatsächlich werden im Quellcode für die Funktion
cvlognet
die Abweichungsreste für die Antwort wie folgt berechnetwo
predmat
ist einfachund von der Einkapselungsfunktion übergeben
cv.glmnet
. Ich habe den auf der JStatSoft-Seite verfügbaren Quellcode für das Papier verwendet und weiß nicht, wie aktuell dieser Code ist. Der Code für dieses Paket ist überraschend einfach und lesbar. Sie können jederzeit selbst überprüfen, indem Sie tippenglmnet:::cv.glmnet
.quelle
Zusätzlich zu der Antwort von @shadowtalker, als ich das Paket glmnet verwendete, habe ich das Gefühl, dass die Abweichung in der Kreuzvalidierung irgendwie normalisiert ist.
Ref: Abweichung R Dokument
denn wenn ich die Teilung mache,
Das Ergebnis ist
Das ist sehr nah an der Passform $ cvm.
Dies könnte der Kommentar von @Hong Ooi zu dieser Frage sein:
/programming/43468665/poisson-deviance-glmnet
quelle