R 如何解决mlogit边际效应误差?

R 如何解决mlogit边际效应误差?,r,effects,multinomial,mlogit,marginal-effects,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行,正如在另一篇文章中解释的那样,但仍然得到相同的错误。任何帮助都将不胜感激。 我的所有变量都不是特定于备选方案的。我有四种选择

在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行,正如在另一篇文章中解释的那样,但仍然得到相同的错误。任何帮助都将不胜感激。 我的所有变量都不是特定于备选方案的。我有四种选择

#**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
#**型号:*(运行成功)
m
effects()
需要一个模型对象作为其第一个参数。但是
m
不是模型对象。相反,它是在模型对象上运行
summary()
函数的输出。相反,尝试

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

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

z您好,谢谢您的回复。我只是按照你说的那样试了一下,但还是犯了同样的错误;data.frame中的行数应为备选方案数的倍数。在另一篇文章中,有一个问题与我的问题类似,一个人实际上克服了这个问题,他根据需要多次“复制”了“means”行,以创建一个矩阵,该矩阵的行数等于备选行数,不幸的是,我不知道如何做到这一点。有什么建议吗?有你提到的其他帖子的链接会很有帮助。此外,制作一个可复制的示例始终是一个好主意(请参阅)。这里有一个链接,用于一个类似的问题,其中的解决方案对我没有帮助。随机来到这里,在发布我的答案后意识到这篇文章已经有一年多的历史了。无论如何,这将为您提供每个备选方案的平均值。