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.Β = argmin β { L } = ( X ⊤ X ) + X ⊤ Y .
También puedo plantear un problema "inverso": dado y , encuentre que produciría , es decir, minimizaría . En palabras, tengo la matriz de respuesta 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
Actualización de la aclaración: como explicó @ GeoMatt22 en su respuesta, si es un vector (es decir, si solo hay una variable de respuesta), entonces esta será de rango uno, y el problema inverso está enormemente indeterminado. En mi caso, es en realidad una matriz (es decir, hay muchas variables de respuesta, es una regresión multivariada ). Entonces es , es y es .
Estoy interesado en resolver un problema "inverso" para la regresión de cresta. A saber, mi función de pérdida ahora es
El problema "inverso" es encontrar
Nuevamente, tengo una matriz de respuesta y un vector de coeficiente y quiero encontrar una matriz de predicción que produzca coeficientes cercanos a .
En realidad, hay dos formulaciones relacionadas:
- Encuentra dado y y .
- Encuentra y dado 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=0
pero no de otra manera.