Invertir la regresión de cresta: dada la matriz de respuesta y los coeficientes de regresión, encontrar predictores adecuados

16

Considere un problema de regresión OLS estándar : Tengo matrices y \ X y quiero encontrar \ B para minimizar L = \ | \ Y- \ X \ B \ | ^ 2. La solución viene dada por \ hat \ B = \ argmin_ \ B \ {L \} = (\ X ^ \ top \ X) ^ + \ X ^ \ top \ Y.YXβΒ = argmin β { L } = ( XX ) + XY .

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

También puedo plantear un problema "inverso": dado Y y β , encuentre X^ que produciría β^β , es decir, minimizaría argminβ{L}β2 . En palabras, tengo la matriz de respuesta Y y el vector de coeficiente β y quiero encontrar la matriz predictora que arroje coeficientes cercanos a β . Esto es, por supuesto, también un problema de regresión de OLS con la solución

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

Actualización de la aclaración: como explicó @ GeoMatt22 en su respuesta, si Y es un vector (es decir, si solo hay una variable de respuesta), entonces esta X^ será de rango uno, y el problema inverso está enormemente indeterminado. En mi caso, Y es en realidad una matriz (es decir, hay muchas variables de respuesta, es una regresión multivariada ). Entonces X es n×p , Y es n×q y β es p×q .


Estoy interesado en resolver un problema "inverso" para la regresión de cresta. A saber, mi función de pérdida ahora es

L=YXβ2+μβ2
y la solución es
β^=argminβ{L}=(XX+μI)1XY.

El problema "inverso" es encontrar

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

Nuevamente, tengo una matriz de respuesta Y y un vector de coeficiente β y quiero encontrar una matriz de predicción que produzca coeficientes cercanos a β .

En realidad, hay dos formulaciones relacionadas:

  1. Encuentra X^ dado Y y β y μ .
  2. Encuentra y dado y .X^μ^Yβ

¿Alguno de ellos tiene una solución directa?


Aquí hay un breve extracto de Matlab para ilustrar el problema:

% 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(:)))

Este código genera cero si mu=0pero no de otra manera.

ameba dice Reinstate Monica
fuente
Como se dan y , no afectan las variaciones en la pérdida. Por lo tanto, en (1) todavía estás haciendo OLS. (2) es igualmente simple, porque la pérdida puede hacerse arbitrariamente pequeña tomando arbitrariamente negativo, dentro de los límites de cualquier restricción que compare imponerle. Eso te reduce al caso (1). Bμμ^
whuber
@whuber Gracias. Creo que no lo expliqué lo suficientemente claro. Considere (1). y están dados (llamémoslo ), pero necesito encontrar que produzca coeficientes de regresión de cresta cercanos a , en otras palabras, quiero encontrar minimizandoNo veo por qué esto debería ser OLS. μ B X B X argmin B { L r i d g e ( X , B ) } - B 2 .BμBXBX
argminB{Lridge(X,B)}B2.
ameba dice Reinstate Monica
Es como si tuviera y quiero encontrar v tal que argmin w f ( v , w ) esté cerca de un determinado w . No es lo mismo que encontrar argmin v f ( vf(v,w)vargminwf(v,w)w . argminvf(v,w)
ameba dice Reinstate Monica
La exposición en su publicación es confusa sobre ese asunto, porque evidentemente no está utilizando como una función de pérdida. ¿Podrías dar detalles sobre los problemas específicos (1) y (2) en la publicación? L
whuber
2
@ hxd1011 Muchas columnas en X generalmente se llaman "regresión múltiple", muchas columnas en Y generalmente se llaman "regresión multivariada".
ameba dice Reinstate Monica

Respuestas:

11

Ahora que la pregunta ha convergido en una formulación más precisa del problema de interés, he encontrado una solución para el caso 1 (parámetro de cresta conocido). Esto también debería ayudar para el caso 2 (no es exactamente una solución analítica, sino una fórmula simple y algunas restricciones).

Resumen: ninguna de las dos formulaciones de problemas inversos tiene una respuesta única. En el caso 2 , donde el parámetro de cresta es desconocido, hay infinitas soluciones X ω , para ω [ 0 ,μω2Xω . En el caso 1, dondese da ω , hay un número finito de soluciones para X ω , debido a la ambigüedad en el espectro de valores singulares.ω[0,ωmax]ωXω

(La derivación es un poco larga, por lo que TL, DR: hay un código de Matlab que funciona al final).


Caso subdeterminado ("OLS")

El problema de avance es donde X R n × p , B R p × q e Y R n × q .

minBXBY2
XRn×pBRp×qYRn×q

En base a la pregunta actualizada, asumiremos , por lo que B se determina bajo X e Y determinados . Como en la pregunta, asumiremos la solución "predeterminada" (mínima L2 - forma) B = X +n<p<qBXYL2 donde X + es lapseudoinversede X .

B=X+Y
X+X

A partir de la descomposición de valor singular ( SVD ) de , dada por * X = U S V T = U S 0 V T 0, el pseudoinverso puede calcularse como ** X + = V S + U T = V 0 S - 1 0 U T (* Las primeras expresiones usan la SVD completa, mientras que las segundas usan la SVD reducida. ** Por simplicidad, supongo que X tiene rango completo, es decir, S - 1 0 existe).X

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

Entonces, el problema directo tiene solución Para referencia futura, noto que S 0 = d i a g ( σ

BX+Y=(V0S01UT)Y
, donde σ 0 > 0 es el vector de valores singulares.S0=diag(σ0)σ0>0

En el problema inverso, se nos dan y BYB . Sabemos que llegó desde el proceso anterior, pero no sabemos X . La tarea es entonces determinar la X apropiada .BXX

Como se señaló en la pregunta actualizada, en este caso podemos recuperar utilizando esencialmente el mismo enfoque, es decir, X 0X ahora usando el pseudoinverse de B .

X0=YB+
B

Caso sobredeterminado (estimador de cresta)

En el caso "OLS", el problema no determinado se resolvió eligiendo la solución de norma mínima , es decir, nuestra solución "única" se regularizó implícitamente .

En lugar de elegir la solución de norma mínima , aquí introducimos un parámetro para controlar "cuán pequeña" debe ser la norma, es decir, usamos la regresión de cresta .ω

βkk=1,,q

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

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

Xω=YBω+

Xω=USω2V0T
σω2

σ0σω2ω

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

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?

Bpn

ωω

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

For the quadratic-root sign ambiguity, the following code snippet shows that independent of sign, any X^ will give the same forward B ridge-solution, even when σ0 differs from SVD[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
fuente
1
+11. Thanks a lot for all the effort that you put into answering this question and for all the discussion that we had. This seems to answer my question entirely. I felt that simply accepting your answer is not enough in this case; this deserves much more than two upvotes that this answer currently has. Cheers.
amoeba says Reinstate Monica
@amoeba thanks! I am glad it was helpful. I think I will post a comment on whuber's answer you link asking if he thinks it is appropriate and/or if there is a better answer to use. (Note he prefaces his SVD discussion with the proviso pn, i.e. an over-determined X.)
GeoMatt22
@GeoMatt22 my comment on original question says using pinv is not a good thing, do you agree?
Haitao Du
1
@hxd1011 In general you (almost) never want to explicitly invert a matrix numerically, and this holds also for the pseudo-inverse. The two reasons I used it here are 1) consistency with the mathematical equations + amoeba's demo code, and 2) for the case of underdetermined systems, the default Matlab "slash" solutions can differ from the pinv ones. Almost all of the cases in my code could be replaced by the appropriate \ or / commands, which are generally to be preferred. (These allow Matlab to decide the most effective direct solver.)
GeoMatt22
1
@hxd1011 to clarify on point 2 of my previous comment, from the link in your comment on the original question: "If the rank of A is less than the number of columns in A, then x = A\B is not necessarily the minimum norm solution. The more computationally expensive x = pinv(A)*B computes the minimum norm least-squares solution.".
GeoMatt22