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
工作正常,因为没有两个相同的变量。
我正在使用这样的 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
工作正常,因为没有两个相同的变量。