我在 R 中使用 library(mlogit) 并且我被困在错误消息中:
Error in solve.default(H, g[!fixed]) :
system is computationally singular: reciprocal condition number = 8.41187e-25
使用 mlogit.data 函数,我制作了以下结构。
x <- mlogit.data(choice = "choice", shape = "long", data, alt.var = "alt", chid.var = "chid", varying = 7:11)
> head(x, n=9)
chid choice x1 x2 x3 x4 y1 y2 y3 y4 y5 alt
1.1 1 FALSE 1 1 4 7 0.04407 2490.17 0 80.00 2.277 1
1.2 1 FALSE 1 1 4 7 0.06035 3300.83 0 239.00 2.421 2
1.3 1 FALSE 1 1 4 7 0.06757 4450.70 0 242.37 2.555 3
1.4 1 TRUE 1 1 4 7 0.08850 5840.50 0 423.79 2.712 4
1.5 1 FALSE 1 1 4 7 0.11074 13240.38 0 618.03 2.858 5
1.6 1 FALSE 1 1 4 7 0.11990 15630.13 0 921.17 2.972 6
1.7 1 FALSE 1 1 4 7 0.04715 7800.00 0 320.00 2.463 7
1.8 1 FALSE 1 1 4 7 0.04176 8373.70 0 450.00 2.539 8
1.9 1 FALSE 1 1 4 7 0.04576 12318.20 0 600.00 2.628 9
有 9 个选项,x1~x4 是个别特定变量,y1~y5 是替代特定变量。x1 是分类变量,取 1 或 2。x2 和 x3 是整数变量,x4 是分类变量,取 7 个整数值。y 都是数字变量,但 y2 和 y3 被删失,因此观察到 0。所以在上面的例子中,person1 选择了替代 4,x1~x4 都是一样的,因为它们是个人特定的。我做了一个条件多项式 logit 公式,如下所示。
这就是问题所在。我想我所做的所有设置都与 mlgit 包示例中的完全相同,但我不断收到此错误消息!
f <- mFormula(choice ~ y1 + y2 + y3 + y4 + y5 | x1 + x2 + x3 + x4)
m <- mlogit(f, data = x, shape = "long", choice = "choice", alt.var = "alt", chid.var = "chid")
Error in solve.default(H, g[!fixed]) : system is computationally singular: reciprocal condition number = 8.41187e-25
我在这里相当新,我真的不知道我是否以正确的方式询问。但我真的需要帮助,如果有人能帮助我解决这个问题,我将不胜感激......谢谢!