使用 R 中的 MM 估计器拟合稳健的回归线

机器算法验证 r 强大的
2022-03-21 08:15:26

语境。我想拟合一条回归线来研究一些响应变量和一些连续协变量之间的关系。由于存在不良杠杆点,我选择了 MM 估计器而不是通常的 LS 估计器。yx

方法。基本上,MM 估计是由 S 估计器初始化的 M 估计。因此,必须选择两个损失函数。我选择了广泛使用的 Tukey Biweight 损失函数

ρ(u)={1[1(uk)2]3if |u|k1if |u|>k,

在初步 S 估计器中(给出等于的击穿点),在 M 估计步骤中(以保证的高斯效率)。k=1.54850%k=2.69770%

我想使用 R 来拟合我稳健的回归线。

问题。

library(MASS)
rlm(y~x, 
    method="MM",
    k0=1.548, c=2.697,
    maxit=50)
  • 我的代码和上一段一致吗?
  • 你会使用其他可选参数吗?

编辑。在与@Jason Morgan 讨论之后,我意识到我之前的代码是错误的。(@Jason Morgan:非常感谢您!)但是,我仍然不相信他的提议。相反,这是我现在提出的建议:

library(robustbase)
lmrob(y~x, 
      tuning.chi=1.548, tuning.psi=2.697)

我认为它现在坚持方法论。你同意吗?

谢谢!

1个回答

默认情况下,文档表明rlm使用psi=psi.huber权重。因此,如果你想使用 Tukey 的 bisquare,你需要指定psi=psi.bisquare. 默认设置为psi.bisquare(u, c = 4.685, deriv = 0),您可以根据需要进行更改。例如,可能像

rlm(x ~ y, method="MM", psi=psi.bisquare, maxit=50)

您可能还想调查是否应该使用最小修剪平方 ( init="lts") 来初始化您的起始值。默认是使用最小二乘。