Leidet LASSO an den gleichen Problemen wie die schrittweise Regression?

18

Stufenweise algorithmische Variablenauswahlmethoden neigen dazu, Modelle auszuwählen, die mehr oder weniger jede Schätzung in Regressionsmodellen beeinflussen ( s und ihre SEs, p- Werte, F- Statistiken usw.), und schließen mit etwa der gleichen Wahrscheinlichkeit echte Prädiktoren aus wie schließen falsche Prädiktoren gemäß einer einigermaßen ausgereiften Simulationsliteratur ein.β

Leidet der LASSO bei der Auswahl von Variablen in gleicher Weise?

Alexis
quelle
3
Ich denke schon. Frank Harrell hat einige Posts dazu, denke ich, und es könnte relevantes Material in seinem Buch "Regressionsmodellierungsstrategien" geben.
Richard Hardy
2
@RichardHardy +1 Ich würde mich freuen, wenn FrankHarrell vorbeischauen und kommentieren oder antworten würde. :)
Alexis
5
Ich habe einen neuen Vortrag, der dies anspricht. Fazit: Lasso hat eine geringe Wahrscheinlichkeit, die "richtigen" Variablen auszuwählen. Die Folien finden Sie unter fharrell.com/talk/stratos19
Frank Harrell,
4
Im Zusammenhang mit "Fazit: Lasso hat eine geringe Wahrscheinlichkeit, die" richtigen "Variablen auszuwählen": Es gibt einen Abschnitt zum gleichen Thema in Statistisches Lernen mit Sparsity ( web.stanford.edu/~hastie/StatLearnSparsity_files/… ),11.4.1 Variable-Selection Consistency for the Lasso
Adrian
2
Ebenfalls im Zusammenhang mit "Fazit: Lasso hat eine geringe Wahrscheinlichkeit, die 'richtigen' Variablen auszuwählen": siehe statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf Fallstudien 1 und 2
Adrian,

Antworten:

3

Die Wahrscheinlichkeitsinterpretation von häufig auftretenden Ausdrücken von Wahrscheinlichkeit, p-Werten usw. für ein LASSO-Modell und die schrittweise Regression sind nicht korrekt.

Diese Ausdrücke überschätzen die Wahrscheinlichkeit. Zum Beispiel soll ein 95% -Konfidenzintervall für einen Parameter besagen, dass die Wahrscheinlichkeit, dass die Methode zu einem Intervall mit der wahren Modellvariablen innerhalb dieses Intervalls führt, bei 95% liegt.

Die angepassten Modelle ergeben sich jedoch nicht aus einer typischen Einzelhypothese. Stattdessen wird bei der schrittweisen Regression oder der LASSO-Regression eine Auswahl aus vielen möglichen alternativen Modellen getroffen.


  1. Es ist wenig sinnvoll, die Richtigkeit der Modellparameter zu bewerten (insbesondere, wenn es wahrscheinlich ist, dass das Modell nicht korrekt ist).

    In dem später erläuterten Beispiel wird das Modell an viele Regressoren angepasst und leidet unter Multikollinearität. Dies macht es wahrscheinlich, dass ein benachbarter Regressor (der stark korreliert) im Modell anstelle desjenigen ausgewählt wird, der sich wirklich im Modell befindet. Die starke Korrelation bewirkt, dass die Koeffizienten einen großen Fehler / eine große Varianz aufweisen (bezogen auf die Matrix ).(XTX)1

    Diese hohe Varianz aufgrund von Multikollionearität wird jedoch in der Diagnostik wie p-Werten oder Standardfehlern von Koeffizienten nicht "gesehen", da diese auf einer kleineren Entwurfsmatrix mit weniger Regressoren basieren . (und es gibt keine einfache Methode , um diese Art von Statistiken für LASSO zu berechnen)X

    Beispiel: Die folgende Grafik zeigt die Ergebnisse eines Spielzeugmodells für ein Signal, das eine lineare Summe von 10 Gaußschen Kurven ist (dies kann beispielsweise einer Analyse in der Chemie ähneln, bei der ein Signal für ein Spektrum als eine lineare Summe von betrachtet wird) mehrere Komponenten). Das Signal der 10 Kurven wird mit einem Modell von 100 Komponenten (Gaußkurven mit unterschiedlichem Mittelwert) unter Verwendung von LASSO angepasst. Das Signal ist gut geschätzt (vergleichen Sie die rote und schwarze Kurve, die ziemlich nah sind). Die tatsächlich zugrunde liegenden Koeffizienten sind jedoch nicht gut geschätzt und können völlig falsch sein (vergleichen Sie die roten und schwarzen Balken mit Punkten, die nicht gleich sind). Siehe auch die letzten 10 Koeffizienten:

                  91     91     92     93     94     95     96     97     98     99     100
     true model   0      0      0      0      0      0      0      142.8  0      0      0
     fitted       0      0      0      0      0      0      129.7  6.9    0      0      0
    

    Das LASSO-Modell wählt Koeffizienten aus, die sehr ungefähr sind, aber aus der Perspektive der Koeffizienten selbst bedeutet es einen großen Fehler, wenn ein Koeffizient, der nicht Null sein sollte, auf Null geschätzt wird und ein benachbarter Koeffizient, der Null sein sollte, auf Null geschätzt wird nicht Null. Etwaige Konfidenzintervalle für die Koeffizienten wären wenig sinnvoll.

    LASSO passend

    Beispiel lasso / glmnet

    Schrittweise Anpassung

    Zum Vergleich kann dieselbe Kurve mit einem schrittweisen Algorithmus angepasst werden, der zum folgenden Bild führt. (mit ähnlichen Problemen, dass die Koeffizienten nahe beieinander liegen, aber nicht übereinstimmen)

    Beispiel nnls

  2. Auch wenn Sie die Genauigkeit der Kurve berücksichtigen (und nicht die Parameter, die im vorherigen Punkt klargestellt wurden, dass sie keinen Sinn ergeben), müssen Sie sich mit Überanpassung befassen. Wenn Sie mit LASSO ein Anpassungsverfahren durchführen, verwenden Sie Trainingsdaten (um die Modelle mit unterschiedlichen Parametern anzupassen) und Test- / Validierungsdaten (um den besten Parameter abzustimmen / zu finden). Sie sollten jedoch auch einen dritten separaten Satz verwenden von Test- / Validierungsdaten, um die Leistung der Daten herauszufinden.

    Ein p-Wert oder ähnliches funktioniert nicht, weil Sie an einem optimierten Modell arbeiten, das sich von der normalen linearen Anpassungsmethode unterscheidet (viel größere Freiheitsgrade).


leiden unter den gleichen Problemen schrittweise Regression tut?

Sie scheinen sich auf Probleme wie Verzerrungen bei Werten wie , p-Werten, F-Scores oder Standardfehlern zu beziehen . Ich glaube, dass LASSO nicht verwendet wird, um diese Probleme zu lösen .R2

Ich dachte, dass der Hauptgrund für die Verwendung von LASSO anstelle einer schrittweisen Regression darin besteht, dass LASSO eine weniger gierige Parameterauswahl ermöglicht, die weniger von Multikollinarität beeinflusst wird. (Weitere Unterschiede zwischen LASSO und schrittweise: Überlegenheit von LASSO gegenüber Vorwärtsauswahl / Rückwärtseliminierung in Bezug auf den Kreuzvalidierungs-Vorhersagefehler des Modells )


Code für das Beispielbild

# settings
library(glmnet)
n <- 10^2        # number of regressors/vectors
m <- 2         # multiplier for number of datapoints
nel <- 10        # number of elements in the model
set.seed(1)   
sig <- 4
t <- seq(0,n,length.out=m*n)

# vectors
X <- sapply(1:n, FUN <- function(x) dnorm(t,x,sig))

# some random function with nel elements, with Poisson noise added
par <- sample(1:n,nel)
coef <- rep(0,n)
coef[par] <- rnorm(nel,10,5)^2
Y <- rpois(n*m,X %*% coef)

# LASSO cross validation
fit <- cv.glmnet(X,Y, lower.limits=0, intercept=FALSE, 
                 alpha=1, nfolds=5, lambda=exp(seq(-4,4,0.1)))
plot(fit$lambda, fit$cvm,log="xy")
plot(fit)
Yfit <- (X %*% coef(fit)[-1])

# non negative least squares 
# (uses a stepwise algorithm or should be equivalent to stepwise)
fit2<-nnls(X,Y)


# plotting
par(mgp=c(0.3,0.0,0), mar=c(2,4.1,0.2,2.1))
layout(matrix(1:2,2),heights=c(1,0.55))


plot(t,Y,pch=21,col=rgb(0,0,0,0.3),bg=rgb(0,0,0,0.3),cex=0.7,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",bty="n")      
#lines(t,Yfit,col=2,lwd=2)                        # fitted mean
lines(t,X %*% coef,lwd=2)                        # true mean
lines(t,X %*% coef(fit2), col=3,lwd=2)           # 2nd fit

  # add coefficients in the plot
for (i in 1:n) {
  if (coef[i] > 0) {
    lines(c(i,i),c(0,coef[i])*dnorm(0,0,sig))
    points(i,coef[i]*dnorm(0,0,sig), pch=21, col=1,bg="white",cex=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(c(i,i),c(0,coef(fit)[i+1])*dnorm(0,0,sig),col=2)
#    points(i,coef(fit)[i+1]*dnorm(0,0,sig), pch=21, col=2,bg="white",cex=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(c(i,i),c(0,coef(fit2)[i+1])*dnorm(0,0,sig),col=3)
    points(i,coef(fit2)[i+1]*dnorm(0,0,sig), pch=21, col=3,bg="white",cex=1)
  }

}

#Arrows(85,23,85-6,23+10,-0.2,col=1,cex=0.5,arr.length=0.1)
#Arrows(86.5,33,86.5-6,33+10,-0.2,col=2,cex=0.5,arr.length=0.1)
#text(85-6,23+10,"true coefficient", pos=2, cex=0.7,col=1)
#text(86.5-6,33+10, "fitted coefficient", pos=2, cex=0.7,col=2)

text(0,50, "signal versus position\n true mean (black), fitted with nnls (green)", cex=1,col=1,pos=4, font=2)



plot(-100,-100,pch=21,col=1,bg="white",cex=0.7,type="l",lwd=2,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",
     ylim=c(0,max(coef(fit)))*dnorm(0,0,sig),xlim=c(0,n),bty="n") 
#lines(t,X %*% coef,lwd=2,col=2)      

for (i in 1:n) {
  if (coef[i] > 0) {
    lines(t,X[,i]*coef[i],lty=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(t,X[,i]*coef(fit)[i+1],col=2,lty=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(t,X[,i]*coef(fit2)[i+1],col=3,lty=1)
  }

}

text(0,33, "illustration of seperate components/curves", cex=1,col=1,pos=4, font=2)
Sextus Empiricus
quelle
+1 Danke Martjin Wterings. Können Sie den Graphen etwas verstärken? Was ist auf den Achsen dargestellt, welche Farbe steht für usw.?
Alexis
Tatsächlich handelt es sich bei der Grafik nicht um LASSO. Es ist jedoch ein Beispiel dafür, wie ein Modell eine Summe mehrerer Komponenten sein kann, beispielsweise eine Gauß-Kurve (bei der die Kurven mit einem leicht unterschiedlichen Mittelwert stark korreliert sind), und eine Verschiebung des Mittelwerts dieser Komponenten bedeutet eine große Änderung des Koeffizienten aber nicht so sehr für die Kurve.
Sextus Empiricus
1
Die Balken sind die Werte der Koeffizienten für das wahre und das angepasste Modell. Dies ist das Bild, für das ich mich an dieses Prinzip erinnere. Ich werde selbst ein Beispiel machen, das es vielleicht deutlicher zeigt (ich vermute, dass LASSO, da es weniger gierig ist, bei der Darstellung der wahren Koeffizienten eine etwas bessere Leistung erbringt).
Sextus Empiricus
0

Ich habe einen neuen Vortrag, der dies anspricht. Fazit: Lasso hat eine geringe Wahrscheinlichkeit, die "richtigen" Variablen auszuwählen. Die Folien finden Sie unter http://fharrell.com/talk/stratos19

- Frank Harrell

Im Zusammenhang mit "Fazit: Lasso hat eine geringe Wahrscheinlichkeit, die" richtigen "Variablen auszuwählen": Es gibt einen Abschnitt zum gleichen Thema in Statistical Learning with Sparsity ( https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1). 4.16.pdf ), 11.4.1 Variable-Selection Consistency for the Lasso

- Adrian

Auch im Zusammenhang mit "Fazit: Lasso hat eine geringe Wahrscheinlichkeit, die 'richtigen' Variablen auszuwählen": siehe https://statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf Fallstudien 1 und 2

- Adrian

mkt - Setzen Sie Monica wieder ein
quelle
1
Ich habe diese Kommentare als Community-Wiki-Antwort kopiert, da sie mehr oder weniger Antworten auf diese Frage sind. Wir haben eine dramatische Kluft zwischen Antworten und Fragen. Zumindest besteht ein Teil des Problems darin, dass einige Fragen in Kommentaren beantwortet werden: Wenn Kommentare, die die Frage beantworteten, Antworten wären, hätten wir weniger unbeantwortete Fragen.
mkt - Setzen Sie Monica
1
Hierbei handelt es sich um Kommentare, die nach den Standards des Lebenslaufs auch insgesamt keine Antwort liefern (z. B. sind Links keine Antworten). Außerdem: Ich bin nicht einverstanden, eine richtig gestellte Frage in ein Community-Wiki zu stellen, weil Sie mit der Rate, mit der Fragen beantwortet werden, nicht zufrieden sind.
Alexis
1
Außerdem: Ich bin über Community-Wiki und Community-Wiki-Antworten unterrichtet worden und habe meine Meinungsverschiedenheit dort zurückgenommen (obwohl ich immer noch nicht denke, dass dies eine Antwort ist :).
Alexis
1
@Alexis Fair genug - Ich dachte, es wäre eine Grauzone, hätte dies aber möglicherweise falsch eingeschätzt.
mkt - Setzen Sie Monica
1
Wir lernen alle. :)
Alexis