【问题标题】:MASS::lm.ridge coefficientsMASS::lm.ridge 系数
【发布时间】:2016-01-02 14:53:28
【问题描述】:

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

  • model$coef
  • coef(model)

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

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

【问题讨论】:

  • ?lm.ridge 表示输出的 coef 是“系数矩阵,每个 lambda 值一行。请注意,这些不是原始比例,而是供 coef 方法使用的。”
  • 是的,我看到了,但我不明白意思(我只有一个 lambda)
  • 鉴于OP已阅读文档,但不理解[统计]含义,我认为这应该在主题上考虑。
  • 和我的统计理解无关,我是问应该用哪个变量...
  • 如果你问的是 R 语法,那么这是题外话。

标签: r


【解决方案1】:

正如?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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2010-10-31
    • 1970-01-01
    • 2014-08-03
    • 2014-11-11
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多