1

我在 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

我在这里相当新,我真的不知道我是否以正确的方式询问。但我真的需要帮助,如果有人能帮助我解决这个问题,我将不胜感激......谢谢!

4

0 回答 0