3

在 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

以下是网络上发布的类似问题的链接,但我很难使用那里发布的解决方案。 mlogit 在 R 中的边际效应 在此 先感谢

4

2 回答 2

0

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

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

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

于 2015-03-23T04:21:25.870 回答
0

尝试这个:

z <- with(mnldata, data.frame(OneOrTwoVeh = tapply(OneOrTwoVeh, index(m)$alt, mean)))
于 2016-06-11T18:03:34.553 回答