我正在使用ideal
包中的函数rollcall
和pscl
,但是同一选民会根据数据集的顺序(在列表中)交替接收负号或正号值。由于我要在多个期间进行计算,因此我需要每年的行为保持一致。
有什么办法可以控制这方面的?
答案 0 :(得分:1)
好吧,所以看一下文档,您似乎可以使用priors
参数来指定要成为否定锚的立法者,以及要成为正锚的立法者。参见https://cran.r-project.org/web/packages/pscl/pscl.pdf
例如,假设您知道立法者1是最保守的,而立法者50是最保守的,则可以建立一个先验手段矩阵。根据文档,您未指定的任何内容都将使用默认优先级。
# 50 legislators
my_mean <- rep(0, 50)
my_mean[1] <- -3
my_mean[50] <- 3
现在,当您进入ideal
函数时,可以在befores参数中指定xp
,如下所示:
ideal(object, codes = object$codes,
dropList = list(codes = "notInLegis", lop = 0),
d = 1, maxiter = 10000, thin = 100, burnin = 5000,
impute = FALSE,
normalize = FALSE,
meanzero = normalize,
priors = list(xp = my_mean), # Here, all defaults used for other args
startvals = "eigen",
store.item = FALSE, file = NULL,
verbose=FALSE, use.voter=NULL)
没有一些数据,我无法对其进行测试,但这应该可以工作。另外,您不仅可以固定两个人,还可以拥有ifelse声明,并可以将优先级分配给一方:
my_mean <- ifelse(party == "Conservative", -3, 3)
或者类似的东西。我有上面here的示例,但它使用了rstan
。