我希望你们中的一些人对Sermas和Colias的R包ChoiceModelR
有一点经验,以估计一个Hierarchical Bayes Multinomial Logit Model。实际上,我是R和Hierarchical Bayes的新手。但是,我试图通过使用Sermas和Colias在帮助文件中提供的脚本来获得一些估计值。我有一个与它们使用相同结构的数据集(ID,选择集,替代,自变量和选择变量)。我有四个独立变量,所有这些变量都是二进制编码的分类变量,没有一个受到限制。我有八个选择集,每个集合中有三个选项,以及一个无选择选项作为第四选择。我尝试了以下脚本:
library (ChoiceModelR)
data <- read.delim("Z:/KLU/CSR/CBC/mp3_vio.txt")
xcoding=c(0,0,0,0)
mcmc = list(R = 10, use = 10)
options = list(none=FALSE, save=TRUE, keep=1)
attlevels=c(2,2,2,2)
c1=matrix(c(0,0,0,0),2,2)
c2=matrix(c(0,0,0,0),2,2)
c3=matrix(c(0,0,0,0),2,2)
c4=matrix(c(0,0,0,0),2,2)
constraints = list(c1, c2, c3, c4)
out = choicemodelr(data, xcoding, mcmc = mcmc, options = options, constraints = constraints)
并收到以下错误消息:
Error in 1:nalts[i] : result would be too long a vector
此外:有50个或更多警告(使用warnings()
查看前50个警告)。上述警告如下:
In max(temp[temp[, 2] == j, 3]) : no non-missing arguments to max; returning -Inf
In max(temp[temp[, 2] == j, 3]) : no non-missing arguments to max; returning -Inf
实际上,我不知道出了什么问题,因为我使用相同的数据结构,即使我有更多的自变量,更多的选择集,以及选择集中的更多选择。如果有人可以在黑暗中发光,我会很棒。
答案 0 :(得分:2)
我知道这可能因为您很久以前发布而没有帮助,但如果将来再次发布,这可能会有用。
出现此错误的最常见原因之一(根据我的经验),方案变量或替代变量在数据中不按升序排列。
id scenario alt x1 ... y
1 1 1 4 1
1 1 2 1 0
1 3 1 4 2
1 3 2 5 0
2 1 4 3 1
2 1 5 1 0
2 2 1 4 2
2 2 2 3 0
此数据集将为您提供错误,因为场景和替代变量必须是升序,并且它们不得跳过任何值。为了完全重申我的意思,必须按如下方式对场景和alt变量进行重新排序才能工作:
id scenario alt x1 ... y
1 1 1 4 1
1 1 2 1 0
1 2 1 4 2
1 2 2 5 0
2 1 1 3 1
2 1 2 1 0
2 2 1 4 2
2 2 2 3 0
我经常使用ChoiceModelR,这就是过去导致这些错误的原因。如果你有一个github帐户,你也可以在那里发布你的数据(或修改过的数据),如果你想让其他用户看看。