在matlab中的岭回归

时间:2013-08-23 20:53:42

标签: matlab linear-regression

我对matlab中的岭回归存在疑问。他们在http://www.mathworks.com/help/stats/ridge.html提到过,岭回归实际上意味着中心,并使预测者的标准等于1。但是,我可以看到它没有。例如,

让我的x成为

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

让我自己

1
2
3
4

它不会将xs归一化为0均值和单位方差。有什么澄清发生了什么?我的意思是岭应该对数据进行归一化,即x到0均值和单位方差,然后计算系数。我期待Ridge(y,x,0,0)给出R = inv(x'* x)* x'y的结果,其中R取x和y归一化

1 个答案:

答案 0 :(得分:4)

输出必须相同,岭回归只能使计算在数值上更稳定(对多重共线性不太敏感)。

==更新==

现在我更了解你的问题:) documentation说:

  

b = ridge(y,X,k,scaled)使用缩放的{0,1}值标记来确定   如果b中的系数估计值恢复到   原始数据。 ridge(y,X,k,0)执行此额外转换。

您已将第三个和第四个参数都设置为0,这意味着ridge参数为零,结果将不会缩放,因此它应与{{1}的结果相同(如果岭参数inv(x'*x)*x'y设置为0,则这就是岭回归公式。)