Зворотна регресія хребта: задавши матрицю відповіді та коефіцієнти регресії, знайдіть відповідні предиктори


16

Розглянемо стандартну проблему регресії OLS : У мене є матриці \ Y і \ X, і я хочу знайти \ B, щоб мінімізувати L = \ | \ Y- \ X \ B \ | ^ 2. Рішення задається \ hat \ B = \ argmin_ \ B \ {L \} = (\ X ^ \ top \ X) ^ + \ X ^ \ top \ Y.YXβΒ = argmin β { L } = ( ХХ ) + ХУ .

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

Я також можу поставити "зворотну" проблему: задано Y і β , знайдіть X^ що дасть β^β , тобто зведе до мінімуму \ | \ argmin_ \ B \ {L \} - \ B ^ * \ | ^ 2argminβ{L}β2 . Словами, у мене є матриця відповідей Y та вектор коефіцієнтів β і я хочу знайти матрицю прогнозу, яка дала б коефіцієнти, близькі до β . Звичайно, це також проблема регресії OLS з рішенням

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

Оновлення уточнення: Як @ GeoMatt22 пояснив у своїй відповіді, якщо Y - вектор (тобто, якщо є лише одна змінна відповіді), то це X^ буде першим рангом, а зворотна проблема масово недоопределена. У моєму випадку Y насправді є матрицею (тобто є багато змінних відповідей, це багатоваріантна регресія). Отже X - n×p , Y - n×q і β - p×q .


Мені цікаво вирішити "зворотну" задачу для регресії хребта. А саме, тепер моя функція втрати -

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). і дано (назвемо це ), але мені потрібно знайтиμ B X B X argmin B { L r i d g e ( X , B ) } - B 2 .BμBX який дасть коефіцієнти регресії хребта, близькі до , іншими словами я хочу знайти мінімізаціюЯ не бачу, чому це повинно бути OLS. BX
argminB{Lridge(X,B)}B2.
амеба каже, що повернеться до Моніки

Це як у мене і я хочу знайти таким, що близький заданому . Це не те саме, що знайти . v argmin w f ( v , w ) w argmin v f ( v , w )f(v,w)vargminwf(v,w)wargminvf(v,w)
амеба каже: Відновити Моніку

Експозиція у вашому дописі з цього приводу збентежує, оскільки, очевидно, ви фактично не використовуєте як функцію втрати. Чи можете ви, можливо, детальніше зупинитися на специфіці проблем (1) та (2) у посаді? L
whuber

2
@ hxd1011 Багато стовпців у X зазвичай називають "множинною регресією", багато стовпців у Y зазвичай називають "багатоваріантною регресією".
амеба каже: Відновити Моніку

Відповіді:


11

Тепер, коли питання сходилося з більш точним формулюванням проблеми, що цікавить, я знайшов рішення для випадку 1 (відомий параметр хребта). Це також повинно допомогти у випадку 2 (не саме аналітичне рішення, а проста формула та деякі обмеження).

Короткий зміст: Жодна з двох зворотних формулювань задачі не має однозначної відповіді. У випадку 2 , коли параметр хребта невідомий, існує нескінченно багато рішень , для . У випадку 1, де задано , існує обмежене число рішень для , через неоднозначність у спектрі сингулярних значень.μω2Xωω[0,ωmax]ωXω

(Виведення дещо тривале, тому TL, DR: в кінці є працюючий код Matlab.)


Недостатній випадок ("OLS")

Проблема вперед - де , , і .

minBXBY2
XRn×pBRp×qYRn×q

Виходячи з оновленого питання, будемо вважати, що , тож під визначеними даними таn<p<qBXY . Як і в питанні, ми будемо вважати « по умовчанням» (мінімум норма) рішення , де є псевдообернених з .L2

B=X+Y
X+X

Від сингулярного розкладання значення ( SVD )X , заданого * псевдоінверс можна обчислити як ** (* Перші вирази використовують повний SVD, тоді як другі вирази використовують зменшений SVD. ** Для простоти я припускаю, що має повний ранг, тобто .)

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

Таким чином, завдання вперед має рішення Для подальшого посилання зазначу, що , де - вектор сингулярних значень.

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

У зворотній задачі нам даєтьсяY і . Ми знаємо , що прийшли з вищеописаного процесу, але ми не знаємо . Завдання полягає в тому, щоб визначити відповідний .BBXX

Як зазначалося в оновленому запитанні, в цьому випадку ми можемо відновитись X , використовуючи по суті той же самий підхід, тобто тепер використовується псевдообернених .

X0=YB+
B

Завищений випадок (оцінювач Ріджа)

У випадку "OLS" недостатньо визначена проблема була вирішена шляхом вибору рішення з мінімальною нормою , тобто наше "унікальне" рішення було неявно узаконено .

Замість вибору мінімальною нормою, тут ми вводимо параметр для контролю "наскільки малою" повинна бути норма, тобто ми використовуємо регресію хребта .ω

У цьому випадку у нас є ряд прямих задач для , , які задаються Збір різних векторів лівого та правого боку в βkk=1,,q

minβXβyk2+ω2β2
Bω=[β1,,βk],Y=[y1,,yk]
цієї колекції проблеми можна звести до наступної проблеми "OLS" де ми ввели розширені матриці
minBXωBY2
Xω=[XωI],Y=[Y0]

У цьому завищеному випадку рішення все-таки дається псевдо-зворотним але псевдо-обернена тепер змінюється, в результаті чого * де нова матриця "спектру сингулярності" має (обернену) діагональ ** (* Дещо задіяний розрахунок, необхідний для його отримання, був опущений заради стислості. Він подібний до експозиції тут для випадку . ** Тут записи вектор виражається через вектор , де всі операції вводяться.)

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

Тепер у цій проблемі ми формально можемо відновити "базове рішення" як але це вже не справжнє рішення.

Xω=YBω+

Однак аналогія все ж полягає в тому, що це "рішення" має SVD з особливими значеннями наведеними вище.

Xω=USω2V0T
σω2

Таким чином, ми можемо отримати квадратичне рівняння, що стосується бажаних сингулярних значень до відновлюваних сингулярних значень та параметру регуляризаціїσ0σω2ω . Тоді рішення -

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

Наведений нижче демонстраційний опис Matlab (випробуваний в Інтернеті через Octave ) показує, що цей метод рішення, як видається, працює як на практиці, так і в теорії. Останній рядок показує, що всі особливі значення знаходяться у реконструкції , але я не зовсім зрозумів, який корінь взяти ( = vs. ). Для це завжди буде root. Це , як правило , здається, трюм для «малих» , в той час як для «великих»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?

Я не можу сказати, наскільки надійним є це рішення, оскільки зворотні проблеми, як правило, недоцільні, а аналітичні рішення можуть бути дуже крихкими. Однак побіжні експерименти, що забруднюють гауссовим шумом (тобто він має повний рангBp проти зменшеного рангу ), схоже, свідчать про те, що метод досить добре поводиться.n

Що стосується проблеми 2 (тобто невідомо), вищесказане дає принаймні верхню межу наωω . Щоб квадратичний дискримінант був негативним, ми повинні мати

ωω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. Велике спасибі за всі зусилля, які ви доклали до відповіді на це запитання, і за всю дискусію, яку ми мали. Це, здається, цілком відповідає на моє запитання. Я відчував, що просто прийняти вашу відповідь у цьому випадку недостатньо; це заслуговує на набагато більше, ніж два обґрунтування, що є у відповіді на даний момент. Ура.
амеба каже: Поновіть Моніку

@amoeba дякую! Я радий, що це було корисно. Я думаю, що я опублікую коментар до відповіді Ваубера, на яку ви посилаєтесь, запитуючи, чи вважає він це підходящим та / або є краща відповідь, яку слід використовувати. (Зверніть увагу, він передмінює свою дискусію SVD з умовою , тобто pnX
завищеним

@ GeoMatt22 мій коментар до оригінального запитання каже, що використовувати pinvце не дуже добре, ви згодні?
Хайтао Ду

1
@ hxd1011 Взагалі ви (майже) ніколи не хочете явно перетворювати матрицю чисельно, і це також стосується псевдоінверсії. Дві причини, які я тут використав, - це 1) узгодженість математичних рівнянь + демо-код amoeba та 2) для випадку недостатньо визначених систем рішення "косою" за замовчуванням Matlab можуть відрізнятися від рівномірних . Майже всі випадки мого коду можуть бути замінені відповідними \ або / командами, які, як правило, кращі. (Вони дозволяють Matlab вирішити найбільш ефективний прямий вирішувач.)
GeoMatt22,

1
@ hxd1011, щоб уточнити пункт 2 мого попереднього коментаря, за посиланням у вашому коментарі до початкового питання: "Якщо ранг A менший за кількість стовпців у A, то x = A \ B не обов'язково є мінімальним Більш обчислювально дорогий x = pinv (A) * B обчислює рішення мінімальної норми найменших квадратів. ".
GeoMatt22
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.