我在节点 sd[1] 中有错误,它说编译器中的父值无效。我正在使用 R 的“MASS”p 包中的“星系”数据的高斯模型。
library(rjags)
library(MASS)
library(mcsm)
data("galaxies")
summary(galaxies)
y = galaxies
ngroups = 2
jags_data = list(y=y, n=length(y), ngroups=ngroups)
gaussmodel = "
model {
for (i in 1:n) {
y[i] ~ dnorm(mu[z[i]], tau[z[i]])
z[i] ~ dcat(group_probs)
}
group_probs ~ ddirich(d)
for (j in 1:ngroups) {
mu_raw[j] ~ dnorm(0, 1E-6)
tau[j] ~ dgamma(0.001, 0.001)
sd[j] = pow(tau[j], -0.5)
d[j] = 2
}
mu = sort(mu_raw)
}
"
model = jags.model(textConnection(gaussmodel), data=jags_data,
n.chains=4)
update(model,n.iter=1E4)
samples = coda.samples(model=model, variable.names=c("mu", "sd", "group_probs"), n.iter=1E4, thin=5)