为什么 R 会将 NA 作为 lm() 系数返回?

机器算法验证 r 回归
2022-01-29 08:35:03

我正在lm()为包含财务季度指标(Q1、Q2、Q3,将 Q4 设为默认值)的数据集拟合模型。使用lm(Y~., data = data) 我得到 aNA作为 Q3 的系数,并警告说由于奇异性而排除了一个变量。

我需要添加 Q4 列吗?

2个回答

NA 作为回归中的系数表明所讨论的变量与其他变量线性相关。在您的情况下,这意味着对于某些如果是这种情况,那么在不删除其中一个变量的情况下,就没有唯一的回归解决方案。添加只会让事情变得更糟。Q3=a×Q1+b×Q2+ca,b,cQ4

我在尝试拟合观察与时间时发现了这种行为,其中时间以 POSIXct 给出。lm 和 lsfit() 都确定 x 是共线的。通过减去时间基准的平均值来进行拟合,这个问题得到了解决。

这似乎是底层代码中的一个缺陷——必须有一些单精度操作,或者非最佳操作顺序。我以前从未见过它,所以它可能是新的。