mlogit:缺少需要TRUE/FALSE的值

mlogit:缺少需要TRUE/FALSE的值,r,mlogit,R,Mlogit,我有来自离散选择实验(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

我有来自离散选择实验(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
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")
以下是我得到的错误:

Error in if (abs(x - oldx) < ftol) { : 
  missing value where TRUE/FALSE needed
if(abs(x-oldx) 我已经确保没有丢失的数据,并且每个选项集都有一个选择的选项。 当模型使用完全相同的数据集在Stata中运行正常时,您知道我为什么会出现此错误吗?我可能在某些地方误读了mlogit语法。如果有帮助,我的Stata语法是:
asclogit结果cul fit rel ind fit led prj,case(chid)替代方案(扇区)

您可能需要使用
mlogit.data()
来塑造数据。在
?mlogit
中有一个示例。希望这会有所帮助。

回答我自己的问题,我已经找到了答案

当选择集中没有选择任何备选方案时,R mlogit无法处理。R还需要正确排序数据,选择集中的每个备选方案必须在一行中。由于一些数据管理,我没有这样做。有趣的是,Stata可以处理这两种情况,因此我的Stata命令可以工作


另外,对于那些感兴趣的人来说,Stata的asclogit和R的mlogit给出了完全相同的结果。发生这种情况时总是很好。

我尝试过,同样的结果。我在上面的R代码中也提供了这些参数。很抱歉,再次挖掘这个问题,但我不知道当有不同的选择集时该怎么办。R是否要求每个选择集有一行备选方案设置,即使设置中没有备选方案?Stata是否处理此问题?