R rlm模型错误:“ x”为奇数:“ rlm”中未实现奇异拟合

zin*_*non 3 r linear-regression

我在R中有这两个列表:

y=c(420.5568, 693.6305, 420.5568, 946.9677, 499.1046, 946.9677)
x=c(32, 29, 32, 27, 31, 27)
Run Code Online (Sandbox Code Playgroud)

我正在尝试rlm使用以下代码来拟合此数据以进行建模:

fit_new = (rlm(log(tail(y, 3)) ~ poly( tail(x,3), 2, raw=TRUE )))
Run Code Online (Sandbox Code Playgroud)

响应是此错误:

 Error in rlm.default(x, y, weights, method = method, wt.method = wt.method,  : 
'x' is singular: singular fits are not implemented in 'rlm'
Run Code Online (Sandbox Code Playgroud)

ton*_*nov 5

总结一下我先前的评论:输入数据有问题。即,存在重复的对(x, y)。回归算法通常适用于矩阵,并且如果矩阵具有相同的行或列,则其行列式为零。一些算法可以解决这个问题。有些没有。

这是针对您数据的最小临时解决方案:用于unique删除重复项。不过请注意:作为一般解决方案,您必须删除重复的,而不仅仅是内部xy单独的重复。

  • 我从“MASS::rlm()”收到此错误,但没有任何重复的行。所以至少还有另一种方法来得到这个错误。就我而言,仅在使用某个因子变量时才会出现,而使用“lm()”则不会发生。 (2认同)