假设我们有两个向量,它们指示数据点属于哪个房子和哪个人(这些是您需要创建的东西,R
您可以通过将因子更改为数字来制作这些东西as.numeric
)。因此,如果我们有来自 2 个房子和 5 个个人的 10 个数据点,它们会看起来像这样。
house_vec = c(1,1,1,1,1,1,2,2,2,2)
# 房子 1 6 分,房子 2 4
ind_vec = c(1,1,2,2,3,3,4,4,5,5)
# 每个人都有两个观察结果
N = 10
# 数据点数
所以,上面的向量告诉我们第一宫有 3 个个体(因为house_vec
are1
的前 6 个元素和ind_vec
范围从 1 到 3 的前 6 个元素),第二个宫有 2 个个体(最后 4 个元素house_vec
是 2的最后 4 个元素ind_vec
是 4 和 5)。使用这些向量,我们可以在 JAGS 中进行嵌套索引来创建您的随机效应结构。像这样的东西就足够了。这些向量将在您必须包含的 data.list 中提供TestResult
for(i in 1:N){
mu_house[house_vec[i]] ~ dnorm(0, taua)
mu_ind[ind_vec[i]] ~ dnorm(mu_house[house_vec[i]], taub_a)
}
# priors
taua ~ dgamma(0.01, 0.01) # precision
sda <- 1 / sqrt(taua) # derived standard deviation
taub_a ~ dgamma(0.01, 0.01) # precision
sdb_a <- 1 / sqrt(taub_a) # derived standard deviation
您只需要包含mu_ind
在线性预测器中,因为它是由 通知的mu_house
。所以模型的其余部分看起来像。
for(i in 1:N){
logit(p[i]) <- beta0 + beta1 * t + mu_ind[ind_vec[i]]
TestResult[i] ~ dbern(p[i])
}
然后,您需要为beta0
和设置先验beta1