提问人:mmm coder 提问时间:7/24/2023 最后编辑:jay.sfmmm coder 更新时间:7/24/2023 访问量:41
使用 mlogit 在多项式混合 logit 模型中变化的问题
Issue with varying in multinomial mixed logit model using mlogit
问:
我正在尝试运行随机截距多项式 logit 模型
编号 | 分辨率 | 州 | Index_1 | Index_2 |
---|---|---|---|---|
6 | 安定 | 印第安纳州 | 43.3267816 | 49.2 |
8 | 安定 | 特拉华州 | 72.6980536 | 48.5 |
9 | 解雇 | 特拉华州 | 72.6980536 | 48.5 |
10 | 安定 | 纽约 | 72.0173234 | 48.4 |
11 | 留 | 得克萨斯州 | 84.8092534 | 49.8 |
结果变量为“分辨率”,Index_1和Index_2嵌套在状态中。
无论在尝试设置数据时形状是设置为“宽”还是“长”,我都会收到此错误: 猜测错误(变化): 未能从其名称中猜测时变变量
mlogit_data <- mlogit.data(data, shape = "wide", choice = "_Resolution", varying = 3:5, alt.levels = NULL)
有谁知道如何解决这个问题?
答:
0赞
jay.sf
7/24/2023
#1
作为初步说明,如果您想计算多项式混合 logit 模型,这里有一个非常相关的答案,您可能会感兴趣。
无论如何,您在指定参数时可能会打错字。此外,您需要使用参数,该参数指的是在名称中附加字符后缀,默认值为 but you have ;这是必需的,以便内部调用的人可以正确猜测名称(另请参阅 )。sep=
"."
"_"
reshape
?reshape
mlogit_data <- mlogit::mlogit.data(dat,
choice="Resolution",
shape="wide",
varying=4:5, ## refers to the Index_* columns
sep='_')
mlogit_data
# ID Resolution STATE alt Index chid idx
# 1 6 FALSE Indiana 1 43.32678 1 1:1
# 2 6 FALSE Indiana 2 49.20000 1 1:2
# 3 8 FALSE Delaware 1 72.69805 2 2:1
# 4 8 FALSE Delaware 2 48.50000 2 2:2
# 5 9 FALSE Delaware 1 72.69805 3 3:1
# 6 9 FALSE Delaware 2 48.50000 3 3:2
# 7 10 FALSE New York 1 72.01732 4 4:1
# 8 10 FALSE New York 2 48.40000 4 4:2
# 9 11 FALSE Texas 1 84.80925 5 5:1
# 10 11 FALSE Texas 2 49.80000 5 5:2
#
# ~~~ indexes ~~~~
# chid alt
# 1 1 1
# 2 1 2
# 3 2 1
# 4 2 2
# 5 3 1
# 6 3 2
# 7 4 1
# 8 4 2
# 9 5 1
# 10 5 2
# indexes: 1, 2
但是,出于某种原因,他们弃用了该函数并调用了该函数。mlogit::mlogit.data
dfidx::dfidx
dfidx::dfidx(dat, idx=c('ID', 'STATE'))
# Resolution Index_1 Index_2 idx
# 1 Settled 43.32678 49.2 6:iana
# 2 Settled 72.69805 48.5 8:ware
# 3 Dismissed 72.69805 48.5 9:ware
# 4 Settled 72.01732 48.4 10:York
# 5 Stay 84.80925 49.8 11:exas
#
# ~~~ indexes ~~~~
# ID STATE
# 1 6 Indiana
# 2 8 Delaware
# 3 9 Delaware
# 4 10 New York
# 5 11 Texas
# indexes: 1, 2
评论
nnet::multinom()
VGAM::multinomial()
mlogit:mlogit