我已经根据以下数据在 OpenBUGs 中实现了一个模型:
数据包括 10 项独立研究——2 种不同药物的 5 次试验(Med = 0 或 1),然后是该试验的感染参与者总数(感染)——以及试验的参与者总数。
bugsData(list(y = df$Infected, n = 10, J = 5 , t = df$Total, x = df$Med) , file="Bugs_Data.txt")
我的原始模型可以写成:
Y[i]|mu[i],t[i] ~ Bin(mu[i], t[i]), i = 1,.....10
logit(mu[i]) = Beta0 + Beta1*x[i]
我可以像这样在 OpenBUGS 中实现:
model {
## LIKELIHOOD
for (i in 1:n) {
y[i] ~ dbin(mu[i], t[i])
logit(mu[i]) <- Beta0 + Beta1*(x[i])
}
## NORMAL PRIORS
Beta0 ~ dnorm(0, 0.0001)
Beta1 ~ dnorm(0, 0.0001)
}
但是,然后我想实现一个分层模型,其中 s(i) 表示从观察 i 的列试验中进行的试验:
Y[i]|mu[i],t[i] ~ Bin(mu[i], t[i]), i = 1,.....10
logit(mu[i]) = Beta0,s(i) + Beta1*x[i]
Beta0,j ~ Normal(mu_bo, sigma2_b0), j = 1,....5
我已经尽我所能尝试了一个模型,但到目前为止还没有成功。
model {
## LIKELIHOOD
for (j in 1:J) {
for (i in 1:n) {
y[i] ~ dbin(mu[i], t[i])
logit(mu[i]) <- Beta0[j] + Beta1*(x[i])
Beta0[j] ~ dnorm(mu_b0, tau_b0)
}
}
## PRIORS
mu_b0 ~ dnorm(0, 0.0001)
tau_b0 ~ dgamma(0.0001, 0.0001)
sigma2_b0 <- 1 / tau_b0
Beta1 ~ dnorm(0, 0.0001)
}
当前模型无法按原样使用我的数据进行编译。