我使用R2Winbug
在WinBugs中使用ZINB,这是WinBugs模型代码:
Model{
for(i in 1:n){
injections[i] ~ dnegbin(p[i],r)
p[i] <- r/r+ramda[i]*(1-u[i])
u[i] ~ dbern(p0[i])
logit(p0[i]) <- alpha0 + alpha1*hiv[i] + alpha2*parteners[i] +
alpha3*married[i] + alpha4*divorced[i] + alpha5*mage[i]
log(ramda[i]) <- beta0 + beta1*hiv[i] + beta2*parteners[i] +
beta3*married[i] + beta4*divorced[i] + beta5*mage[i]
}
# priors for missing covariates
for(i in 1:n){
parteners[i] ~ dpois(mu)
hiv[i] ~ dbin(q,1)
}
# priors
q ~ dunif(0.0,1.0)
r <- exp(logalpha)
logalpha ~ dnorm(0,1.0E-8)
beta0 ~ dnorm(0,1.0E-8); beta1 ~ dnorm(0,1.0E-8)
beta2 ~ dnorm(0,1.0E-8); beta3 ~ dnorm(0,1.0E-8)
beta4 ~ dnorm(0,1.0E-8); beta5 ~ dnorm(0,1.0E-8)
alpha0 ~ dnorm(0,1.0E-8); alpha1 ~ dnorm(0,1.0E-8); alpha2 ~ dnorm(0,1.0E-8)
alpha3 ~ dnorm(0,1.0E-8); alpha4 ~ dnorm(0,1.0E-8); alpha5 ~ dnorm(0,1.0E-8)
mu ~ dgamma(0.01, 0.01)
}
现在在调用bugs函数之后,模型被认为是正确的,数据也被正确加载,但是当给出首字母时,它表示二项式hiv [16]的值必须是整数!我该如何纠正这个问题?