【问题标题】:Error in mlogit: Error in solve.default(H, g[!fixed]) : system is computationally singular: reciprocal condition number = 3.4767e-18mlogit 中的错误:solve.default(H, g[!fixed]) 中的错误:系统在计算上是奇异的:倒数条件数 = 3.4767e-18
【发布时间】:2012-11-23 00:56:44
【问题描述】:

我有一个长格式的联合调查数据。前几行如下所示:

 ID alt choice size tar length brand flavor gender age yr_smoke num_smoke job
 1  1   1     no    1   1      1     1      1      2  35       10        20   1
 2  1   2     no    1   1      1     1      1      2  35       10        20   1
 3  1   3     no    1   1      1     1      1      2  35       10        20   1
 4  1   4     no    1   1      1     1      1      2  35       10        20   1
 5  1   5     no    1   1      1     1      1      2  35       10        20   1
 6  1   6     no    1   1      1     1      1      2  35       10        20   1

我使用 mlogit.data 作为:

data_mlogit_ct1_test2 <- mlogit.data(data_mlogit_ct1_test1,choice="choice",
shape="long",alt.var="alt")

转换后的数据的前几行如下所示:

   ID alt choice size tar length brand flavor gender age yr_smoke num_smoke job
   1.1  1   1  FALSE    1   1      1     1      1      2  35       10        20   1
   1.2  1   2  FALSE    1   1      1     1      1      2  35       10        20   1
   1.3  1   3  FALSE    1   1      1     1      1      2  35       10        20   1
   1.4  1   4  FALSE    1   1      1     1      1      2  35       10        20   1
   1.5  1   5  FALSE    1   1      1     1      1      2  35       10        20   1
   1.6  1   6  FALSE    1   1      1     1      1      2  35       10        20   1

现在我正在尝试将 mlogit 设置为:

 fit_mlogit_ct11 <- mlogit(choice~size+tar+length+brand+flavor, 
                           data_mlogit_ct1_test1,shape="long",chid.var="ID",
                           alt.var="alt",method="bfgs",heterosc=TRUE,tol=10)

我收到了这个错误:

solve.default(crossprod(attr(x, "gradi")[, !fixed])) 中的错误: Lapack 例程 dgesv:系统完全是奇异的

然后我做了:

  fit_mlogit_ct11 <- mlogit(choice~size+tar+length+brand+flavor, data_mlogit_ct1_test2)

现在我得到了:

solve.default(H, g[!fixed]) 中的错误: 系统在计算上是奇异的:倒数条件数 = 3.4767e-18

有人可以帮帮我吗?

【问题讨论】:

  • 重现您的数据尝试在 R 中运行 dput(data_mlogit_ct1_test2) 并复制输出
  • 您的数据看起来有点奇怪:所有选项都相同。这是故意的吗?
  • 另外,您可以开始接受您之前问题的一些答案吗?

标签: r


【解决方案1】:

我认为问题在于您没有正确定义您的个人特定变量。根据包手册,当您使用 mlgit 功能构建模型时,您可以使用:|将替代特定变量与单个特定变量分开。例如:

fit_mlogit_ct11 <- mlogit(choice~1|size+tar+length+brand+flavor, 
                           data_mlogit_ct1_test1,shape="long",chid.var="ID",
                           alt.var="alt",method="bfgs",heterosc=TRUE,tol=10)

这只是说您的所有变量都是特定于个人的,并且您只截取替代特定的截距。但实际上正如上面已经提到的那样,您的数据看起来很奇怪,因为它们看起来相同,因为您只有单个特定变量。这最终会导致奇点(您的变量与 1 相互关联)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    相关资源
    最近更新 更多