运行glm时出现错误“系统在计算上是奇异的”


29

我正在使用robustbase程序包来运行glm估计。但是,当我这样做时,出现以下错误:

Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) : 
  system is computationally singular: reciprocal condition number = 1.66807e-16

这是什么意思/表示?我该如何调试呢?

PS。如果您需要任何答案(公式/规格或数据),我将很乐意提供。

Answers:


26

这意味着您的设计矩阵是不可逆的,因此不能用于开发回归模型。这是由线性相关列(即高度相关的变量)引起的。检查变量的成对协方差(或相关性),以调查是否存在任何可能被删除的变量。您正在寻找协方差(或相关性)>>0。或者,您可以通过使用正向逐步回归来自动执行此变量选择。

这也可能是由于变量多于观测值所致,在这种情况下,您的设计矩阵可能不完整。解决这个问题比较棘手,但是有很多方法。我认为套索回归应该在数据“更宽”而不是“长”时运行良好。

请记住:如果您决定尝试套索或逐步选择,那么您所做的(就变量选择而言)远不只是处理多重线性。


谢谢,有两个问题:1.您是否知道r中的任何过程对我进行调试可能很有效?2.我可以看到,当我使用glm()而不是glmrob()在完全相同的数据上运行完全相同的模型时,我没有得到任何错误-这样做有意义,还是暗示着glmrob中存在错误()功能?
NK1 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.