Membalikkan regresi ridge: diberikan matriks respons dan koefisien regresi, temukan prediktor yang sesuai


16

Pertimbangkan masalah regresi OLS standar: Saya memiliki matriks Y dan X dan saya ingin mencari β untuk meminimalkan

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

Saya juga dapat menimbulkan masalah "terbalik": mengingat Y dan β , cari X^ yang akan menghasilkan β^β , yaitu akan meminimalkan argminβ{L}β2 . Dengan kata lain, saya memiliki matriks respons Y dan vektor koefisien β dan saya ingin menemukan matriks prediktor yang akan menghasilkan koefisien yang mendekati β . Ini, tentu saja, juga merupakan masalah regresi OLS dengan solusi

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

Pembaruan klarifikasi: Seperti yang dijelaskan oleh @ GeoMatt22 dalam jawabannya, jika Y adalah vektor (yaitu jika hanya ada satu variabel respons), maka X^ akan menjadi peringkat satu, dan masalah kebalikannya secara besar-besaran belum ditentukan. Dalam kasus saya, Y sebenarnya adalah sebuah matriks (yaitu ada banyak variabel respon, ini adalah regresi multivariat ). Jadi X adalah n×p , Y adalah n×q dan β adalah p×q .


Saya tertarik untuk memecahkan masalah "terbalik" untuk regresi ridge. Yaitu, fungsi kerugian saya sekarang adalah

L=YXβ2+μβ2
dan solusinya adalah
β^=argminβ{L}=(XX+μI)1XY.

Masalah "kebalikan" adalah menemukan

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

Sekali lagi, saya memiliki matriks respons Y dan vektor koefisien β dan saya ingin menemukan matriks prediktor yang akan menghasilkan koefisien yang mendekati β .

Sebenarnya ada dua formulasi terkait:

  1. Temukan X^ diberikan Y dan β dan μ .
  2. Temukan dan diberikan dan . μ Yβ*X^μ^Yβ

Apakah keduanya memiliki solusi langsung?


Berikut adalah kutipan singkat Matlab untuk menggambarkan masalah:

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

Kode ini menghasilkan nol jika mu=0tetapi tidak sebaliknya.


Karena dan diberikan, mereka tidak memengaruhi variasi dalam kerugian. Karenanya dalam (1) Anda masih melakukan OLS. (2) sama sederhananya, karena kerugian dapat dibuat kecil secara sewenang-wenang dengan mengambil negatif secara sewenang-wenang, dalam batas-batas segala kendala yang Anda bandingkan untuk memaksakannya. Itu mengurangi Anda untuk huruf (1). μ μBμμ^
whuber

@whuber Terima kasih. Saya pikir saya tidak menjelaskannya dengan cukup jelas. Pertimbangkan (1). dan diberikan (sebut saja ), tetapi saya perlu menemukan yang akan menghasilkan koefisien regresi punggungan dekat dengan , dengan kata lain saya ingin menemukan meminimalkanSaya tidak mengerti mengapa ini OLS. μ B X B X argmin B { L r i d g e ( X , B ) } - B 2 .BμBXBX
argminB{Lridge(X,B)}B2.
Amuba kata Reinstate Monica

Ini seperti saya memiliki dan saya ingin menemukan sehingga dekat dengan diberikan . Ini tidak sama dengan menemukan . f(v,w)vargminwf(v,w)wargminvf(v,w)
Amoeba berkata Reinstate Monica

Eksposisi dalam posting Anda membingungkan tentang hal itu, karena jelas Anda tidak benar-benar menggunakan sebagai fungsi kerugian. Bisakah Anda menguraikan secara spesifik masalah (1) dan (2) di pos? L
whuber

2
@ hxd1011 Banyak kolom di X biasanya disebut "regresi berganda", banyak kolom di Y biasanya disebut "regresi multivariat".
Amuba kata Reinstate Monica

Jawaban:


11

Sekarang pertanyaannya telah menyatu pada rumusan masalah bunga yang lebih tepat, saya telah menemukan solusi untuk kasus 1 (parameter ridge dikenal). Ini juga harus membantu untuk kasus 2 (bukan solusi analitis tepat, tetapi formula sederhana dan beberapa kendala).

Ringkasan: Tak satu pun dari dua formulasi masalah terbalik memiliki jawaban yang unik. Dalam kasus 2 , di mana parameter ridge tidak diketahui, ada banyak solusi X ω , untuk ω [ 0μω2Xω . Dalam kasus 1, di mana ω diberikan, ada sejumlah solusi terbatas untuk X ω , karena ambiguitas dalam spektrum nilai singular.ω[0,ωmax]ωXω

(Derivasinya agak panjang, jadi TL, DR: ada kode Matlab yang berfungsi di akhir.)


Kasus yang Tidak Ditentukan ("OLS")

Masalah ke depan adalah mana X R n × p , B R p ×

minBXBY2
XRn×p , danY R n × qBRp×qYRn×q .

Berdasarkan pertanyaan diperbarui, kami akan menganggap , sehingga B berada di bawah ditentukan diberikan X dan Y . Seperti dalam pertanyaan, kita akan mengasumsikan solusi "default" (minimum L 2 -norm) B = X + Y di mana X + adalah pseudoinverse dari Xn<p<qBXYL2

B=X+Y
X+X .

Dari dekomposisi nilai singular ( SVD ) , diberikan oleh * X = U S V T = U S 0 V T 0 pseudoinverse dapat dihitung sebagai ** X + = V S + U T = V 0 S - 1 0 U T (* Ekspresi pertama menggunakan SVD lengkap, sedangkan ekspresi kedua menggunakan SVD tereduksi. ** Untuk kesederhanaan saya menganggap X memiliki peringkat penuh, yaitu S - 1 0 ada.)X

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

Jadi masalah ke depan memiliki solusi Untuk referensi di masa mendatang, saya perhatikan bahwa S 0 = d i a g (

BX+Y=(V0S01UT)Y
, di mana σ 0 > 0 adalah vektor nilai-nilai singular.S0=diag(σ0)σ0>0

Dalam masalah terbalik, kita diberi dan BYB . Kita tahu bahwa berasal dari proses di atas, tapi kita tidak tahu X . Tugasnya adalah menentukan X yang sesuai .BXX

Seperti dicatat dalam pertanyaan yang diperbarui, dalam hal ini kita dapat memulihkan menggunakan dasarnya pendekatan yang sama, yaitu XX sekarang menggunakan pseudoinverse dari B .

X0=YB+
B

Over-ditentukan Case (Penaksir Ridge)

Dalam kasus "OLS", masalah yang belum ditentukan diselesaikan dengan memilih solusi norma minimum , yaitu solusi "unik" kami diatur secara implisit .

Daripada memilih solusi norma minimum , di sini kami memperkenalkan parameter untuk mengontrol "seberapa kecil" norma tersebut, yaitu kami menggunakan regresi ridge .ω

Dalam hal ini, kami memiliki serangkaian masalah ke depan untuk , k = 1 , ... , q , yang diberikan oleh min βX β - y k 2 + ω 2β 2 Mengumpulkan kiri dan kanan yang berbeda vektor sisi tangan ke B ω = [ β 1 , , β k ]βkk=1,,q

minβXβyk2+ω2β2
koleksi ini masalah dapat dikurangi dengan "OLS" berikut masalah min BX ω B - Y 2 di mana kami telah memperkenalkan matriks augmented X ω = [ X ω saya
Bω=[β1,,βk],Y=[y1,,yk]
minBXωBY2
Xω=[XωI],Y=[Y0]

Dalam kasus yang ditentukan berlebihan ini, solusinya masih diberikan oleh pseudo-invers tetapi pseudo-invers sekarang berubah, menghasilkan * B ω = ( V 0 S - 2 ω U T ) Y di mana matriks "singularitas spektrum" yang baru memiliki (terbalik) diagonal ** σ 2 ω = σ 2 0

Bω=X+Y
Bω=(V0Sω2UT)Y
(* Perhitungan agak terlibat yang diperlukan untuk menurunkan ini telah dihilangkan demi singkatnya. Ini mirip dengan penjelasan disiniuntuk kasuspn. ** Di sini entri darivektorσωdiekspresikan dalam bentuk yangσ0
σω2=σ02+ω2σ0
pnσωσ0 vektor, di mana semua operasi entry-bijaksana.)

Sekarang dalam masalah ini kita masih dapat secara resmi memulihkan "solusi dasar" seperti

Xω=YBω+
tetapi ini bukan solusi yang benar lagi.

Namun, analoginya masih berpendapat bahwa "solusi" ini memiliki SVD dengan nilai singular σ 2 ω

Xω=USω2V0T
σω2 diberikan di atas.

σ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]

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. Terima kasih banyak untuk semua upaya yang Anda lakukan untuk menjawab pertanyaan ini dan untuk semua diskusi yang kami lakukan. Ini sepertinya menjawab pertanyaan saya sepenuhnya. Saya merasa bahwa hanya menerima jawaban Anda tidak cukup dalam kasus ini; ini layak mendapatkan lebih dari dua upvotes yang dimiliki jawaban ini saat ini. Bersulang.
Amoeba berkata Reinstate Monica

@amoeba terima kasih! Saya senang itu membantu. Saya pikir saya akan mengirim komentar pada jawaban whuber yang Anda tautkan bertanya apakah menurutnya itu sesuai dan / atau jika ada jawaban yang lebih baik untuk digunakan. (Catatan dia lebih suka diskusi SVD dengan ketentuanhaln, yaitu terlalu ditentukan X.)
GeoMatt22

@ GeoMatt22 komentar saya pada pertanyaan asli mengatakan menggunakan pinvbukanlah hal yang baik, apakah Anda setuju?
Haitao Du

1
@ hxd1011 Secara umum Anda (hampir) tidak pernah ingin secara eksplisit membalikkan matriks secara numerik, dan ini berlaku juga untuk pseudo-inverse. Dua alasan saya menggunakannya di sini adalah 1) konsistensi dengan persamaan matematika + kode demo amuba, dan 2) untuk kasus sistem yang tidak ditentukan, solusi default "slash" Matlab dapat berbeda dari yang pinv . Hampir semua case dalam kode saya dapat diganti dengan perintah \ atau / yang sesuai, yang umumnya lebih disukai. (Ini memungkinkan Matlab untuk memutuskan pemecah langsung paling efektif.)
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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.