首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab中的岭回归和OLS回归

Matlab中的岭回归和OLS回归
EN

Stack Overflow用户
提问于 2016-06-20 13:58:27
回答 1查看 433关注 0票数 2

岭回归与OLS回归有很小的不同。从数学上讲,OLS回归使用了以下公式

其中岭回归使用公式

我想使用岭回归来避免多重性,但是得到了非常奇怪的结果,这些结果远比使用regress()更糟糕。在matlab中,要调用函数岭,必须输入一个X、一个Y和一个k的值。理论上,如果k设置为零,这些方程应该是相同的;但是当两者在我的代码中被连续调用时,使用X和Y的相同值,我得到了B的两个非常不同的矩阵(如下所示)。有人能解释一下为什么会发生这种事吗?

代码语言:javascript
复制
b_ridge = ridge(Y_current,X, 0)

    12.4525
    9.0099
    0.2808
    -1.5426
    -1.1107

b_regress = regress(Y_current,X)

    3.5586
    0.8805
    0.1670
    -0.3934
    -0.8526
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-20 14:07:29

根据ridge文档:

结果是在对x列进行定心和缩放后计算出来的,因此它们的平均值为0,标准差为1。

下面是一个使用列向量的示例:

代码语言:javascript
复制
>> x = randn(5,1);
>> y = randn(5,1);
>> ridge(y, x, 0)
ans =
  -0.045681220595243
>> regress(y, x)
ans =
  -0.028738686366027
>> regress(y, (x-mean(x))/std(x))
ans =
  -0.045681220595243
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37924458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档