【发布时间】:2019-07-08 17:07:14
【问题描述】:
在模式选择模型中,变量随备选方案而变化(“通用变量”)但对于某些模式未定义是很常见的。例如,公共汽车和轻轨存在公交票价,但汽车和自行车未定义。请注意,票价不为零。
我正在尝试使用 R 的 mlogit 包来完成这项工作。在这个 MWE 中,我断言 price 未定义用于从海滩钓鱼。这会导致奇点错误。
library(mlogit)
#> Warning: package 'mlogit' was built under R version 3.5.2
#> Loading required package: Formula
#> Loading required package: zoo
#>
#> Attaching package: 'zoo'
#> The following objects are masked from 'package:base':
#>
#> as.Date, as.Date.numeric
#> Loading required package: lmtest
data("Fishing", package = "mlogit")
Fishing$price.beach <- NA
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")
head(Fish)
#> mode income alt price catch chid
#> 1.beach FALSE 7083.332 beach NA 0.0678 1
#> 1.boat FALSE 7083.332 boat 157.930 0.2601 1
#> 1.charter TRUE 7083.332 charter 182.930 0.5391 1
#> 1.pier FALSE 7083.332 pier 157.930 0.0503 1
#> 2.beach FALSE 1250.000 beach NA 0.1049 2
#> 2.boat FALSE 1250.000 boat 10.534 0.1574 2
mlogit(mode ~ catch + price | income, data = Fish, na.action = na.omit)
#> Error in solve.default(H, g[!fixed]): system is computationally singular: reciprocal condition number = 3.92205e-24
由reprex package (v0.2.1) 于 2019-07-08 创建
当price 移动到替代特定变量位置时也会发生这种情况。我认为问题可能出在na.action 函数参数上,但除了基本文档标签之外,我找不到关于此参数的任何文档:
na.action:指示当数据包含 NA 时应该发生什么的函数
似乎没有任何示例显示该术语的不同用法以及结果如何。有一个相关的未回答问题here。
【问题讨论】: