我有来自离散选择实验(DCE)的数据,查看来自不同部门的个人的招聘偏好.我已经格式化为长格式.我想用mlogit建模.我已经导出了数据,并且可以使用asclogit命令在Stata中成功运行模型,但是我无法在R中运行它.
这是前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
Run Code Online (Sandbox Code Playgroud)
userid和chid是因子变量,其余是数字.变量:Userid是唯一的受访者ID chid是唯一的选择集ID每个受访者项目是选择集ID(他们在受访者中重复)部门是替代(3个不同的部门)结果是受访者在给定选择集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")
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Error in if (abs(x - oldx) < ftol) { :
missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)
我确保没有丢失的数据,并且每个选择集都有1个选择的备选方案.有关为什么我收到此错误的任何想法,当模型在Stata中使用完全相同的数据集运行正常时?我可能在某处误读了mlogit语法.如果它有帮助,我的Stata语法是:asclogit结果cul fit rel ind fit led prj,case(chid)alternative(sector)
我在想出来的时候在这里回答我自己的问题.
当选择集中没有替代选项时,R mlogit无法处理.R还需要正确排序的数据,选择集中的每个备选方案必须连续排列.由于一些数据管理,我没有这样做.有趣的是,Stata可以处理这两种情况,这就是我的Stata命令工作的原因.
另外,对于那些感兴趣的人,Stata的asclogit和R's mlogit给出了完全相同的结果.发生这种情况时总是很好.
| 归档时间: |
|
| 查看次数: |
2673 次 |
| 最近记录: |