我的问题是如何在rjags中进行贝叶斯两因素方差分析,每组具有独立的方差。以下代码正在使用R中的warpbreaks数据。我看不到错误是什么。
#two-way cell-means model with different variances
mod4_string = " model {
for( i in 1:length(y)) {
y[i] ~ dnorm(mu[woolGrp[i], tensGrp[i]], sig[grp[i]])
}
for (j in 1:max(woolGrp)) {
for (k in 1:max(tensGrp)) {
mu[j,k] ~ dnorm(0.0, 1.0/1.0e6)
}
}
for (l in 1:6) {
sig[l] ~ 1/dgamma(1,2,2)
}
} "
str(warpbreaks)
data4_jags = list(y=log(warpbreaks$breaks), woolGrp=as.numeric(warpbreaks$wool), tensGrp=as.numeric(warpbreaks$tension))
params4 = c("mu", "sig")
mod4 = jags.model(textConnection(mod4_string), data=data4_jags, n.chains=3)
update(mod4, 1e3)
mod4_sim = coda.samples(model=mod4,
variable.names=params4,
n.iter=5e3)
mod4_csim = as.mcmc(do.call(rbind, mod4_sim))