MASS :: lm.ridge系数

2 r

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

  • model$coef
  • coef(model)

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

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

Ben*_*ker 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