Was ist das kleinste

14

β^λ=argminβRp12nyXβ22+λβ1,
ithxiRpXRn×pyii=1,n

Wir wissen, dass für die Lassoschätzung . (Siehe zum Beispiel den Bereich der Lasso und Ridge-Tuning-Parameter .) In einer anderen Notation drückt dies aus, dass . Beachten Sie, dassWir können dies visuell anhand der folgenden Abbildung sehen, in der der Weg der Lasso-Lösung dargestellt ist: & bgr; & lgr;=0λ1nXTyβ^λ=0λmax=1nXTyλmax=supβ^λ0λ.

Lasso-Lösungsweg

Beachten Sie, dass auf der weit rechten Seite des Plots, alle Koeffizienten sind Null. Dies geschieht an dem oben beschriebenen Punkt .λmax

Von diesem Grundstück, bemerken wir auch , dass auf der weit linken Seite, die alle den Koeffizienten ungleich Null sind: Was ist der Wert von , bei dem jede Komponente von ist zunächst Null? Das heißt, was ist als Funktion von und ? Ich interessiere mich für eine geschlossene Lösung. Insbesondere bin ich nicht an einer algorithmischen Lösung interessiert, wie zum Beispiel dem Vorschlag, dass LARS den Knoten durch Berechnung finden könnte.λβ^λ

λmin=minjs.t.β^j=0λ
Xy

Trotz meiner Interessen scheint es, dass möglicherweise nicht in geschlossener Form verfügbar ist, da Lasso-Berechnungspakete dies sonst wahrscheinlich zur Ermittlung der Optimierungsparametertiefe während der Kreuzvalidierung ausnutzen würden. Vor diesem Hintergrund interessiere ich mich für alles, was theoretisch über und (noch) besonders für eine geschlossene Form.λminλmin

user795305
quelle
Dies wird im glmnet-Papier angegeben und bewiesen: web.stanford.edu/~hastie/Papers/glmnet.pdf
Matthew Drury
@MatthewDrury Danke, dass du das geteilt hast! Dieses Papier scheint jedoch nicht das zu teilen, was Sie anscheinend vorschlagen. insbesondere, dass mein ihr . λ minλmaxλmin
user795305
Sind Sie sicher, dass wir das Tag [tuning-parameter] benötigen?
Amöbe sagt Reinstate Monica
1
Wenn Sie ein Recht haben, existiert ein geschlossenes Formular für die Lasso-Lösung im Allgemeinen nicht (siehe stats.stackexchange.com/questions/174003/… ). Zumindest sagt Ihnen LARS jedoch, was los ist und unter welchen genauen Bedingungen / zu welchem ​​Zeitpunkt Sie eine Variable hinzufügen / löschen können. Ich denke, so etwas ist das Beste, was man bekommen kann.
chRrr
1
@chRrr Ich bin nicht sicher , dass die völlig fair zu sagen: Wir wissen , dass & bgr; & lgr; = 0 für & lgr; & ge ; 1β^λ=0. Das heißt, im Extremfall, dass die Lösung 0 ist, haben wir eine geschlossene Form. Ich frage, ob dies im Extremfall der dichten Lasso-Schätzung (dh ohne Nullen) der Fall ist. Tatsächlich bin ich nicht einmal in den genauen Einträgen interessierten & bgr; & lgr;--- nurob sie Nulloder nicht. λ1nXtyβ^λ
user795305

Antworten:

15

Die in der Frage beschriebene Lasso-Schätzung ist das Lagrange-Multiplikator-Äquivalent des folgenden Optimierungsproblems:

minimize f(β) subject to g(β)t

f(β)=12n||yXβ||22g(β)=||β||1

Diese Optimierung hat eine geometrische Darstellung des Auffindens des Kontaktpunkts zwischen einer mehrdimensionalen Kugel und einem Polytop (aufgespannt durch die Vektoren von X). Die Oberfläche des Polytops repräsentiert g(β) . Das Quadrat des Kugelradius repräsentiert die Funktion f(β) und wird bei Kontakt der Oberflächen minimiert.

Die folgenden Bilder bieten eine grafische Erklärung. Die Bilder verwendeten das folgende einfache Problem mit Vektoren der Länge 3 (der Einfachheit halber, um eine Zeichnung machen zu können):

[y1y2y3]=[1.41.840.32]=β1[0.80.60]+β2[00.60.8]+β3[0.60.640.48]+[ϵ1ϵ2ϵ3]
und wir minimiereϵ12+ϵ22+ϵ32 mit der Bedingungabs(β1)+abs(β2)+abs(β3)t

Die Bilder zeigen:

  • Die rote Fläche zeigt die Abhängigkeit, ein von X überspanntes Polytop.
  • Und die grüne Fläche zeigt die minimierte Fläche, eine Kugel.
  • Die blaue Linie zeigt den Lassopfad, die Lösungen, die wir finden, wenn wir t oder λ ändern .
  • Die Grün - Vektor zeigt die OLS Lösung y (die als gewählt β 1 = β 2 = β 3 = 1 oder y = x 1 + x 2 + x 3 .y^β1=β2=β3=1y^=x1+x2+x3
  • Die drei schwarzen Vektoren sind x1=(0.8,0.6,0) , x2=(0,0.6,0.8) und x3=(0.6,0.64,0.48) .

Wir zeigen drei Bilder:

  1. Im ersten Bild berührt nur ein Punkt des Polytops die Kugel . Dieses Bild zeigt sehr gut, warum die Lasso-Lösung nicht nur ein Vielfaches der OLS-Lösung ist. Die Richtung der OLS-Lösung addiert sich stärker zur Summe |β|1 . In diesem Fall ist nur ein einzelnes βi ungleich Null.
  2. Im zweiten Bild berührt ein Kamm des Polytops die Kugel (in höheren Dimensionen erhalten wir höherdimensionale Analoga). In diesem Fall sind mehrere βi ungleich Null.
  3. Im dritten Bild berührt eine Facette des Polytops die Kugel . In diesem Fall sind alle βi ungleich Null .

Der Bereich von t oder λ für den wir den ersten und dritten Fall haben, kann aufgrund ihrer einfachen geometrischen Darstellung leicht berechnet werden.

Fall 1: Nur ein einzelnes βi ungleich Null

Die Nicht-Null - βi ist diejenige , für die die zugehörigen Vektor xi mit dem höchsten Absolutwert der Kovarianz hat y^ ist der Punkt des parrallelotope der am nächsten zu der OLS - Lösung). Wir können den Lagrange-Multiplikator λmax unter dem wir mindestens ein β ungleich Null haben, berechnen, indem wir die Ableitung mit ±βi (das Vorzeichen hängt davon ab, ob wir das βi in negativer oder positiver Richtung erhöhen ):

(12n||yXβ||22λ||β||1)±βi=0

was dazu führt

λmax=(12n(||yXβ||22±βi)(||β||1)±βi)=±(12n||yXβ||22βi=±1nxiy

das entspricht der ||XTy|| in den Kommentaren erwähnt.

wo wir bemerken sollten, dass dies nur für den speziellen Fall gilt, in dem die Spitze des Polytops die Kugel berührt ( dies ist also keine allgemeine Lösung , obwohl die Verallgemeinerung einfach ist).

Fall 3: Alle βi sind nicht Null.

In diesem Fall berührt eine Facette des Polytops die Kugel. Dann ist die Änderungsrichtung des Lasso-Pfades normal zur Oberfläche der jeweiligen Facette.

The polytope has many facets, with positive and negative contributions of the xi. In the case of the last lasso step, when the lasso solution is close to the ols solution, then the contributions of the xi must be defined by the sign of the OLS solution. The normal of the facet can be defined by taking the gradient of the function ||β(r)||1, the value of the sum of beta at the point r, which is:

n=r(||β(r)||1)=r(sign(β^)(XTX)1XTr)=sign(β^)(XTX)1XT

and the equivalent change of beta for this direction is:

βlast=(XTX)1Xn=(XTX)1XT[sign(β^)(XTX)1XT]

which after some algebraic tricks with shifting the transposes (ATBT=[BA]T) and distribution of brackets becomes

βlast=(XTX)1sign(β^)

we normalize this direction:

βlast,normalized=βlastβlastsign(β^)

To find the λmin below which all coefficients are non-zero. We only have to calculate back from the OLS solution back to the point where one of the coefficients is zero,

d=min(β^βlast,normalized)with the condition that β^βlast,normalized>0

,and at this point we evaluate the derivative (as before when we calculate λmax). We use that for a quadratic function we have q(x)=2q(1)x:

λmin=dn||Xβlast,normalized||22

Images

a point of the polytope is touching the sphere, a single βi is non-zero:

first step of lasso path

a ridge (or differen in multiple dimensions) of the polytope is touching the sphere, many βi are non-zero:

middle of lasso path

a facet of the polytope is touching the sphere, all βi are non-zero:

final step of lasso path

Code example:

library(lars)    
data(diabetes)
y <- diabetes$y - mean(diabetes$y)
x <- diabetes$x

# models
lmc <- coef(lm(y~0+x))
modl <- lars(diabetes$x, diabetes$y, type="lasso")

# matrix equation
d_x <- matrix(rep(x[,1],9),length(x[,1])) %*% diag(sign(lmc[-c(1)]/lmc[1]))
x_c = x[,-1]-d_x
y_c = -x[,1]

# solving equation
cof <- coefficients(lm(y_c~0+x_c))
cof <- c(1-sum(cof*sign(lmc[-c(1)]/lmc[1])),cof)

# alternatively the last direction of change in coefficients is found by:
solve(t(x) %*% x) %*% sign(lmc)

# solution by lars package
cof_m <-(coefficients(modl)[13,]-coefficients(modl)[12,])

# last step
dist <- x %*% (cof/sum(cof*sign(lmc[])))
#dist_m <- x %*% (cof_m/sum(cof_m*sign(lmc[]))) #for comparison

# calculate back to zero
shrinking_set <- which(-lmc[]/cof>0)  #only the positive values
step_last <- min((-lmc/cof)[shrinking_set])

d_err_d_beta <- step_last*sum(dist^2)

# compare
modl[4] #all computed lambda
d_err_d_beta  # lambda last change
max(t(x) %*% y) # lambda first change
enter code here

note: those last three lines are the most important

> modl[4]            # all computed lambda by algorithm
$lambda
 [1] 949.435260 889.315991 452.900969 316.074053 130.130851  88.782430  68.965221  19.981255   5.477473   5.089179
[11]   2.182250   1.310435

> d_err_d_beta       # lambda last change by calculating only last step
    xhdl 
1.310435 
> max(t(x) %*% y)    # lambda first change by max(x^T y)
[1] 949.4353

Written by StackExchangeStrike

Sextus Empiricus
quelle
Thanks for including the edits! So far in my reading, I'm stuck just past the "case 1" subsection. The result for λmax derived there is wrong since it doesn't include an absolute value or a maximum. We know further that there's a mistake since in the derivation, there's a sign mistake, a place where differentiability is wrongly assumed, an "arbitrary choice" of i to differentiate with respect to, and an incorrectly evaluated derivative. To be frank, there isn't one "=" sign that's valid.
user795305
I have corrected it with a plus minus sign. The change of the beta can be possitive or negative. Regarding the maximum and "arbitrary choice"... "for which the associated vector xi has the highest covariance with y^"
Sextus Empiricus
Thanks for the update! However, there's still problems. For instance, βiyXβ22 is evaluated incorrectly.
user795305
If β=0 then βi||yXβ||22
=||yXβ||2βi2||yXβ||2
=||ysxi||2s2||yXβ||2
=2cor(xi,y)||xi||2||y||2
=2xiy
this correlation enters the equation because,if s=0 then only the change of sxi tangent to y is changing the length of the vector ysxi
Sextus Empiricus
Ah, okay, so there's a limit involved in your argument! (You're using both β=0 and that a coefficient is nonzero.) Further, the second equality in the line with λmax is misleading since the sign could change due to the differentiation of the absolute value.
user795305