我有一份离散选择实验(DCE)的数据,研究不同行业人才的招聘偏好,并将其格式化为长格式。我想使用mlogit进行建模。我已将数据导出,并可以成功地在Stata中使用asclogit命令运行模型,但我在R中运行时遇到了问题。
以下是前25行数据的快照:
以下是前25行数据的快照:
> data[1:25,]
userid chid item sector outcome cul fit ind led prj rel
1 11275 211275 2 1 1 0 1 0 1 1 1
2 11275 211275 2 2 0 1 0 0 0 0 0
3 11275 211275 2 0 0 0 0 1 1 0 1
4 11275 311275 3 0 1 1 1 0 0 0 1
5 11275 311275 3 2 0 0 1 0 0 0 1
6 11275 311275 3 1 0 0 1 0 0 0 0
7 11275 411275 4 0 0 1 0 1 1 0 0
8 11275 411275 4 2 1 0 1 1 1 1 0
9 11275 411275 4 1 0 0 1 0 1 0 0
10 11275 511275 5 1 1 1 0 1 0 1 1
11 11275 511275 5 2 0 0 0 1 1 0 0
12 11275 511275 5 0 0 0 0 1 1 1 0
13 11275 611275 6 0 0 0 1 1 0 0 1
14 11275 611275 6 1 1 1 1 1 0 0 1
15 11275 611275 6 2 0 1 1 1 0 1 0
16 11275 711275 7 1 0 0 0 0 0 1 0
17 11275 711275 7 0 0 1 0 0 1 1 0
18 11275 711275 7 2 1 1 0 0 1 1 1
19 11275 811275 8 0 1 0 1 0 0 1 1
20 11275 811275 8 1 0 1 0 1 1 1 1
21 11275 811275 8 2 0 0 0 0 0 1 1
22 11275 911275 9 0 0 1 1 0 0 1 0
23 11275 911275 9 2 1 1 1 1 1 0 1
24 11275 911275 9 1 0 1 0 1 1 0 0
25 11275 1011275 10 0 0 0 0 0 0 0 0
userid和chid是因子变量,其余为数值型变量。这些变量的含义如下: Userid是唯一的回答者ID。 chid是每个回答者的唯一选择集ID。 item是选择集ID(在回答者之间重复)。 sector是备选项(3个不同的行业)。 outcome是回答者在给定的选择集中选择的备选项。 cul-rel是二元因子变量,根据实验设计,在备选项之间变化。
以下是我的mlogit语法:
mlogit(outcome~cul+fit+ind+led+prj+rel,shape="long",
data=data,id.var=userid,chid.var="chid",
choice=outcome,alt.var="sector")
这是我得到的错误:
Error in if (abs(x - oldx) < ftol) { :
missing value where TRUE/FALSE needed
我已经确保没有数据丢失,并且每组选择都有恰好1个选定的替代品。 为什么在 Stata 中使用完全相同的数据集运行模型时,会出现此错误呢?我可能在某个地方错误地阅读了 mlogit 语法。如果有帮助的话,我的 Stata 语法是: asclogit outcome cul fit rel ind fit led prj,case(chid) alternatives(sector)