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

机器算法验证 r 多重回归 强大的
2022-01-27 12:45:29

我在 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 图没有显示任何特别高的异常值,由 Cook 距离测量:

lm诊断

编辑

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

rlm(y ~ x, psi = psi.huber, k = 100)
1个回答

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

一般来说,回归系数M

i=1nρ(YiXiβσ)

作为的函数,其中是第个响应,是个体的预测变量。最小二乘是这种情况的一种特殊情况,其中但是,您似乎正在使用 的默认设置 -估计器,它使用βYiiXii

ρ(x)=x2
rlm()M

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

其中是一个常数。默认值为这两个估计器正在最小化不同的标准,因此估计值不同也就不足为奇了。krlm()k=1.345

编辑:从上面显示的 QQ 图,看起来你有一个很长的尾误差分布。这是 Huber M 估计器设计的那种情况,在这种情况下,可以给出完全不同的估计:

当误差呈正态分布时,估计值将非常相似,因为在正态分布下,大多数 Huber函数将落在的情况下,这相当于最小二乘法。在您所拥有的长尾情况下,许多人陷入情况,这与 OLS 不同,这可以解释这种差异。 ρ|x|<k|x|>k