Interpretation der variablen LASSO-Trace-Plots


15

Ich bin neu im glmnetPaket und bin mir noch nicht sicher, wie ich die Ergebnisse interpretieren soll. Könnte mir bitte jemand beim Lesen des folgenden Traceplots helfen?

Das Diagramm wurde erhalten, indem Folgendes ausgeführt wurde:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

Bildbeschreibung hier eingeben

Antworten:


20

In beiden Diagrammen stellt jede farbige Linie den Wert dar, der von einem anderen Koeffizienten in Ihrem Modell verwendet wird. Lambda ist die Gewichtung des Regularisierungsterms (die L1-Norm). Wenn sich Lambda Null nähert, nähert sich die Verlustfunktion Ihres Modells der OLS-Verlustfunktion. Hier ist eine Möglichkeit, wie Sie die LASSO-Verlustfunktion angeben können, um dies zu konkretisieren:

βlasso=argmin [RSS(β)+λL1-Norm(β)]

Wenn Lambda sehr klein ist, sollte die LASSO-Lösung daher sehr nahe an der OLS-Lösung liegen, und alle Ihre Koeffizienten sind im Modell enthalten. Mit zunehmendem Lambda hat der Regularisierungsterm eine größere Auswirkung und Sie sehen weniger Variablen in Ihrem Modell (da immer mehr Koeffizienten den Wert Null haben).

Wie oben erwähnt, ist die L1-Norm der Regularisierungsbegriff für LASSO. Vielleicht ist es besser, wenn die x-Achse der maximal zulässige Wert ist, den die L1-Norm annehmen kann . Wenn Sie also eine kleine L1-Norm haben, haben Sie viel Regularisierung. Daher ergibt eine L1-Norm von Null ein leeres Modell. Wenn Sie die L1-Norm erhöhen, werden Variablen in das Modell "eingetragen", da ihre Koeffizienten Werte ungleich Null annehmen.

Die Grafik links und die Grafik rechts zeigen im Grunde genommen dasselbe, nur in verschiedenen Maßstäben.


2
Sehr nette Antwort, danke! Kann man aus den obigen Grafiken die "besten Prädiktoren" ableiten, dh ein endgültiges Modell?
Mayou

4
Nein, dafür müssen Sie eine Kreuzvalidierung oder ein anderes Validierungsverfahren durchführen. Hier erfahren Sie, welcher Wert der L1-Norm (oder gleichwertig welches log (Lambda)) das Modell mit der besten Vorhersagemöglichkeit ergibt.
JAW

11
Wenn Sie versuchen, Ihre stärksten Prädiktoren zu bestimmen, können Sie die Darstellung als Beweis dafür interpretieren, dass Variablen, die früh in das Modell eingehen, am aussagekräftigsten sind und Variablen, die später in das Modell eingehen, weniger wichtig sind. Wenn Sie das "beste Modell" suchen, wird dies in der Regel über eine Kreuzvalidierung ermittelt. Eine übliche Methode, um dies mit dem glmnet-Paket zu erreichen, wurde Ihnen hier vorgeschlagen: stats.stackexchange.com/a/68350/8451 . Ich empfehle dringend , das kurze Lasso-Kapitel in ESLII (3.4.2 und 3.4.3) zu lesen, das kostenlos heruntergeladen werden kann: www-stat.stanford.edu/~tibs/ElemStatLearn
David Marx

@ David Marx, worauf beziehen sich die Zahlen oben in der Handlung? wie man das beste Modell durch Kreuzvalidierung auswählt.
Jeza

@DavidMarx ist schon eine Weile her, aber für alle anderen, die sich das fragen, ist das die Anzahl der Koeffizienten bei dieser Gewichtung, die nicht den Wert Null haben.
Ian Belcher
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.