R使用mlogit包运行mixed logit模型出现Formula error报错如何解决
错误原因
你的报错由模型公式不符合mlogit包的语法规范导致:mlogit的公式默认采用三段式结构,用竖线|分隔三类变量:
- 竖线左侧:随备选方案不同而变化的变量
- 第一个竖线右侧:随选择情境/个体变化、同一情境下所有备选方案取值一致的变量
- 第二个竖线右侧:同时随个体和备选方案变化的变量
你写的is_choice ~ 1只指定了第一部分的截距项,没有对后续部分做声明,公式解析时读取到空内容就会触发语法错误。
解决方法
仅运行截距项模型
如果不需要引入其他解释变量,在公式末尾加| 0声明后续部分无变量即可正常运行:
mlogit(is_choice ~ 1 | 0, sim, shape = "long", alt.var = "site", chid.var = "trip", id.var = "angler")
适配混合Logit建模需求
你模拟数据中包含随方案变化的term和方案标识变量term2,如果要估计term的随机系数,参考写法如下:
# 混合Logit模型,指定term的系数服从正态分布 mlogit(is_choice ~ term + term2 | 0, data = sim, shape = "long", alt.var = "site", chid.var = "trip", id.var = "angler", rpar = c(term = "n"))
内容的提问来源于stack exchange,提问作者Charlie
相关产品推荐
相关产品推荐

