R glm und glmnet verwenden unterschiedliche Algorithmen.
Ich bemerke nicht triviale Unterschiede zwischen den geschätzten Koeffizienten, wenn ich beide verwende.
Ich bin daran interessiert, wann eines genauer ist als das andere und wann die Zeit zum Lösen / zur Genauigkeit abgewogen wird.
Insbesondere beziehe ich mich auf den Fall, in dem man in glmnet st Lambda = 0 setzt und das Gleiche wie glm schätzt.
r
generalized-linear-model
glmnet
Will Beauchamp
quelle
quelle
Antworten:
Glmnet ist für die elastische Netzregression. Dies bestraft die Größe der geschätzten Koeffizienten (über eine Mischung aus L1- und L2-Strafen). Es wird versucht, so viel Varianz in den Daten wie möglich durch das Modell zu erklären, während die Modellkoeffizienten klein gehalten werden. Ich fand diese Folien hilfreich, um es zu verstehen.
Glm verwendet keinen Strafbegriff.
Der Effekt, wie ich es verstehe, dass Sie mit dem elastischen Netz möglicherweise eine gewisse Verzerrung akzeptieren, um die Varianz des Schätzers zu verringern. Welches also das Beste ist, muss davon abhängen, wie Sie das Beste in Bezug auf Voreingenommenheit und Varianz definieren. (ZB weiß ich, dass glmnet Vorteile hat, wenn Sie im Vergleich zu Beobachtungen viele Funktionen haben)
quelle