Kammregression umkehren: Finden Sie bei gegebener Antwortmatrix und gegebenen Regressionskoeffizienten geeignete Prädiktoren

16

Betrachten wir ein Standard OLS Regressionsproblem : Ich habe Matrizen und und ich möchte \ B finden, um L = \ | \ Y- \ X \ B \ | ^ 2 zu minimieren . Die Lösung ist gegeben durch \ hat \ B = \ argmin_ \ B \ {L \} = (\ X ^ \ top \ X) ^ + \ X ^ \ top \ Y.XYXβ

L=YXβ2.
β^=argminβ{L}=(XX)+XY.

Ich kann auch ein "umgekehrtes" Problem aufwerfen: Wenn \ Y und β , finde X^ , das β^β , dh minimiere argminβ{L}β2 . In Worten, ich habe die Antwortmatrix Y und den Koeffizientenvektor β und ich möchte die Prädiktormatrix finden, die Koeffizienten in der Nähe von β . Dies ist natürlich auch ein OLS-Regressionsproblem mit der Lösung

X^=argminX{argminβ{L}β2}=Yβ(ββ)+.

Klarstellungsaktualisierung: Wie in seiner Antwort unter @ GeoMatt22 erläutert, ist Y ein Vektor (dh, wenn es nur eine Antwortvariable gibt), dann hat X^ den ersten Rang, und das umgekehrte Problem ist massiv unterbestimmt. In meinem Fall ist Y tatsächlich eine Matrix (dh es gibt viele Antwortvariablen, es ist eine multivariate Regression). So X ist n×p , Y ist n×q und β ist p×q .


Ich bin daran interessiert, ein "umgekehrtes" Problem für die Gratregression zu lösen. Nämlich, meine Verlustfunktion ist jetzt

L=YXβ2+μβ2
und die Lösung ist
β^=argminβ{L}=(XX+μI)1XY.

Das "umgekehrte" Problem besteht darin,

X^=argminX{argminβ{L}β2}=?

Wieder habe ich eine Antwortmatrix Y und einen Koeffizientenvektor β und ich möchte eine Prädiktormatrix finden, die Koeffizienten nahe bei \ B ^ * ergibt β.

Tatsächlich gibt es zwei verwandte Formulierungen:

  1. Find X^ gegeben Y und β und μ .
  2. Finden Sie X^ und μ^ gegeben Y und β .

Hat einer von ihnen eine direkte Lösung?


Hier ist ein kurzer Matlab-Auszug, um das Problem zu veranschaulichen:

% generate some data
n = 10; % number of samples
p = 20; % number of predictors
q = 30; % number of responses
Y = rand(n,q);
X = rand(n,p);
mu = 0;
I = eye(p);

% solve the forward problem: find beta given y,X,mu
betahat = pinv(X'*X + mu*I) * X'*Y;

% backward problem: find X given y,beta,mu
% this formula works correctly only when mu=0
Xhat =  Y*betahat'*pinv(betahat*betahat');

% verify if Xhat indeed yields betahat
betahathat = pinv(Xhat'*Xhat + mu*I)*Xhat'*Y;
max(abs(betahathat(:) - betahat(:)))

Dieser Code gibt Null aus, wenn mu=0nicht anders.

Amöbe sagt Reinstate Monica
quelle
Da und angegeben sind, haben sie keinen Einfluss auf die Verlustschwankungen. Deshalb machen Sie in (1) immer noch OLS. (2) ist ebenso einfach, weil der Verlust beliebig klein gemacht werden kann, indem beliebig negativ innerhalb der Grenzen von irgendwelchen Einschränkungen, die Sie vergleichen, um ihm aufzuerlegen. Das reduziert Sie auf case (1). Bμμ^
Whuber
@whuber Danke. Ich glaube, ich habe es nicht klar genug erklärt. Betrachte (1). und sind gegeben (nennen wir es ), aber ich muss finden , das Ridge-Regressionskoeffizienten in der Nähe von ergibt. Mit anderen Worten, ich möchte finden, das minimiert.Ich verstehe nicht, warum das OLS sein sollte. BμBXBX
argminB{Lridge(X,B)}B2.
Amöbe sagt Reinstate Monica
Es ist, als hätte ich und ich möchte so finden, dass einem bestimmten . Es ist nicht dasselbe wie . f(v,w)vargminwf(v,w)wargminvf(v,w)
Amöbe sagt Reinstate Monica
Die Exposition in Ihrem Beitrag ist verwirrend über diese Angelegenheit, denn offenbar sind Sie nicht wirklich mit als Verlustfunktion. Könnten Sie vielleicht auf die Besonderheiten der Probleme (1) und (2) im Beitrag eingehen? L
Whuber
2
@ hxd1011 Viele Spalten in X werden normalerweise als "multiple Regression" bezeichnet. Viele Spalten in Y werden normalerweise als "multivariate Regression" bezeichnet.
Amöbe sagt Reinstate Monica

Antworten:

11

Nachdem sich die Frage auf eine genauere Formulierung des interessierenden Problems konzentriert hat, habe ich eine Lösung für Fall 1 (bekannter Kammparameter) gefunden. Dies sollte auch für Fall 2 hilfreich sein (keine exakte analytische Lösung, sondern eine einfache Formel und einige Einschränkungen).

Zusammenfassung: Keine der beiden inversen Problemformulierungen hat eine eindeutige Antwort. In Fall 2 , in dem der Kammparameter unbekannt ist, gibt es unendlich viele Lösungen für . In Fall 1, in dem angegeben ist, gibt es aufgrund der Mehrdeutigkeit im Singularwertspektrum eine endliche Anzahl von Lösungen für .μω2Xωω[0,ωmax]ωXω

(Die Ableitung ist etwas langwierig, also TL, DR: Am Ende befindet sich ein funktionierender Matlab-Code.)


Unterbestimmter Fall ("OLS")

Das Vorwärtsproblem ist wobei , und .

minBXBY2
XRn×pBRp×qYRn×q

Basierend auf der aktualisierten Frage nehmen wir an, dass , so dass bei und . Wie in der Frage wird die "Standard" (Minimum ) wobei die Pseudoinverse von .n<p<qBXYL2

B=X+Y
X+X

Aus der Singularwertzerlegung ( SVD ) von , gegeben durch * die Pseudoinverse berechnet werden als ** (* Die ersten Ausdrücke verwenden die vollständige SVD, während die zweiten Ausdrücke die reduzierte SVD verwenden. ** Der Einfachheit halber gehe ich davon aus, dass den vollen Rang hat, dh existiert.)X

X=USVT=US0V0T
X+=VS+UT=V0S01UT
XS01

So ist die Vorwärts-Problem hat Lösung Für die Zukunft stelle ich fest , dass , wo ist der Vektor der Singularwerte.

BX+Y=(V0S01UT)Y
S0=diag(σ0)σ0>0

Bei dem inversen Problem werden wir gegeben und . Wir wissen, dass aus dem obigen Prozess stammt, aber wir kennen . Die Aufgabe besteht dann darin, das entsprechende zu bestimmen .YBBXX

Wie in der aktualisierten Frage erwähnt, in diesem Fall können wir erholen im Wesentlichen mit dem gleichen Ansatz, dh jetzt der Pseudo - Inverse der Verwendung .X

X0=YB+
B

Überbestimmter Fall (Ridge Estimator)

Im "OLS" -Fall wurde das unterbestimmte Problem durch die Wahl der Minimum-Norm-Lösung gelöst , dh unsere "einzigartige" Lösung wurde implizit geregelt .

Anstatt die minimale Normlösung zu wählen , führen wir hier einen Parameter zu steuern, "wie klein" die Norm sein soll, dh wir verwenden die Kammregression .ω

In diesem Fall haben wir eine Reihe von Vorwärtsproblemen für , , die durch Sammeln der verschiedenen Vektoren der linken und rechten Seite in diese Sammlung von Probleme können auf das folgende "OLS" -Problem bei dem wir die erweiterten Matrizen βkk=1,,q

minβXβyk2+ω2β2
Bω=[β1,,βk],Y=[y1,,yk]
minBXωBY2
Xω=[XωI],Y=[Y0]

In diesem überbestimmten Fall wird die Lösung immer noch durch das pseudoinverse aber das pseudoinverse wird jetzt geändert, was zu * wobei die neue Matrix "Singularitätsspektrum" eine (inverse) Diagonale ** (* Die etwas Berechnung, die erforderlich ist, um dies abzuleiten, wurde der Kürze halber weggelassen. Sie ähnelt der Darstellung hier für den Fall . ** Hier die Einträge des Vektor werden als Vektor , bei dem alle Operationen sind.)

Bω=X+Y
Bω=(V0Sω2UT)Y
σω2=σ02+ω2σ0
pnσωσ0

Jetzt können wir in diesem Problem noch formal eine "Basislösung" als aber dies ist keine echte Lösung mehr.

Xω=YBω+

Die Analogie gilt jedoch immer noch, dass diese "Lösung" SVD mit den oben angegebenen singulären Werten .

Xω=USω2V0T
σω2

Wir können also eine quadratische Gleichung ableiten, die die gewünschten Singularwerte mit den wiederherstellbaren Singularwerten und dem Regularisierungsparameter . Die Lösung wird dann σ0σω2ω

σ0=σ¯±Δσ,σ¯=12σω2,Δσ=(σ¯+ω)(σ¯ω)

Die folgende Matlab-Demo (online über Octave getestet ) zeigt, dass diese Lösungsmethode sowohl in der Praxis als auch in der Theorie funktioniert. Die letzte Zeile zeigt, dass alle singulären Werte von in der Rekonstruktion , aber ich habe nicht vollständig herausgefunden, welche Wurzel ich nehmen soll ( = vs. ). Bei dies immer die Wurzel . Diese Regel scheint für „klein“ zu halten , während für „große“ der Wurzel scheint zu übernehmen. (Demo unten ist derzeit auf "Groß" eingestellt.)Xσ¯±Δσsgn+ω=0+ωω

% Matlab demo of "Reverse Ridge Regression"
n = 3; p = 5; q = 8; w = 1*sqrt(1e+1); sgn = -1;
Y = rand(n,q); X = rand(n,p);
I = eye(p); Z = zeros(p,q);
err = @(a,b)norm(a(:)-b(:),Inf);

B = pinv([X;w*I])*[Y;Z];
Xhat0 = Y*pinv(B);
dBres0 = err( pinv([Xhat0;w*I])*[Y;Z] , B )

[Uw,Sw2,Vw0] = svd(Xhat0, 'econ');

sw2 = diag(Sw2); s0mid = sw2/2;
ds0 = sqrt(max( 0 , s0mid.^2 - w^2 ));
s0 = s0mid + sgn * ds0;
Xhat = Uw*diag(s0)*Vw0';

dBres = err( pinv([Xhat;w*I])*[Y;Z] , B )
dXerr = err( Xhat , X )
sigX = svd(X)', sigHat = [s0mid+ds0,s0mid-ds0]' % all there, but which sign?

Ich kann nicht sagen, wie robust diese Lösung ist, da inverse Probleme im Allgemeinen schlecht gestellt sind und analytische Lösungen sehr fragil sein können. Allerdings scheinen flüchtige Experimente, die mit Gaußschem Rauschen belasten (dh es hat den vollen Rang gegenüber dem reduzierten Rang ), darauf hinzudeuten, dass sich die Methode angemessen verhält.Bpn

Für Problem 2 (dh unbekannt) gibt das Obige mindestens eine Obergrenze für . Damit die quadratische Diskriminante nicht negativ ist, muss ωω

ωωmax=σ¯n=min[12σω2]

Für die Mehrdeutigkeit des quadratischen Wurzelzeichens zeigt der folgende Codeausschnitt, dass unabhängig vom Vorzeichen jedes dieselbe Vorwärts- Grat-Lösung ergibt, auch wenn von abweicht .X^Bσ0SVD[X]

Xrnd=Uw*diag(s0mid+sign(randn(n,1)).*ds0)*Vw0'; % random signs
dBrnd=err(pinv([Xrnd;w*I])*[Y;Z],B) % B is always consistent ...
dXrnd=err(Xrnd,X) % ... even when X is not
GeoMatt22
quelle
1
+11. Vielen Dank für all die Bemühungen, die Sie unternommen haben, um diese Frage zu beantworten, und für all die Diskussionen, die wir geführt haben. Dies scheint meine Frage vollständig zu beantworten. Ich hatte das Gefühl, dass es in diesem Fall nicht ausreicht, Ihre Antwort zu akzeptieren. Dies verdient viel mehr als zwei positive Stimmen, die diese Antwort derzeit hat. Prost.
Amöbe sagt Reinstate Monica
@amoeba danke! Ich bin froh, dass es hilfreich war. Ich denke, ich werde einen Kommentar zu Whubers Antwort hinterlassen, indem du fragst, ob er dies für angemessen hält und / oder ob es eine bessere Antwort gibt. (Beachten Sie, dass er seine SVD-Diskussion mit dem Vorbehalt , dh einem überbestimmtenpnX
einleitet
@ GeoMatt22 mein Kommentar zur ursprünglichen Frage sagt mit pinvist keine gute Sache, stimmst du zu?
Haitao Du
1
@ hxd1011 Im Allgemeinen möchten Sie (fast) nie explizit eine Matrix numerisch invertieren, und dies gilt auch für die Pseudoinverse. Die beiden Gründe, aus denen ich es hier verwendet habe, sind 1) Übereinstimmung mit den mathematischen Gleichungen + Amöben-Demo-Code und 2) für den Fall von unterbestimmten Systemen können sich die Matlab-Standard- "Schrägstrich" -Lösungen von den Pinv- Lösungen unterscheiden . Fast alle Fälle in meinem Code könnten durch die entsprechenden \ oder / -Befehle ersetzt werden, die im Allgemeinen vorzuziehen sind. (Diese ermöglichen es Matlab, den effektivsten direkten Löser zu bestimmen.)
GeoMatt22
1
@ hxd1011, um Punkt 2 meines vorherigen Kommentars zu verdeutlichen, aus dem Link in Ihrem Kommentar zur ursprünglichen Frage: "Wenn der Rang von A geringer ist als die Anzahl der Spalten in A, dann ist x = A \ B nicht unbedingt das Minimum Die rechenintensivere Lösung x = pinv (A) * B berechnet die kleinste Norm-Least-Squares-Lösung. "
GeoMatt22