3

我想在 gmnl 中估计一个二进制随机参数 logit,同时考虑未观察到和观察到的异质性。当Gender是具有 2 个水平 (0,1) 的因子时,它会导致以下错误。当Gender输入gmnl与数值变量结构完全相同的函数时,公式运行正常。有谁知道没有因子变量(例如虚拟变量)可以gmnl作为社会人口学特征输入公式的错误,而只能输入数字变量?

类似的 R 包 Rchoice 也是如此。

是否有可能没有错误,但是我无法发现的公式还有其他问题?

MIXL_socdem_IX <- gmnl(formula = route~ cost + total_time |1 |0 |Gender-1, data = dataIX_MIXL, model = "mixl", ranp=c(cost="ln", total_time="n"), mvar = list(cost=c("Gender"), total_time=c("Gender")), panel=T, R=200, haltons = list("primes"= c(3,5), drop= rep(10,2)), method="bfgs", print.init = T)

错误是:

gmnl 中的错误(公式 = 路线 ~ 成本 + 总时间 | 1 | 0 | 性别 - 1,:公式中未指定以下变量:性别

谢谢 R 版本 3.5.1 (2018-07-02) -- “羽毛喷雾”

      ind     alt route  cost total_time chid Gender Freq_2.4w
1.A     1 Egnatia FALSE -11.0          9    1      0         0
1.B     1     PEO  TRUE -12.0          9    1      0         0
2.A     1 Egnatia FALSE -11.0          9    2      0         0
2.B     1     PEO  TRUE -12.0         10    2      0         0
3.A     1 Egnatia  TRUE -10.5          9    3      0         0
3.B     1     PEO FALSE -12.0          9    3      0         0
4.A     1 Egnatia  TRUE -10.5          9    4      0         0
4.B     1     PEO FALSE -12.0         10    4      0         0
5.A     1 Egnatia  TRUE -10.0          9    5      0         0
5.B     1     PEO FALSE -12.0          9    5      0         0
6.A     1 Egnatia FALSE -11.0          9    6      0         0
6.B     1     PEO  TRUE -12.0         11    6      0         0
7.A     1 Egnatia  TRUE -10.0          9    7      0         0
7.B     1     PEO FALSE -12.0         10    7      0         0
8.A     1 Egnatia  TRUE -10.5          9    8      0         0
8.B     1     PEO FALSE -12.0         11    8      0         0
9.A     1 Egnatia  TRUE -10.0          9    9      0         0
9.B     1     PEO FALSE -12.0         11    9      0         0
10.A    2 Egnatia FALSE -13.5          5   10      0         1
10.B    2     PEO  TRUE  -8.0          6   10      0         1
11.A    2 Egnatia FALSE -13.5          5   11      0         1
11.B    2     PEO  TRUE  -8.0          7   11      0         1
12.A    2 Egnatia FALSE -13.0          5   12      0         1
12.B    2     PEO  TRUE  -8.0          6   12      0         1
13.A    2 Egnatia FALSE -13.0          5   13      0         1
13.B    2     PEO  TRUE  -8.0          7   13      0         1
14.A    2 Egnatia FALSE -12.5          5   14      0         1
14.B    2     PEO  TRUE  -8.0          6   14      0         1
15.A    2 Egnatia FALSE -13.5          5   15      0         1
15.B    2     PEO  TRUE  -8.0          8   15      0         1
16.A    2 Egnatia FALSE -12.5          5   16      0         1
16.B    2     PEO  TRUE  -8.0          7   16      0         1
17.A    2 Egnatia FALSE -13.0          5   17      0         1
17.B    2     PEO  TRUE  -8.0          8   17      0         1
18.A    2 Egnatia FALSE -12.5          5   18      0         1
18.B    2     PEO  TRUE  -8.0          8   18      0         1
19.A    3 Egnatia FALSE -13.0         12   19      0         0
19.B    3     PEO  TRUE -10.0          9   19      0         0
20.A    3 Egnatia FALSE -13.0         12   20      0         0
20.B    3     PEO  TRUE -10.0         10   20      0         0
21.A    3 Egnatia  TRUE -12.5         12   21      0         0
21.B    3     PEO FALSE -10.0          9   21      0         0
22.A    3 Egnatia  TRUE -12.5         12   22      0         0
22.B    3     PEO FALSE -10.0         10   22      0         0
23.A    3 Egnatia FALSE -12.0         12   23      0         0
23.B    3     PEO  TRUE -10.0          9   23      0         0
24.A    3 Egnatia FALSE -13.0         12   24      0         0
24.B    3     PEO  TRUE -10.0         11   24      0         0
25.A    3 Egnatia  TRUE -12.0         12   25      0         0
25.B    3     PEO FALSE -10.0         10   25      0         0
26.A    3 Egnatia  TRUE -12.5         12   26      0         0
26.B    3     PEO FALSE -10.0         11   26      0         0
27.A    3 Egnatia  TRUE -12.0         12   27      0         0
27.B    3     PEO FALSE -10.0         11   27      0         0
28.A    4 Egnatia FALSE -16.0          9   28      0         1
28.B    4     PEO  TRUE -10.0          9   28      0         1
29.A    4 Egnatia FALSE -16.0          9   29      0         1
29.B    4     PEO  TRUE -10.0         10   29      0         1
30.A    4 Egnatia FALSE -15.5          9   30      0         1
30.B    4     PEO  TRUE -10.0          9   30      0         1
31.A    4 Egnatia FALSE -15.5          9   31      0         1
31.B    4     PEO  TRUE -10.0         10   31      0         1
610.A  69 Egnatia  TRUE -12.0          9  610      0         0
610.B  69     PEO FALSE -11.0         10  610      0         0
611.A  70 Egnatia FALSE -11.0          9  611      1         0
611.B  70     PEO  TRUE -10.0         10  611      1         0
612.A  70 Egnatia FALSE -11.0          9  612      1         0
612.B  70     PEO  TRUE -10.0         11  612      1         0
613.A  70 Egnatia  TRUE -10.5          9  613      1         0
613.B  70     PEO FALSE -10.0         10  613      1         0
614.A  70 Egnatia  TRUE -10.5          9  614      1         0
614.B  70     PEO FALSE -10.0         11  614      1         0
615.A  70 Egnatia  TRUE -10.0          9  615      1         0
615.B  70     PEO FALSE -10.0         10  615      1         0
616.A  70 Egnatia FALSE -11.0          9  616      1         0
616.B  70     PEO  TRUE -10.0         12  616      1         0
617.A  70 Egnatia  TRUE -10.0          9  617      1         0
617.B  70     PEO FALSE -10.0         11  617      1         0
618.A  70 Egnatia  TRUE -10.5          9  618      1         0
618.B  70     PEO FALSE -10.0         12  618      1         0
619.A  70 Egnatia  TRUE -10.0          9  619      1         0
619.B  70     PEO FALSE -10.0         12  619      1         0
620.A  71 Egnatia FALSE -11.0          9  620      0         0
620.B  71     PEO  TRUE  -8.0          9  620      0         0
621.A  71 Egnatia FALSE -11.0          9  621      0         0
621.B  71     PEO  TRUE  -8.0         10  621      0         0
622.A  71 Egnatia FALSE -10.5          9  622      0         0
622.B  71     PEO  TRUE  -8.0          9  622      0         0
623.A  71 Egnatia FALSE -10.5          9  623      0         0
623.B  71     PEO  TRUE  -8.0         10  623      0         0
624.A  71 Egnatia FALSE -10.0          9  624      0         0
624.B  71     PEO  TRUE  -8.0          9  624      0         0
625.A  71 Egnatia FALSE -11.0          9  625      0         0
625.B  71     PEO  TRUE  -8.0         11  625      0         0
626.A  71 Egnatia FALSE -10.0          9  626      0         0
626.B  71     PEO  TRUE  -8.0         10  626      0         0
627.A  71 Egnatia  TRUE -10.5          9  627      0         0
627.B  71     PEO FALSE  -8.0         11  627      0         0
628.A  71 Egnatia  TRUE -10.0          9  628      0         0
628.B  71     PEO FALSE  -8.0         11  628      0         0

structure(list(ind = c(1L, 1L, 1L, 1L, 1L, 1L), route = c(FALSE, 
TRUE, FALSE, TRUE, TRUE, FALSE), Freq_2.4w = c(0L, 0L, 0L, 0L, 
0L, 0L), Gender = c(0L, 0L, 0L, 0L, 0L, 0L), alt = c("Egnatia", 
"PEO", "Egnatia", "PEO", "Egnatia", "PEO"), cost = c(-11, -12, 
-11, -12, -10.5, -12), total_time = c(9, 9, 9, 10, 9, 9), chid = c(1L, 
1L, 2L, 2L, 3L, 3L)), row.names = c("1.A", "1.B", "2.A", "2.B", 
"3.A", "3.B"), class = c("mlogit.data", "data.frame"))
4

1 回答 1

2

这是因为Gender是一个因子变量。R 将自动设置Gender=0为基线,并Gender=1使用名为 的变量估计效果Gender1

诚然没有测试过,但这应该可以工作:

MIXL_socdem_IX <- gmnl(formula = route~ cost + total_time |1 |0 |Gender-1, data = dataIX_MIXL, model = "mixl", ranp=c(cost="ln", total_time="n"), mvar = list(cost=c("Gender1"), total_time=c("Gender1")), panel=T, R=200, haltons = list("primes"= c(3,5), drop= rep(10,2)), method="bfgs", print.init = T)

对于看到这篇文章的其他人,例如,如果您有四个性别类别,编码为 0、1、2、3,您将设置:

mvar = list(cost=c("Gender1","Gender2","Gender3"),total_time=("Gender1","Gender2","Gender3"))
于 2020-10-13T20:37:20.527 回答