2013-08-23 2 views
3

У меня есть это сомнение относительно регрессии гребня в Matlab. Они упомянули в http://www.mathworks.com/help/stats/ridge.html, что регрессия гребня фактически означает центры и делает std равным 1 для предикторов. Однако я мог видеть, что это не так. Напр.Регрессия хребта в matlab

Пусть мой х

1  1  2 
1  3  5 
1  9 12 
1 12 50 

Пусть мой у-

1 
2 
3 
4 

Она не делает каких-либо нормализации хз до 0 средним и единичной дисперсией. Какие разъяснения о том, что происходит? Я имею в виду, что хребет должен нормализовать данные i.e от x до 0 и единичную дисперсию, а затем вычислить коэффициенты. Я ожидал, что Ridge (y, x, 0,0) даст мне результат R = inv (x '* x) * x'y, где R принимает нормали x и y

ответ

4

Выход должен быть тем же, гребень регрессия делает расчет более стабильным численно (менее чувствительным к мультиколлинеарности).

== UPDATE ==

Теперь я лучше понимаю, что ты просишь :) documentation говорит:

б = гребень (у, X, к, масштабируется) использует {0 , 1} -значный флаг, масштабированный для определения , если оценки коэффициентов в b восстанавливаются в масштабе исходных данных . гребень (y, X, k, 0) выполняет это дополнительное преобразование.

Вы установили как третий и четвертый параметры на 0, что означает, что параметр Хребет равен нулю, и результат не будет отрегулирован, поэтому она должна быть такой же, как то, что вы получаете с inv(x'*x)*x'y (это то, что формула регрессии гребня становится, если параметр гребня k установлен в 0).

+0

Не делает ли это среднее центрирование и изменение стандартного отклонения до 1 к данным? – user34790

+0

pls. см. мой обновленный ответ. – kol

+0

Нет. Я имел в виду это. По умолчанию b вычисляется после центрирования и масштабирования предикторов, чтобы иметь среднее значение 0 и стандартное отклонение 1. Почему гребень не делает это? Я не вижу xs с центром в 0 и имеет std до 1 – user34790

Смежные вопросы