Đảo ngược hồi quy sườn núi: ma trận phản hồi và hệ số hồi quy đã cho, tìm các yếu tố dự đoán phù hợp


16

Hãy xem xét một vấn đề tiêu chuẩn OLS hồi quy : Tôi có ma trận YX và tôi muốn tìm β để thu nhỏ

L=YXβ2.
Giải pháp được đưa ra bởi
β^=argminβ{L}=(XX)+XY.

Tôi cũng có thể đặt ra vấn đề "đảo ngược": đã cho Yβ , tìm X^ sẽ mang lại β^β , tức là sẽ giảm thiểu argminβ{L}β2 . Nói cách khác, tôi có ma trận phản hồi Y và vectơ hệ số β và tôi muốn tìm ma trận dự đoán sẽ mang lại hệ số gần với β . Tất nhiên, đây cũng là một vấn đề hồi quy OLS với giải pháp

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

Cập nhật làm rõ: Như @ GeoMatt22 đã giải thích trong câu trả lời của anh ấy, nếu Y là một vectơ (nghĩa là nếu chỉ có một biến trả lời), thì X^ này sẽ được xếp hạng một và vấn đề ngược lại được xác định một cách ồ ạt. Trong trường hợp của tôi, Y thực sự là một ma trận (nghĩa là có nhiều biến trả lời, nó là một hồi quy đa biến ). Vậy Xn×p , Yn×qβp×q .


Tôi quan tâm đến việc giải quyết vấn đề "đảo ngược" cho hồi quy sườn núi. Cụ thể, chức năng mất của tôi bây giờ là

L=YXβ2+μβ2
và giải pháp là
β^=argminβ{L}=(XX+μI)1XY.

Vấn đề "đảo ngược" là tìm

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

Một lần nữa, tôi có ma trận phản hồi Y và vectơ hệ số β và tôi muốn tìm ma trận dự đoán sẽ mang lại hệ số gần với β .

Trên thực tế có hai công thức liên quan:

  1. Tìm X^ cho Yβμ .
  2. Tìm X^μ^ cho Yβ .

Có ai trong số họ có một giải pháp trực tiếp?


Dưới đây là đoạn trích Matlab ngắn gọn để minh họa vấn đề:

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

Mã này xuất ra 0 nếu mu=0nhưng không phải là khác.


Vì và được đưa ra, chúng không ảnh hưởng đến các biến thể của tổn thất. Do đó, trong (1) bạn vẫn đang thực hiện OLS. (2) cũng đơn giản không kém, vì tổn thất có thể được tạo ra nhỏ tùy ý bằng cách lấy tùy ý phủ định, trong giới hạn của bất kỳ ràng buộc nào bạn so sánh để áp đặt lên nó. Điều đó làm giảm bạn đến trường hợp (1). Bμμ^
whuber

@whuber Cảm ơn. Tôi nghĩ rằng tôi đã không giải thích nó đủ rõ ràng. Hãy xem xét (1). và được đưa ra (hãy gọi nó là ), nhưng tôi cần tìm sẽ mang lại hệ số hồi quy sườn gần với , nói cách khác tôi muốn tìm giảm thiểuTôi không thấy lý do tại sao điều này nên là OLS. BμBXBX
argminB{Lridge(X,B)}B2.
amip nói phục hồi Monica

Giống như tôi có và tôi muốn tìm sao cho gần với một . Nó không giống như tìm . f(v,w)vargminwf(v,w)wargminvf(v,w)
amip nói phục hồi Monica

Giải thích trong bài viết của bạn là khó hiểu về vấn đề đó, vì rõ ràng bạn không thực sự sử dụng như một chức năng mất. Có lẽ bạn có thể giải thích chi tiết cụ thể về các vấn đề (1) và (2) trong bài viết? L
whuber

2
@ hxd1011 Nhiều cột trong X thường được gọi là "hồi quy bội", nhiều cột trong Y thường được gọi là "hồi quy đa biến".
amip nói phục hồi Monica

Câu trả lời:


11

Bây giờ câu hỏi đã hội tụ về một công thức chính xác hơn về vấn đề quan tâm, tôi đã tìm ra giải pháp cho trường hợp 1 (tham số sườn núi đã biết). Điều này cũng sẽ giúp cho trường hợp 2 (không phải là một giải pháp phân tích chính xác, mà là một công thức đơn giản và một số ràng buộc).

Tóm tắt: Cả hai công thức bài toán ngược có một câu trả lời duy nhất. Trong trường hợp 2 , không xác định được tham số sườn núi , có vô số giải pháp , cho . Trong trường hợp 1, trong đó được đưa ra, có một số lượng hữu hạn các giải pháp cho , do sự mơ hồ trong phổ giá trị số ít.μω2Xωω[0,ωmax]ωXω

(Đạo hàm hơi dài, do đó, TL, DR: có mã Matlab hoạt động ở cuối.)


Trường hợp chưa được xác định ("OLS")

Vấn đề chuyển tiếp là trong đó , và .

minBXBY2
XRn×pBRp×qYRn×q

Dựa trên câu hỏi được cập nhật, chúng tôi sẽ đảm nhận , vì vậy đang được xác định cho và . Như trong câu hỏi, chúng tôi sẽ đảm nhận "mặc định" (tối thiểu -norm) giải pháp nơi là pseudoinverse của .n<p<qBXYL2

B=X+Y
X+X

Từ phân tách giá trị số ít ( SVD ) của , được đưa ra bởi * có thể được tính là ** (* Các biểu thức đầu tiên sử dụng SVD đầy đủ, trong khi các biểu thức thứ hai sử dụng SVD giảm. ** Để đơn giản, tôi giả sử có thứ hạng đầy đủ, tức là tồn tại.)X

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

Vì vậy, bài toán chuyển tiếp có giải pháp Để tham khảo trong tương lai, tôi lưu ý rằng , trong đó là vectơ của các giá trị số ít.

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

Trong vấn đề nghịch đảo, chúng tôi được cho và . Chúng ta biết rằng xuất phát từ quá trình trên, nhưng chúng ta không biết . Nhiệm vụ sau đó là xác định thích hợp .YBBXX

Như đã đề cập trong câu hỏi được cập nhật, trong trường hợp này chúng ta có thể khôi phục lại sử dụng chủ yếu là phương pháp tương tự, tức là tại bằng cách sử dụng pseudoinverse của .X

X0=YB+
B

Trường hợp quá xác định (Công cụ ước tính)

Trong trường hợp "OLS", vấn đề chưa được xác định đã được giải quyết bằng cách chọn giải pháp định mức tối thiểu , tức là giải pháp "duy nhất" của chúng tôi được ngầm định hóa .

Thay vì chọn giải pháp định mức tối thiểu , ở đây chúng tôi giới thiệu một tham số để kiểm soát định mức "nhỏ" như thế nào, tức là chúng tôi sử dụng hồi quy sườn .ω

Trong trường hợp này, chúng tôi có một loạt các sự cố chuyển tiếp cho , , được đưa ra bởi Thu thập các vectơ bên trái và bên phải khác nhau vào bộ sưu tập này của các vấn đề có thể được giảm xuống thành vấn đề "OLS" sau đây trong đó chúng tôi đã giới thiệu các ma trận tăng cường βkk=1,,q

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

Trong trường hợp được xác định quá mức này, giải pháp vẫn được đưa ra bởi giả nghịch đảo nhưng nghịch đảo giả giờ đã thay đổi, dẫn đến * trong đó ma trận "phổ số ít" mới có đường chéo ** (* Tính toán có liên quan cần thiết để rút ra điều này đã bị bỏ qua vì lý do ngắn gọn. Nó tương tự như giải trình ở đây cho trường hợp . ** Ở đây các mục của vectơ được biểu thị dưới dạng vectơ , trong đó tất cả các thao tác là nhập cảnh.)

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

Bây giờ trong vấn đề này, chúng tôi vẫn có thể chính thức khôi phục một "giải pháp cơ bản" là nhưng đây không còn là một giải pháp thực sự nữa.

Xω=YBω+

Tuy nhiên, sự tương tự vẫn cho rằng "giải pháp" này có SVD với các giá trị số ít được đưa ra ở trên.

Xω=USω2V0T
σω2

Vì vậy, chúng ta có thể rút ra một phương trình bậc hai liên quan đến các giá trị số ít mong muốn với các giá trị số ít có thể phục hồi và tham số chính quy . Giải pháp sau đó là σ0σω2ω

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

Bản demo Matlab dưới đây (được thử nghiệm trực tuyến qua Octave ) cho thấy phương pháp giải pháp này dường như hoạt động trong thực tế cũng như lý thuyết. Dòng cuối cùng cho thấy rằng tất cả các giá trị số ít của nằm trong cấu trúc lại , nhưng tôi chưa hoàn toàn tìm ra gốc nào sẽ lấy ( = vs. ). Với nó sẽ luôn là gốc . Điều này thường dường như để giữ cho "nhỏ" , trong khi cho "lớn" sự gốc dường như để tiếp nhận. (Hiện tại bản demo được đặt thành trường hợp "lớn".)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?

Tôi không thể nói giải pháp này mạnh đến mức nào , vì các vấn đề nghịch đảo thường không được đặt ra và các giải pháp phân tích có thể rất mong manh. Tuy nhiên, các thí nghiệm chữ thảo gây ô nhiễm với nhiễu Gaussian (nghĩa là nó có thứ hạng đầy đủ so với thứ hạng giảm ) dường như cho thấy phương pháp này được xử lý hợp lý.Bpn

Đối với vấn đề 2 (tức là chưa biết), phần trên cung cấp ít nhất một giới hạn trên cho . Để phân biệt đối xử bậc hai không âm, chúng ta phải có ωω

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

Đối với sự không rõ ràng của dấu hiệu bậc hai, đoạn mã sau đây cho thấy rằng độc lập với dấu hiệu, mọi sẽ cung cấp cùng một giải pháp sườn núi , ngay cả khi khác với .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

1
+11. Cảm ơn rất nhiều vì tất cả những nỗ lực mà bạn đã trả lời câu hỏi này và cho tất cả các cuộc thảo luận mà chúng tôi đã có. Điều này dường như để trả lời câu hỏi của tôi hoàn toàn. Tôi cảm thấy rằng chỉ cần chấp nhận câu trả lời của bạn là không đủ trong trường hợp này; điều này xứng đáng hơn nhiều so với hai câu trả lời mà câu trả lời này hiện có. Chúc mừng.
amip nói phục hồi Monica

@amoeba cảm ơn! Tôi vui vì nó hữu ích. Tôi nghĩ rằng tôi sẽ đăng một bình luận về câu trả lời của người đăng ký mà bạn hỏi liệu anh ta có nghĩ nó phù hợp không và / hoặc nếu có câu trả lời tốt hơn để sử dụng. (Lưu ý ông kinh tiền tụng thảo luận SVD mình với điều kiện , tức là một quá quyết .)pnX
GeoMatt22

@ GeoMatt22 nhận xét của tôi về câu hỏi ban đầu nói rằng sử dụng pinvkhông phải là một điều tốt, bạn có đồng ý không?
Haitao Du

1
@ hxd1011 Nói chung, bạn (hầu như) không bao giờ muốn đảo ngược một cách rõ ràng một ma trận bằng số và điều này cũng đúng với giả nghịch đảo. Hai lý do tôi sử dụng ở đây là 1) tính nhất quán với các phương trình toán học + mã trình diễn của amip và 2) cho trường hợp các hệ thống không xác định, các giải pháp "gạch chéo" mặc định có thể khác với các giải pháp pinv . Hầu như tất cả các trường hợp trong mã của tôi có thể được thay thế bằng các lệnh \ hoặc / thích hợp, thường được ưu tiên. (Điều này cho phép Matlab quyết định người giải trực tiếp hiệu quả nhất.)
GeoMatt22

1
@ hxd1011 để làm rõ về điểm 2 của nhận xét trước đây của tôi, từ liên kết trong nhận xét của bạn về câu hỏi ban đầu: "Nếu thứ hạng của A nhỏ hơn số cột trong A, thì x = A \ B không nhất thiết là mức tối thiểu giải pháp định mức. X = pinv (A) * B tính toán đắt hơn tính toán giải pháp bình phương tối thiểu bình phương tối thiểu. ".
GeoMatt22
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.