การย้อนกลับของการถดถอยสัน: รับเมทริกซ์การตอบสนองและค่าสัมประสิทธิ์การถดถอยค้นหาตัวทำนายที่เหมาะสม


16

พิจารณาปัญหาการถดถอย OLS มาตรฐาน: ฉันมีเมทริกซ์YและXและฉันต้องการหาเพื่อลด โซลูชันได้รับโดย\ hat \ B = \ argmin_ \ B \ {L \} = (\ X ^ \ top \ X) ^ + \ X ^ \ top \ Yβ β = argmin β { L } = ( XX ) + X Y

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

ฉันยังสามารถก่อให้เกิดปัญหา "ย้อนกลับ": ได้รับYและβ , ค้นหาX^ที่จะให้ผลลัพธ์ β^β , เช่นจะย่อargminβ{L}β2 2 ในคำพูดของผมมีการตอบสนองเมทริกซ์Yและเวกเตอร์สัมประสิทธิ์βและฉันต้องการที่จะหาเมทริกซ์ทำนายที่ว่าจะให้ผลผลิตใกล้เคียงกับค่าสัมประสิทธิ์β * แน่นอนนี่เป็นปัญหาการถดถอยของ OLS ด้วยโซลูชัน

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

การปรับปรุงการชี้แจง:ตามที่ @ GeoMatt22 อธิบายไว้ในคำตอบของเขาหากYเป็นเวกเตอร์ (เช่นถ้ามีเพียงหนึ่งตัวแปรตอบกลับ) จากนั้นX^นี้จะอยู่ในอันดับที่หนึ่งและปัญหาย้อนกลับจะถูกประเมินอย่างหนาแน่น ในกรณีของฉันYเป็นเมทริกซ์จริง ๆ (นั่นคือมีตัวแปรตอบกลับมากมายมันคือการถดถอยหลายตัวแปร ) ดังนั้นXคือn×p , Yคือn×qและβคือp×qQ


ฉันสนใจที่จะแก้ปัญหา "ย้อนกลับ" สำหรับการถดถอยบนสันเขา กล่าวคือตอนนี้ฟังก์ชั่นการสูญเสียของฉันคือ

L=YXβ2+μβ2
และการแก้ปัญหาคือ
β^=argminβ{L}=(XX+μI)1XY.

ปัญหา "ย้อนกลับ" คือการหา

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

อีกครั้งฉันมีเมทริกซ์การตอบสนองYและสัมประสิทธิ์เวกเตอร์βและฉันต้องการค้นหาเมทริกซ์ตัวทำนายที่จะให้ค่าสัมประสิทธิ์ใกล้กับβ *

จริงๆแล้วมีสองสูตรที่เกี่ยวข้อง:

  1. ค้นหาX^ได้รับYและβและμ \
  2. ค้นหาและให้และ *X^μ^Yβ

ทั้งคู่มีวิธีแก้ปัญหาโดยตรงหรือไม่?


นี่คือข้อความที่ตัดตอนมา Matlab สั้น ๆ เพื่อแสดงปัญหา:

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

รหัสนี้จะแสดงผลเป็นศูนย์ถ้าmu=0ไม่เช่นนั้น


เนื่องจากได้รับและจึงไม่มีผลต่อการเปลี่ยนแปลงในการสูญเสีย ดังนั้นใน (1) คุณยังคงทำ OLS อยู่ (2) นั้นง่ายพอ ๆ กันเพราะความสูญเสียสามารถทำให้เกิดความสูญเสียเล็ก ๆ น้อย ๆ โดยการติดลบโดยพลการภายในขอบเขตของข้อ จำกัด ใด ๆ ที่คุณเปรียบเทียบเพื่อกำหนด ที่ช่วยลดคุณไปยังกรณี (1)μ μBμμ^
whuber

@whuber ขอบคุณ ฉันคิดว่าฉันไม่ได้อธิบายอย่างชัดเจนเพียงพอ พิจารณา (1) และ (เรียกมันว่า ) แต่ฉันต้องการค้นหาที่จะให้ค่าสัมประสิทธิ์การถดถอยสันเขาใกล้กับในคำอื่น ๆ ที่ฉันต้องการค้นหาย่อฉันไม่เห็นว่าทำไมสิ่งนี้ควรเป็น OLS μ B * X B * X argmin B { L R ฉันd กรัมE ( X , B ) } - B * 2BμBXBX
argminB{Lridge(X,B)}B2.
อะมีบาพูดว่า Reinstate Monica

มันเหมือนกับว่าฉันมีและฉันต้องการหาเช่นนั้นอยู่ใกล้กับมา มันไม่ได้เป็นเช่นเดียวกับการค้นพบ*) v argmin w f ( v , w ) w argmin v f ( v , w )f(v,w)vargminwf(v,w)wargminvf(v,w)
อะมีบาพูดว่า Reinstate Monica

การแสดงออกในโพสต์ของคุณทำให้เกิดความสับสนเกี่ยวกับเรื่องนั้นเพราะเห็นได้ชัดว่าคุณไม่ได้ใช้เป็นฟังก์ชันการสูญเสีย คุณอาจอธิบายรายละเอียดของปัญหา (1) และ (2) ในโพสต์ได้ไหม? L
whuber

2
@ hxd1011 คอลัมน์จำนวนมากใน X มักจะเรียกว่า "การถดถอยแบบหลายจุด" โดยทั่วไปแล้วคอลัมน์จำนวนมากใน Y มักจะเรียกว่า "การถดถอยหลายตัวแปร"
อะมีบาพูดว่า Reinstate Monica

คำตอบ:


11

ตอนนี้คำถามได้มาบรรจบกับการกำหนดปัญหาที่น่าสนใจมากขึ้นฉันได้พบวิธีแก้ปัญหาสำหรับกรณีที่ 1 (พารามิเตอร์ริดจ์ที่รู้จัก) สิ่งนี้จะช่วยในกรณีที่ 2 (ไม่ใช่โซลูชันเชิงวิเคราะห์ แต่เป็นสูตรที่เรียบง่ายและข้อ จำกัด บางอย่าง)

สรุป:ทั้งสองสูตรปัญหาผกผันไม่มีคำตอบที่ไม่ซ้ำกัน ในกรณีที่ 2ที่สันเขาพารามิเตอร์เป็นที่รู้จักมีเพียบหลายโซลูชั่นX ωสำหรับω [ 0 , ω สูงสุด ] ในกรณีที่ 1 ซึ่งให้ωมีจำนวน จำกัด ของวิธีแก้ปัญหาสำหรับX ωเนื่องจากความคลุมเครือในสเปกตรัมค่าเอกพจน์μω2Xωω[0,ωmax]ωXω

(รากศัพท์นั้นยาวไปหน่อยดังนั้น TL, DR: จะมีรหัส Matlab ที่ใช้งานได้ในตอนท้าย)


กรณีที่ไม่ได้รับการพิจารณา ("OLS")

ปัญหาที่เกิดขึ้นข้างหน้าเป็น ที่X R n × P , B R P × QและY R n × Q

minBXBY2
XRn×pBRp×qYRn×q

ขึ้นอยู่กับคำถามที่ปรับปรุงแล้วเราจะถือว่าดังนั้นBอยู่ภายใต้การกำหนดให้XและY ในฐานะที่เป็นคำถามที่เราจะถือว่า "เริ่มต้น" (ขั้นต่ำL 2 -norm) สารละลาย B = X + Y ที่X +เป็นpseudoinverseของXn<p<qBXYL2

B=X+Y
X+X

จากการสลายตัวของเอกพจน์ ( SVD ) ของซึ่งกำหนดโดย * X = U S V T = U S 0 V T 0 pseudoinverse สามารถคำนวณได้เป็น ** X + = V S + U T = V 0 S - 1 0 U T (* นิพจน์แรกใช้ SVD แบบเต็มในขณะที่นิพจน์ที่สองใช้ SVD ที่ลดลง ** สำหรับความเรียบง่ายฉันถือว่าXมีระดับเต็มเช่นS - 1 0X

X=USVT=US0V0T
X+=VS+UT=V0S01UT
XS01มีอยู่)

ดังนั้นปัญหาไปข้างหน้ามีทางออก สำหรับการอ้างอิงในอนาคตฉันทราบว่าS 0 = d ฉันa g ( σ 0 )โดยที่σ 0 > 0

BX+Y=(V0S01UT)Y
S0=diag(σ0)σ0>0เป็นเวกเตอร์ ของค่าเอกพจน์

ในตรงกันข้ามปัญหาเราจะได้รับและB เรารู้ว่าBมาจากกระบวนการข้างต้น แต่เราไม่ทราบว่าX จากนั้นภารกิจคือการพิจารณาXที่เหมาะสมYBBXX X

ดังที่ระบุไว้ในคำถามที่ปรับปรุงแล้วในกรณีนี้เราสามารถกู้คืนโดยใช้วิธีการเดียวกันโดยพื้นฐานคือ X 0 = Y B +X

X0=YB+
ตอนนี้ใช้ pseudoinverse ของBB

กรณีที่กำหนดมากเกินไป (ตัวประมาณแบบสัน)

ในกรณี "OLS" ปัญหาภายใต้การพิจารณาถูกแก้ไขโดยการเลือก วิธีแก้ปัญหาขั้นต่ำเช่นวิธีการ "เฉพาะ" ของเรานั้นโดยปริยายทำให้เป็นระเบียบ regularized

แทนที่จะเลือกวิธีแก้ปัญหาบรรทัดฐานขั้นต่ำที่นี่เราแนะนำพารามิเตอร์เพื่อควบคุม "บรรทัดฐาน" ควรจะเล็กแค่ไหนเช่นเราใช้ωการถดถอยของสันการถดถอยสันเขา

ในกรณีนี้เรามีชุดของปัญหาไปข้างหน้าสำหรับ , k = 1 , ... , คิวที่จะได้รับจากนาทีβX β - Y k 2 + ω 2β 2 การจัดเก็บภาษีซ้ายที่แตกต่างกันและขวา เวกเตอร์ข้างมือเป็น B ω = [ β 1 , , β kβkk=1,,q

minβXβyk2+ω2β2
คอลเลกชันของปัญหานี้สามารถลดลงได้ต่อไปนี้ "OLS" ปัญหา นาทีBX ω B - Y 2 ที่เราได้แนะนำเติมเมทริกซ์ X ω = [ X ω ฉัน ]
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σω vector are expressed in terms of the σ0 vector, where all operations are entry-wise.)

Now in this problem we can still formally recover a "base solution" as

Xω=YBω+
but this is not a true solution anymore.

However, the analogy still holds in that this "solution" has SVD

Xω=USω2V0T
with the singular values σω2 given above.

So we can derive a quadratic equation relating the desired singular values σ0 to the recoverable singular values σω2 and the regularization parameter ω. The solution is then

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

The Matlab demo below (tested online via Octave) shows that this solution method appears to work in practice as well as theory. The last line shows that all the singular values of X are in the reconstruction σ¯±Δσ, but I have not completely figured out which root to take (sgn = + vs. ). For ω=0 it will always be the + root. This generally seems to hold for "small" ω, whereas for "large" ω the root seems to take over. (Demo below is set to "large" case currently.)

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

I cannot say how robust this solution is, as inverse problems are generally ill-posed, and analytical solutions can be very fragile. However cursory experiments polluting B with Gaussian noise (i.e. so it has full rank p vs. reduced rank n) seem to indicate the method is reasonably well behaved.

As for problem 2 (i.e. ω unknown), the above gives at least an upper bound on ω. For the quadratic discriminant to be non-negative we must have

ωω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

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.