Welches ist genauer glm oder glmnet?

10

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.

Will Beauchamp
quelle
1
Sie fragen nach Leistungs- und Genauigkeitsunterschieden, wenn Lambda = 0 ist, wobei die beiden theoretisch identisch sein sollten. Ich denke, Sie sollten das in Ihre Frage aufnehmen.
smci

Antworten:

14

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)

Vermutungen
quelle
Die Verbindung scheint unterbrochen zu sein
ndoogan
Der Link funktioniert jetzt
smci
Nun, Sie erklären nur, was glmnet tut - aber das OP bezog sich auf die Situation, als Sie lambda = 0 in glmnet setzten. In diesem Fall sollte das Ergebnis im Prinzip dasselbe wie ein (nichtpenalisiertes) glm zurückgeben (abgesehen von einigen kleinen Zahlen) Unterschiede im Zusammenhang mit der in glmnet verwendeten Methode zur Anpassung des zyklischen Koordinatenabfalls.
Tom Wenseleers