我试图使用 mlogit 包估计 R 中的混合效应 logit。如果有人能指出我的错误在哪里,我将不胜感激。
我的原始数据有一个面板结构——每个人在 6 个不同的场景中做出选择。每次他有 4 个选项(3 个品牌,没有得到任何东西)。也就是说,数据集中的每个人都有 24 行。
我几乎没有个人特定的人口统计数据。还有一些特定于替代品的特征:一个是价格(每种情况下的每个替代品都不同),其他只是替代品特定的虚拟变量。这些假人表示同一产品的特定品牌。每个虚拟变量的系数根据人口特征而变化。
我已经阅读了 Yves Croissant 的关于 R 中多项式 logit 模型估计的 pdf,并且能够将数据调整为适合 mlogit 估计的格式。
data.logit = mlogit.data(data, shape = "long",
alt.var = "alt_id",
choice = "pick",
id.var = "idnum",
sep = "")
me.logit = mlogit (pick ~ price | gender + age + educ + income,
data.logit,
reflevel = 4,
rpar = c("brand1:(intercept)" = "n",
"brand2:(intercept)" = "n",
"brand3:(intercept)" = "n"),
R = 500,
halton = NA,
panel = TRUE)
summary(me.logit)
我得到的结果对我来说没有意义。对于两个品牌,替代特定常数(假人系数)是负数,价格系数显然也是负数。然后这些品牌的 WTP 变成负数,这绝对是错误的。
我认为我在使用时分配参数的方式可能存在错误mlogit.data
。