我正在尝试用 JAGS 编写一个简单的模型:
set.seed(123)
x1 <- rnorm(100)
x2 <- rnorm(100)
z <- 1.0 + x1*0.1 - x2*0.5 + rnorm(100)
y <- z
y[z < 0] <- 1
y[z >= 0 & z < 1] <- 2
y[z >= 1 & z < 1.5] <- 3
y[z >= 1.5] <- 4
jagsdf <- list(y=y,x1=x1,x2=x2)
params <- c("alpha","beta")
mcmcmodel <- jags.model(file="ordlog.jag",data=jagsdf,n.chains=3)
使用ordlog.jag如下:
model{
for(i in 1:100){
mu[i] <- beta[1]*x1[i] + beta[2]*x2[i]
logit(Q[i,1]) <- alpha[1]-mu[i]
p[i,1] <- Q[i,1]
for(j in 2:3){
logit(Q[i,j]) <- alpha[j]-mu[i]
p[i,j] <- Q[i,j] - Q[i,j-1]
}
p[i,4] <- 1 - Q[i,3]
y[i] ~ dcat(p[i,])
}
## priors over thresholds
for(r in 1:3){
alpha0[r] ~ dnorm(0,1.0E-3)
}
alpha <- sort(alpha0)
for(j in 1:2){
beta[j] ~ dnorm(0,1.0E-3)
}
}
但我收到以下错误:
Error in node y[3]
Observed node inconsistent with unobserved parents at initialization
我怀疑这是由于初始化,但我无法以某种方式正确设置它。有任何想法吗?