R:使用具有重复数字的列表的稳健线性回归

R: Robust linear regression using a list having repeated number

我正在使用这样的 rlm 模型。

fit=rlm(log(y) ~ x  + z)

Z 是一个包含所有 1 的列表。我收到错误 Error in rlm.default(x, y, weights, method = method, wt.method = wt.method, : 'x' is singular: singular fits are not implemented in 'rlm'

是否等同于使用 fit=rlm(log(y) ~ x + 1)

是的,它等同于使用 rlm(log(y) ~ x + 1) 实际上最好只使用 rlm(log(y) ~ x) 因为截距或常数项(即仅包含 1 的变量)包含在默认。

通过写 + 1 你只是 "remind" rlm 你想要回归中的常数项,而写 + z 看起来更像是你有一些变量,你想要添加(并且您可能不知道它只包含 1),但是同时具有默认截距和仅包含 1 的 z 会导致问题 - perfect collinearity,因此这会产生错误。

强烈建议在回归中始终使用截距,但如果您真的想消除它,可以使用 log(y) ~ x - 1 来完成。现在实际上 log(y) ~ x - 1 + z 工作正常,因为没有两个相同的变量。