Inverser la régression des crêtes: compte tenu de la matrice de réponse et des coefficients de régression, trouver des prédicteurs appropriés

16

Considérons un problème de régression OLS standard : J'ai des matrices \ Y et \ X et je veux trouver \ B pour minimiser L = \ | \ Y- \ X \ B \ | ^ 2. La solution est donnée par \ hat \ B = \ argmin_ \ B \ {L \} = (\ X ^ \ top \ X) ^ + \ X ^ \ top \ Y.YXβ

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

Je peux aussi poser un problème "inverse": étant donné Y et β , trouver X^ qui donnerait β^β , c'est-à-dire minimiserait argminβ{L}β2 . En d'autres termes, j'ai la matrice de réponse Y et le vecteur de coefficient β et je veux trouver la matrice de prédicteur qui donnerait des coefficients proches de β . Ceci est, bien sûr, également un problème de régression OLS avec la solution

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

Mise à jour de la clarification: Comme @ GeoMatt22 l'a expliqué dans sa réponse, si Y est un vecteur (c'est-à-dire s'il n'y a qu'une seule variable de réponse), alors X^ sera de premier rang et le problème inverse est massivement sous-déterminé. Dans mon cas, Y est en fait une matrice (c'est-à-dire qu'il existe de nombreuses variables de réponse, c'est une régression multivariée ). Donc X est n×p , Y est n×q et β est p×q .


Je suis intéressé à résoudre un problème "inverse" pour la régression des crêtes. A savoir, ma fonction de perte est maintenant

L=YXβ2+μβ2
et la solution est
β^=argminβ{L}=(XX+μI)1XY.

Le problème "inverse" est de trouver

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

Encore une fois, j'ai une matrice de réponse Y et un vecteur de coefficient β et je veux trouver une matrice prédictive qui produirait des coefficients proches de β .

En fait, il existe deux formulations liées:

  1. Trouvez X^ donné Y et β et μ .
  2. Recherchez X^ et μ^ étant donné Y et β .

L'un ou l'autre a-t-il une solution directe?


Voici un bref extrait de Matlab pour illustrer le problème:

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

Ce code renvoie zéro si mu=0mais pas autrement.

amibe dit réintégrer Monica
la source
Puisque et sont donnés, ils n'affectent pas les variations de la perte. Par conséquent, dans (1), vous utilisez toujours OLS. (2) est tout aussi simple, car la perte peut être rendue arbitrairement petite en prenant arbitrairement négatif, dans les limites de toutes les contraintes que vous comparez pour lui imposer. Cela vous réduit au cas (1). Bμμ^
whuber
@whuber Merci. Je pense que je ne l'ai pas expliqué assez clairement. Considérez (1). et sont donnés (appelons-le ), mais je dois trouver qui produirait des coefficients de régression de crête proches de , en d'autres termes, je veux trouver minimisantJe ne vois pas pourquoi cela devrait être OLS. BμBXBX
argminB{Lridge(X,B)}B2.
amibe dit Reinstate Monica
C'est comme si j'avais et je veux trouverf(v,w)v tel que soit proche d'un . Ce n'est pas la même chose que de trouver . argminwf(v,w)wargminvf(v,w)
amibe dit Reinstate Monica
L'exposition dans votre article prête à confusion à ce sujet, car il est évident que vous n'utilisez pas réellement comme fonction de perte. Pourriez-vous peut-être développer les détails des problèmes (1) et (2) de la poste? L
whuber
2
@ hxd1011 De nombreuses colonnes de X sont généralement appelées "régression multiple", de nombreuses colonnes de Y sont généralement appelées "régression multivariée".
amibe dit Reinstate Monica

Réponses:

11

Maintenant que la question a convergé vers une formulation plus précise du problème d'intérêt, j'ai trouvé une solution pour le cas 1 (paramètre de crête connu). Cela devrait également aider pour le cas 2 (pas exactement une solution analytique, mais une formule simple et quelques contraintes).

Résumé: Aucune des deux formulations de problèmes inverses n'a de réponse unique. Dans le cas 2 , où le paramètre de crête est inconnu, il existe une infinité de solutions , pour . Dans le cas 1, où est donné, il existe un nombre fini de solutions pour , en raison de l'ambiguïté dans le spectre de valeurs singulières.X ω ω [ 0 , ω max ] ω X ωμω2Xωω[0,ωmax]ωXω

(La dérivation est un peu longue, donc TL, DR: il y a un code Matlab fonctionnel à la fin.)


Cas sous-déterminé («OLS»)

Le problème suivant est où , et . X R n × p B R p × q Y R n × q

minBXBY2
XRn×pBRp×qYRn×q

Sur la base de la question mise à jour, nous supposons , alors est sous déterminée donnée et . Comme dans la question, nous supposerons le "défaut" (minimumB X Y L 2 B = X + Y X + Xn<p<qBXYL2 solution -norme) où est la pseudo - de .

B=X+Y
X+X

De la décomposition en valeurs singulières ( SVD ) deX = U S V T = U S 0 V T 0 X + = V S + U T = V 0 S - 1 0 U T X S - 1 0X , donnée par * le pseudoinverse peut être calculé comme ** (* Les premières expressions utilisent le SVD complet, tandis que les secondes expressions utilisent le SVD réduit. ** Pour plus de simplicité, je suppose que a un rang complet, c'est-à-dire que existe.)

X=USVT=US0V0T
X+=VS+UT=V0S01UT
XS0-1

Donc, le problème avancé a la solution Pour référence future, je note que , où est le vecteur de valeurs singulières.S 0 = d i a g ( σ 0 ) σ 0 > 0

BX+Oui=(V0S0-1UT)Oui
S0=jeuneg(σ0)σ0>0

Dans le problème inverse, on nous donne etB B X XOuiB . Nous savons que est venu du processus ci - dessus, mais nous ne savons pas . La tâche consiste alors à déterminer le approprié .BXX

Comme indiqué dans la question mise à jour, dans ce cas, nous pouvons récupérer X 0 = Y B + BX en utilisant essentiellement la même approche, à savoir en utilisant maintenant la pseudo de .

X0=OuiB+
B

Cas surdéterminé (estimateur Ridge)

Dans le cas "OLS", le problème sous-déterminé a été résolu en choisissant la solution de norme minimale , c'est-à-dire que notre solution "unique" a été implicitement régularisée .

Plutôt que de choisir le solution de norme minimale , nous introduisons ici un paramètre pour contrôler "la taille" de la norme, c'est-à-dire que nous utilisons la régression de crête .ω

Dans ce cas, nous avons une série de problèmes de pour , , qui sont donnés par Collecte des différents vecteurs gauche et droit dans cette collection de les problèmes peuvent être réduits au problème "OLS" suivant où nous avons introduit les matrices augmentées k = 1 , , q min βX β - y k 2 + ω 2β 2 B ω = [ β 1 , , β k ]βkk=1,,q

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

Dans ce cas surdéterminé, la solution est toujours donnée par le pseudo-inverse mais le pseudo-inverse est maintenant changé, résultant en * où la nouvelle matrice "spectre de singularité" a une diagonale (inverse) ** (* Le calcul quelque peu compliqué requis pour dériver ceci a été omis par souci de concision. Il est similaire à l'exposé ici pour leB ω = ( V 0 S - 2 ω U T ) Y σ 2 ω = σ 2 0 + ω 2

Bω=X+Y
Bω=(V0Sω2UT)Y
pnσωσ0
σω2=σ02+ω2σ0
pn . ** Ici les entrées du vecteur est exprimé en termes de vecteur , où toutes les opérations sont en entrée.)σωσ0

Maintenant, dans ce problème, nous pouvons toujours récupérer formellement une "solution de base" comme mais ce n'est plus une vraie solution.

Xω=YBω+

Cependant, l'analogie tient toujours dans le fait que cette "solution" a SVD σ 2 ω

Xω=USω2V0T
avec les valeurs singulières données ci-dessus.σω2

Nous pouvons donc dériver une équation quadratique reliant les valeurs singulières souhaitées aux valeurs singulières récupérables et le paramètre de régularisationσ 2 ω ω σ 0 = ˉ σ ± Δ σσ0σω2ω . La solution est alors

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

La démonstration de Matlab ci-dessous (testée en ligne via Octave ) montre que cette méthode de solution semble fonctionner aussi bien en théorie qu'en théorie. La dernière ligne montre que toutes les valeurs singulières de sont dans la reconstruction , mais je n'ai pas complètement compris quelle racine prendre ( = vs ). Pour ce sera toujours la racine . Cela semble généralement tenir pour « petit » , alors que pour « grand » laˉ σ ± Δ σ + - ω = 0 + ω ω -Xσ¯±Δσsgn+ω=0+ωω racine semble prendre le dessus. (La démo ci-dessous est actuellement réglée sur un "grand" cas.)

% 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?

Je ne peux pas dire à quel point cette solution est robuste , car les problèmes inverses sont généralement mal posés et les solutions analytiques peuvent être très fragiles. Cependant, des expériences superficielles polluant avec du bruit gaussien (c'est-à-dire qu'il a donc un rang complet rapport à un rang réduit ) semblent indiquer que la méthode se comporte raisonnablement bien.p nBpn

Quant au problème 2 (ie inconnu), ce qui précède donne au moins une limite supérieure sur . Pour que le discriminant quadratique soit non négatif, nous devons avoir ω ω ω max = ˉ σ n = min [ 1ωω

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

Pour l'ambiguïté du signe racine quadratique, l'extrait de code suivant montre que, indépendamment du signe, tout donnera la même solution de crête avant , même lorsque diffère de .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
la source
1
+11. Merci beaucoup pour tous les efforts que vous avez déployés pour répondre à cette question et pour toutes les discussions que nous avons eues. Cela semble répondre entièrement à ma question. J'ai pensé que le simple fait d'accepter votre réponse ne suffisait pas dans ce cas; cela mérite bien plus de deux votes positifs que cette réponse a actuellement. À votre santé.
Amoeba dit Reinstate Monica
@amoeba merci! Je suis content que ce soit utile. Je pense que je posterai un commentaire sur la réponse de whuber que vous liez en demandant s'il pense que c'est approprié et / ou s'il y a une meilleure réponse à utiliser. (Notez qu'il préfigure sa discussion SVD avec la condition , c'est-à-dire un surdéterminé .)pnX
GeoMatt22
@ GeoMatt22 mon commentaire sur la question d'origine dit que l'utilisation pinvn'est pas une bonne chose, êtes-vous d'accord?
Haitao Du
1
@ hxd1011 En général, vous (presque) ne voulez jamais inverser explicitement une matrice numériquement, et cela vaut également pour le pseudo-inverse. Les deux raisons pour lesquelles je l'ai utilisé ici sont 1) la cohérence avec les équations mathématiques + le code de démonstration d'amibe, et 2) pour le cas de systèmes sous-déterminés, les solutions par défaut "slash" de Matlab peuvent différer des solutions pinv . Presque tous les cas de mon code pourraient être remplacés par les commandes \ ou / appropriées, qui sont généralement à préférer. (Cela permet à Matlab de décider du solveur direct le plus efficace.)
GeoMatt22
1
@ hxd1011 pour clarifier le point 2 de mon commentaire précédent, à partir du lien dans votre commentaire sur la question d'origine: "Si le rang de A est inférieur au nombre de colonnes de A, alors x = A \ B n'est pas nécessairement le minimum solution standard. Le plus cher x = pinv (A) * B calcule la solution de moindres carrés normaux minimum. ".
GeoMatt22