我正在使用robustbase包来运行 glm 估计。但是,当我这样做时,我收到以下错误:
Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) :
system is computationally singular: reciprocal condition number = 1.66807e-16
这是什么意思/表明?我该如何调试它?
PS。如果您需要任何东西(公式/规格或数据)来回答,我很乐意提供。
我正在使用robustbase包来运行 glm 估计。但是,当我这样做时,我收到以下错误:
Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) :
system is computationally singular: reciprocal condition number = 1.66807e-16
这是什么意思/表明?我该如何调试它?
PS。如果您需要任何东西(公式/规格或数据)来回答,我很乐意提供。
这意味着您的设计矩阵是不可逆的,因此不能用于开发回归模型。这来自线性相关列,即强相关变量。检查变量的成对协方差(或相关性),以调查是否有任何可能被删除的变量。您正在寻找协方差(或相关性)>> 0。或者,您可以通过使用前向逐步回归来自动执行此变量选择。
这也可能是由于变量多于观察值,在这种情况下,您的设计矩阵可能不是满秩的。这有点难以解决,但有一些方法。我相信当数据“宽”而不是“长”时,套索回归应该能很好地工作。
请记住:如果您决定尝试套索或逐步选择,那么您所做的(在变量选择方面)不仅仅是处理多重共线性。
我已经处理了完全相同的问题。我的老师告诉我,这是因为我的一个变量比其他变量大得多。(在我的例子中,交易量比两个不同时刻的回报要大得多。)问题是因为浮点计算和精度的限制,而不是任何固有的数学或统计。
因此,我将最大变量除以 1000000。
data$Volume <- data$Volume / 1000000