改了不少地方,
这个模型很容易产生"Trap 66 (postcondition violated)"
所以也改了很多priors
这个模型我并不熟悉,
所以我是用gen inits产生初始值
如果你有把握,可以自行提供.
##########
MODEL
{
# DINA MODEL
for (i in 1:N) {
theta~dnorm(0,0.01)
# compute alpha
for (k in 1:M) {
logit(alpha.p[i,k])<-1.7*(theta-L0[k])
alpha[i,k]~dbern(alpha.p[i,k])
}
}
# compute eta
for (j in 1:N) {
for (i in 1:T) {
for (k in 1:M) {
eta3[i,j,k]<-pow(alpha[j,k],q[i,k])
}
eta[i,j]<-eta3[i,j,1]*eta3[i,j,2]*eta3[i,j,3]*eta3[i,j,4]*eta3[i,j,5]
p[i,j]<-pow(g,(1-eta[i,j]))*pow((1-s),eta[i,j])
response[j,i]~dbern(p[i,j])
}
}
#priors
for (j in 1:T) {
s[j]~dunif(0,1)
g[j]~dunif(0,1)
}
for (k in 1:M) {
L0[k]~dlnorm(0,1)
}
}
HO-dina.bug