【问题标题】:order of coefficients in lm, Rlm,R中的系数顺序
【发布时间】:2013-05-13 22:09:57
【问题描述】:

在 R 中运行回归时,返回系数的顺序是什么?例如:

 coef(lm(y ~ x + z, data=data.frame(x=1:10, y=10:1, z=1:5)))

是否保证与x 关联的系数总是在与z 关联的系数之前返回?顺序是指返回系数向量中的顺序。这对我来说很重要的原因是我想测试关于我的模型中的系数的线性假设,因此vcov 返回的方差协方差矩阵中系数的顺序和coef 返回的实际估计很重要。

【问题讨论】:

  • 您的公式中没有z
  • 哎呀,错字了。刚刚修好。

标签: r regression linear-regression lm


【解决方案1】:

按名称索引,而不是按位置。那么你总会得到正确的答案。

coef(lm(y ~ x+z, data=data.frame(x=1:10, y=10:1, z=1:5)))['x']
##  x 
## -1 
coef(lm(y ~ x+z, data=data.frame(x=1:10, y=10:1, z=1:5)))['z']
##             z 
## -1.855301e-16 

他们两个,都按照所需的顺序:

coef(lm(y ~ x+z, data=data.frame(x=1:10, y=10:1, z=1:5)))[c('x', 'z')]
##             x             z 
## -1.000000e+00 -1.855301e-16 

【讨论】:

  • 是的,这就是我现在正在做的事情,但是在进行交互时,其中一些名称很难看。例如,如果我做lm(y ~ 0 + I(x>2) + x:I(z>2) + z:I(z>2) 他们的名字很丑,但我想我仍然可以按他们索引。希望有更好的解决方案
  • 这是有用的建议,但并不能真正回答问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 2021-09-01
  • 2022-09-23
相关资源
最近更新 更多