我正在尝试在 R 中使用 mlogit 来产生交通方式选择。问题是我有一个仅适用于某些替代方案的变量。
更具体地说,我试图预测使用汽车、公交和非机动交通方式的概率。我的预测因素是:距离、过境等待时间、家庭车辆数量和车辆行驶时间。
当我以这种方式格式化它时它可以工作:
> amres<-mlogit(mode~ivt+board|distance+nveh,data=AMLOGIT)
但是,我在车辆行驶时间 (ivt) 中得到的结果没有意义:
> summary(amres)
Call:
mlogit(formula = mode ~ ivt + board | distance + nveh, data = AMLOGIT,
method = "nr", print.level = 0)
Frequencies of alternatives:
auto tansit nonmotor
0.24654 0.28378 0.46968
nr method
5 iterations, 0h:0m:2s
g'(-H)^-1g = 6.34E-08
gradient close to zero
Coefficients :
Estimate Std. Error t-value Pr(>|t|)
tansit:(intercept) 7.8392e-01 8.3761e-02 9.3590 < 2.2e-16 ***
nonmotor:(intercept) 3.2853e+00 7.1492e-02 45.9532 < 2.2e-16 ***
ivt 1.6435e-03 1.2673e-04 12.9691 < 2.2e-16 ***
board -3.9996e-04 1.2436e-04 -3.2161 0.001299 **
tansit:distance 3.2618e-04 2.0217e-05 16.1336 < 2.2e-16 ***
nonmotor:distance -2.9457e-04 3.3772e-05 -8.7224 < 2.2e-16 ***
tansit:nveh -1.5791e+00 4.5932e-02 -34.3799 < 2.2e-16 ***
nonmotor:nveh -1.8008e+00 4.8577e-02 -37.0720 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Log-Likelihood: -10107
McFadden R^2: 0.30354
Likelihood ratio test : chisq = 8810.1 (p.value = < 2.22e-16)
如您所见,统计数据看起来不错,但 ivt 应该是负系数而不是正系数。我的想法是,全为 0 的非机动部分正在影响它。我相信我要做的是使用等式的第三部分,如下所示:
> amres<-mlogit(mode~board|distance+nveh|ivt,data=AMLOGIT)
但是,这会导致:
Error in solve.default(H, g[!fixed]) :
Lapack routine dgesv: system is exactly singular: U[10,10] = 0
我相信这再次是因为对于非机动变量,变量全为 0,但我不确定如何解决这个问题。如果它不适用于所有替代方案,我如何包含替代特定变量?