Wie schätze ich den Schrumpfungsparameter bei Lasso oder Kammregression mit> 50K Variablen?

36

Ich möchte Lasso oder Ridge-Regression für ein Modell mit mehr als 50.000 Variablen verwenden. Ich möchte dies mithilfe des Softwarepakets in R tun. Wie kann ich den Schrumpfungsparameter ( ) schätzen ?λ

Bearbeitungen:

Hier ist der Punkt, zu dem ich gekommen bin:

set.seed (123)
Y <- runif (1000)
Xv <- sample(c(1,0), size= 1000*1000,  replace = T)
X <- matrix(Xv, nrow = 1000, ncol = 1000)

mydf <- data.frame(Y, X)

require(MASS)
lm.ridge(Y ~ ., mydf)

plot(lm.ridge(Y ~ ., mydf,
              lambda = seq(0,0.1,0.001)))

Bildbeschreibung hier eingeben

Meine Frage lautet: Woher weiß ich, welches am besten für mein Modell ist?λ

John
quelle
3
Der Glättungsparameter ist statistisch nicht abschätzbar, wird jedoch ausgewählt, um die Anpassung außerhalb der Stichprobe zu maximieren, indem beispielsweise eine Kreuzvalidierung durchgeführt wird. Ich denke, die Standardpakete für LASSO und Ridge Regression in R haben eine integrierte Funktionalität, um dies für Sie zu tun - haben Sie das untersucht?
Makro
4
Ich bin anderer Meinung - Sie können den Glättungsparameter mithilfe eines gemischten Modellansatzes schätzen. Reml-Methoden existieren ebenso wie heirarchische Bayes-Methoden. Sie benötigen keine teure Quervalidierung.
Wahrscheinlichkeitsrechnung
1
@ probabilityislogic danke für die Informationen. Es wäre großartig, wenn es nur wenige Details im Skript gibt, wie wir dies mit reml tun können
John,
2
Für die Ridge-Regression ist die einmalige Kreuzvalidierung im Wesentlichen kostenlos (Allen's PRESS-Statistik), und ich habe festgestellt, dass dies eine einigermaßen gute Methode ist. Allerdings ist so gut wie jede Methode, die Sie verwenden, unter Umständen instabil, und ein vollständig bayesianischer Ansatz, bei dem sowohl die Parameter als auch die Regularisierungsparameter an den Rand gedrängt werden, ist wahrscheinlich eine zuverlässigere Lösung (wie Wahrscheinlichkeitsanalyse vermuten ließ). Wenn Sie Bayes'sche Methoden nicht mögen, verwenden Sie das Absacken und schätzen Sie das Lambda jedes Mal neu.
Dikran Beuteltier
2
@Macro - (nichts wie eine Antwort 18 Monate später). Beim Mixed-Model-Ansatz gibt es zwei zusätzliche Begriffe, die nur von , nicht jedoch von abhängen . Dies sind undDabei ist die Anzahl der Betas und X die Vorhersagematrix. Der erste Term kommt von wobei Fehlervarianz ist. Der zweite Term ist eine REML-Korrektur, um die Unsicherheit beim Einstecken von zu berücksichtigen . lgr ; & bgr; - k log ( & lgr; ) log | X T X + λ I | k β ~ N ( 0 , σ 2 λ - 1 ) σ 2 β = βλβklog(λ)log|XTX+λI|kβN(0,σ2λ1)σ2β=β^
Wahrscheinlichkeitslogik

Antworten:

25

Die Funktion cv.glmnetaus dem R-Paket glmnet führt eine automatische Kreuzvalidierung für ein Gitter mit Werten durch, das für -pensierte Regressionsprobleme verwendet wird. Insbesondere für das Lasso. Das glmnet-Paket unterstützt auch die allgemeinere Strafe für elastische Netze , die eine Kombination aus und . Ab Version 1.7.3. Wenn der -Parameter des Pakets gleich 0 ist, ergibt sich eine Ridge-Regression (zumindest wurde diese Funktionalität erst kürzlich dokumentiert).1 1 2 αλ112α

Die Kreuzvalidierung ist eine Schätzung des erwarteten Generalisierungsfehlers für jedes und kann sinnvoll als Minimierer dieser Schätzung gewählt werden. Die Funktion gibt zwei Werte von . Der Minimierer und der immer größere Minimierer stellen eine heuristische Wahl von , die ein weniger komplexes Modell erzeugt, für das die Leistung in Bezug auf den geschätzten erwarteten Generalisierungsfehler innerhalb eines Standardfehlers des Minimums liegt. Im glmnet-Paket sind verschiedene Auswahlmöglichkeiten für Verlustfunktionen zur Messung des Generalisierungsfehlers möglich. Das Argument gibt die Verlustfunktion an.λ λ λλλcv.glmnetλlambda.minlambda.1seλtype.measure

Alternativ enthält das R-Paket mgcv umfangreiche Schätzmöglichkeiten mit quadratischer Bestrafung einschließlich automatischer Auswahl der Strafparameter. Die implementierten Methoden umfassen, wie in einem Kommentar erwähnt, eine verallgemeinerte Kreuzvalidierung und REML. Weitere Details finden Sie im Buch des Paketautors: Wood, SN (2006) Generalized Additive Models: Eine Einführung mit R, CRC.

NRH
quelle
1
Vielleicht möchten Sie wahrscheinlich , dass hinzufügen cv.glmnetkehrt zwei Werte für , und ( „one-Standard-error“ -Regel). λlambda.minlambda.1se
Chl
@chl, danke für den Vorschlag. Ich hätte das hinzufügen sollen.
NRH
15

Diese Antwort ist MATLAB-spezifisch. Die Grundkonzepte sollten jedoch denen von R sehr ähnlich sein.

Im Fall von MATLAB haben Sie die Möglichkeit, Lasso mit aktivierter Kreuzvalidierung auszuführen.

In diesem Fall meldet die Lasso-Funktion zwei kritische Parameterwerte

  1. Der Lambda-Wert, der den kreuzvalidierten mittleren quadratischen Fehler minimiert
  2. Der Lambdawert mit der größten Schrumpfung, dessen CVMSE innerhalb eines Standardfehlers des Minimums liegt.

Sie erhalten auch ein kleines Diagramm, mit dem Sie die Beziehung zwischen Lambda und CVMSE untersuchen können

Bildbeschreibung hier eingeben

Im Allgemeinen wählen Sie einen Lambda-Wert, der zwischen der blauen und der grünen Linie liegt.

Der folgende Blogeintrag enthält einige Demo-Codes, die auf einigen Beispielen in basieren

Tibshirani, R. (1996). Regressionsschrumpfung und Selektion über das Lasso. J. Royal. Statist. Soc B., Bd. 58, Nr. 1, Seiten 267-288).

http://blogs.mathworks.com/loren/2011/11/29/subset-selection-and-regularization-part-2/

Richard Willey
quelle
10

Ich habe gute Erfolge hat effektive AIC, dass AIC mit den effektiven Freiheitsgraden - siehe Grau JASA 87: 942 1992 für eine effektive df Dies wird implementiert für Strafe in dem R - Paket für lineare und logistische Modelle und Mit dieser Funktion kann der Schrumpfungskoeffizient ermittelt werden, der den effektiven AIC optimiert. Eine Fallstudie, die zeigt, wie eine differentielle Schrumpfung (z. B. eine stärkere Schrumpfung für Wechselwirkungen) durchgeführt wird, ist Harrell et al. Stat in Med. 17: 909, 1998.L2rmsrms pentrace

Frank Harrell
quelle
Scheint eine sehr interessante Antwort zu sein, möchten Sie etwas näher darauf eingehen?
Yair Daon