在R系数和未知随机参数中的mlogit



我正在尝试对我的数据运行mlogit。我的数据是:

> head(df[c(1:3, 33:45)])
ID Gender Age Option equipment.A equipment.B equipment.C clean.A clean.B clean.C people.A people.B people.C price.A price.B
1 108630      M  56      A        3        3        1      1      3      3         2         3         2     4     3
2 115547      F  34      B        3        3        1      1      3      3         2         3         2     4     3
3 118359      F  51      C        3        3        1      1      3      3         2         3         2     4     3
4 126656      F  40      C        3        3        1      1      3      3         2         3         2     4     3
5 127439      F  26      C        3        3        1      1      3      3         2         3         2     4     3
6 130846      M  69      C        3        3        1      1      3      3         2         3         2     4     3
price.C
1     4
2     4
3     4
4     4
5     4
6     4

我的代码是:

Result <- mlogit.data(mydata, shape = "wide", choice = "Option", varying = 34:45)
Result.mxl <- mlogit(Option ~ equipment + clean + people + price | 0, Result)
summary(Result.mxl)

然后,我的输出是:

Frequencies of alternatives:
A      B      C 
0.3745 0.3525 0.2730 
nr method
4 iterations, 0h:0m:0s 
g'(-H)^-1g = 3.12E-07 
gradient close to zero 
Coefficients :
Estimate Std. Error z-value  Pr(>|z|)    
equipment2  0.467333   0.100203  4.6639 3.103e-06 ***
equipment3  0.431747   0.089822  4.8067 1.535e-06 ***
clean2    1.278133   0.094188 13.5701 < 2.2e-16 ***
clean3    1.603504   0.118145 13.5724 < 2.2e-16 ***
people2 0.438747   0.094280  4.6537 3.261e-06 ***
people3 0.292673   0.115142  2.5419   0.01103 *  
price2     0.641272   0.111956  5.7279 1.017e-08 ***
price3     0.786393   0.100451  7.8286 4.885e-15 ***
price4     1.045555   0.151903  6.8830 5.859e-12 ***
price5     1.965825   0.211786  9.2821 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Log-Likelihood: -2009.3

所以问题是,我想得到一个只有"设备"、"清洁"、"人员"one_answers"价格"的一个观察值的表,以及随机系数表。(例如:https://cran.r-project.org/web/packages/mlogit/vignettes/e3mxlogit.html)

我试图在我的代码中添加另一个参数并运行:

Result.mxl <- mlogit(Option ~ equipment + clean + people + price | 0, Result, 
rpar = c(equipment = 'n', clean = 'n', people = 'n', price = 'n'), 
panel = TRUE, id.var = "id", alt.levels = c("A","B", "C"))

但现在我得到一个错误:

Error in mlogit.start(formula = formula, data = data, mf = mf, start = start,  : 
unknown random parameter

我非常感谢你的帮助!

如果使用因子变量,mlogit显然首先为每个因子级别创建具有新名称的新变量。然后它与这些名称一起工作,因此如果您使用原始名称,它会声明"未知随机变量"。你可以通过运行一个正常的多项式logit来计算出因子名称是什么。然后使用coeff(summary(((查看新变量的名称(每个因子级别一个(,并使用这些名称告诉mlogit应该为哪些变量使用随机系数。

最新更新