为什么Rm中的rlm()回归系数估计与lm()不同?


15

我在R MASS软件包中使用rlm回归多元线性模型。它适用于许多样本,但对于特定模型,我得到了准零系数:

Call: rlm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, maxit = 50, na.action = na.omit)
Residuals:
       Min         1Q     Median         3Q        Max 
-7.981e+01 -6.022e-03 -1.696e-04  8.458e-03  7.706e+01 

Coefficients:
             Value    Std. Error t value 
(Intercept)    0.0002   0.0001     1.8418
X1             0.0004   0.0000    13.4478
X2            -0.0004   0.0000   -23.1100
X3            -0.0001   0.0002    -0.5511
X4             0.0006   0.0001     8.1489

Residual standard error: 0.01086 on 49052 degrees of freedom
  (83 observations deleted due to missingness)

为了进行比较,这些是由lm()计算出的系数:

Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, na.action = na.omit)

Residuals:
    Min      1Q  Median      3Q     Max 
-76.784  -0.459   0.017   0.538  78.665 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -0.016633   0.011622  -1.431    0.152    
X1            0.046897   0.004172  11.240  < 2e-16 ***
X2           -0.054944   0.002184 -25.155  < 2e-16 ***
X3            0.022627   0.019496   1.161    0.246    
X4            0.051336   0.009952   5.159  2.5e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 2.574 on 49052 degrees of freedom
  (83 observations deleted due to missingness)
Multiple R-squared: 0.0182, Adjusted R-squared: 0.01812 
F-statistic: 227.3 on 4 and 49052 DF,  p-value: < 2.2e-16 

lm图未显示任何特别高的离群值,以库克距离衡量:

lm诊断

编辑

作为参考,并在根据Macro给出的答案确认结果后k,在Huber估计器中设置调整参数的R命令为(k=100在这种情况下):

rlm(y ~ x, psi = psi.huber, k = 100)

残留的标准误差,再加上其他信息,使得rlm权重函数似乎丢掉了几乎所有观测值。您确定两个回归中的Y相同吗?(只是检查...)尝试method="MM"在你的rlm电话,然后尝试(如果失败)psi=psi.huber(k=2.5)(2.5是任意的,只是比默认的1.345更大),其利差出lm权重函数的样区。
jbowman

@jbowman Y是正确的。添加了MM方法。我的直觉与您提到的相同。与我尝试的其他残差相比,该模型残差相对紧凑。看来该方法正在丢弃大多数观察结果。
罗伯特·库布里克

1
@RobertKubrick您了解将k设置为100 意味着什么,对吗?
user603 2013年

基于此:多个R平方:0.0182,调整后的R平方:0.0812,您应该再检查一次模型。异常值,响应或预测变量的变换。或者您应该考虑非线性模型。Predictor X3不重要。您所做的不是好的线性模型。
Marija Milojevic

Answers:


15

不同之处在于,rlm()您可以使用多个不同的估计量来选择模型,而使用普通的最小二乘法。Mlm()

通常,回归系数的估计量最小M

i=1nρ(YiXiβσ)

的函数,其中Y i是第i个响应,X i是个体i的预测变量。最小二乘是ρ x = x 2的一种特殊情况。 但是,您似乎正在使用的默认设置是Huber M估计器,它使用βYiiXii

ρ(x)=x2
rlm()M

ρ(x)={12x2if |x|kk|x|12k2if |x|>k.

krlm()k=1.345

编辑:从上面显示的QQ图中,您似乎有一个很长的错误分布。这是Huber M估计器设计用于的情况,在这种情况下,可以给出完全不同的估计:

ρ|x|<k|x|>k


我尝试了其他几种模型(观测值相同,IV相同),并且rlm和lm之间的系数相当相似。在这个特定的数据集中必须有某种东西在系数上产生很大的差异。
罗伯特·库布里克

1
k

1
您可以做一件事来验证(在某种程度上)这是尝试 k=1.5,2,2.5,3,3.5,4psi.huberklmrlm
jbowman

1
这是用于添加的信息@jbowman-这些是有用的注释。关于您的最后一条评论,这些大观察并没有完全被排除在外-它们的影响力只是被降低了(看起来应该如此),对吗?

1
@RobertKubrick,Huber(1964)表明,该估计方程给出的统计推断在面对正态误差和长尾误差之间的误差时是正确的,因此从某种意义上说,它可以处理这种非正态性是强大的。 。回复:您的最后一条评论-不正确。请注意,我们按σ缩放σσ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.