【问题标题】:mlogit: missing value where TRUE/FALSE neededmlogit:需要 TRUE/FALSE 的缺失值
【发布时间】:2014-12-03 05:04:01
【问题描述】:

我有来自离散选择实验 (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 item 是选择集 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

我已确保没有丢失数据,并且每个选项集都有 1 个选定的选项。 当模型在具有完全相同数据集的 Stata 中运行良好时,关于我为什么会收到此错误的任何想法?我可能在某处误读了 mlogit 语法。如果有帮助,我的 Stata 语法是: asclogit 结果 cul fit rel ind fit led prj, case(chid) Alternatives(sector)

【问题讨论】:

    标签: r mlogit


    【解决方案1】:

    在这里回答我自己的问题。

    R mlogit 无法处理选择集中没有选择的选项。 R 还需要正确排序的数据,选择集中的每个选项都必须在一行中。由于一些数据管理,我没有这样做。有趣的是,Stata 可以处理这两种情况,这就是我的 Stata 命令起作用的原因。

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

    【讨论】:

    • 抱歉再次挖掘它,但我无法弄清楚在有不同选择集时要做什么。 R是否要求每个替代选择设置有一行,即使该设置中没有替代选择? Stata 会处理这个问题吗?
    【解决方案2】:

    您可能需要使用mlogit.data() 来调整数据。 ?mlogit 有一个例子。希望对您有所帮助。

    【讨论】:

    • 我试过了,结果一样。我还在上面的 R 代码中提供了这些参数。
    猜你喜欢
    • 2019-03-07
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    相关资源
    最近更新 更多