MASS :: lm.ridge系数

时间:2016-01-02 14:53:29

标签: r

我正在尝试使用lm.ridge方法执行岭回归。我的问题是如何获得拟合模型的系数?我从调用中获得了不同的结果:

  • model$coef
  • coef(model)

哪个是正确的?另外,为什么我会通过调用得到不同的结果:

  • coef(model)并查看第一个系数,vs。
  • coef(model)[1]

1 个答案:

答案 0 :(得分:6)

正如?lm.ridge所述(在描述返回对象的$coef元素时)[强调添加]

  

coef:系数矩阵,'lambda'的每个值一行。             请注意,这些不是原始规模并且可供使用             通过'coef'方法。

具体而言,这意味着$coef元素不适用于最终用户(“如果您必须要求......”)。 (如果您想了解$coef是如何翻译的,请检查MASS:::coef.ridgelm。)通常,最好使用coef()之类的访问器方法(如果存在),而不是提取组件使用$(或@用于S4对象)返回对象的内容 - 正是出于这个原因。包裹作者提供coef()方法是有原因的......

我无法复制你的第二个问题。使用?lm.ridge中的模型,答案似乎完全相同,除了它们的打印精度......


> m1 <- lm.ridge(y ~ ., longley)
> coef(m1)
                            GNP    Unemployed  Armed.Forces    Population 
    2946.85636017    0.26352725    0.03648291    0.01116105   -1.73702984 
             Year      Employed 
      -1.41879853    0.23128785 
> coef(m1)[1]       
2946.856