初学WinBUGS,请教一个问题。这是我的模型,check model 时候说“expected camma”,不知道什么原因。能帮忙看看嘛?此外我想通过语句算DIC,能帮忙写具体代码吗?谢谢啦!
model {
# trick using ones for specifying the CTB and estimating parameters
C <- 10000 # this just has to be large enough to ensure all pp's < 1
for (i in 1:N) {
ones <- 1
ones ~ dbern(pp)
pp <- (pi*a/b*pow(y/b,a*p-1)/pow(1+pow(y/b,a),p+q)+(1-pi)*a/k/b*pow(y/k/b,a*p-1)/pow(1+pow(y/b/k,a),p+q))/(exp(loggam(p))*exp(loggam(q))/exp(loggam(p+q)))/ C
#likelihood for observaion y using for goodness of fit measure logl
l<-log((pi*a/b*pow(y/b,a*p-1)/pow(1+pow(y/b,a),p+q)+(1-pi)*a/k/b*pow(y/k/b,a*p-1)/pow(1+pow(y/b/k,a),p+q))/(exp(loggam(p))*exp(loggam(q))/exp(loggam(p+q))))
#frequency for y use for A^2 measure
v<- rank(y,i)/N
}
#prior
a~dgamma(0.01,0.01)
b~dgamma(0.01,0.01)
p~dgamma(0.01,0.01)
q~dgamma(0.01,0.01)
pi~dgamma(0.01,0.01)
k~dgamma(0.01,0.01)
#logl
logl<-sum(l)
#DIC
#A^2
for(i in 1:N){
vv<-(2*i-1)*(log(v)+log(1-v[N-i+1]))
}
A2<- -N-1/N*sum(vv)
}