如何解决mlogit边际效应错误?

时间:2015-03-23 03:57:29

标签: r effects multinomial mlogit marginal-effects

在R中成功运行mlogit模型后,我在尝试获得边际效应时出错:

"Error in predict.mlogit(object, data) : the number of rows of the data.frame should be a multiple of the number of alternatives"

我甚至试图在源代码中更改第16行,如另一篇文章所述,但仍然会得到相同的错误。任何帮助,将不胜感激。 我的所有变量都不是特定的替代品。我有4个选择。

#**model:**(ran successfully) 
m<-summary(mlogit(TypOfCr~1|OneOrTwoVeh|1,data=mnldata,reflevel="PDO"))
#**means:**(ran successfully)
z <- with(mnldata, data.frame(OneOrTwoVeh=mean(OneOrTwoVeh)))
#**effects**: effects(m,covariate="OneOrTwoVeh",data=z)
effects(m,covariate="OneOrTwoVeh",data=z)

Error in predict.mlogit(object, data) : 
  the number of rows of the data.frame should be a multiple of the number of alternatives

以下是网站上发布的类似问题的链接,但我很难找到解决方案。 marginal effects of mlogit in R 提前致谢

2 个答案:

答案 0 :(得分:0)

effects()期望模型对象作为其第一个参数。但m不是模型对象。相反,它是在模型对象上运行summary()函数的输出。而是尝试

m <- mlogit(TypOfCr~1|OneOrTwoVeh|1,data=mnldata,reflevel="PDO") 

(即,创建模型对象,而不是模型对象的摘要)并将其提供给effects()

答案 1 :(得分:0)

试试这个:

z <- with(mnldata, data.frame(OneOrTwoVeh = tapply(OneOrTwoVeh, index(m)$alt, mean)))