我的数据文件如下所示:
list(y=structure(.Data=c(26, 228, 31, ...)), .Dim=c(413,9))
假设此文件保存为“data.txt”。
如果我在“R2OpenBUGS”中工作,它允许我将数据作为文件传递而没有问题:
mcmc <- bugs(data = "data.txt", inits=...)
但是在JAGS中,如果我将数据作为“data.txt”传递,它会说:“数据必须是列表或环境”。这有什么问题?另外,如果没有办法解决它,有没有办法可以将数据读作R?
中的列表我的模特是:
model {
for (i in 1:413) {
for (j in 1:9) {
logy[i,j] <- log(y[i,j])
logy[i,j] ~ dnorm(m[i], s)
}
}
# priors
for (i in 1:413) {
m[i] ~ dgamma(0.001, 0.001)
}
s ~ dgamma(0.001, 0.001)
}
答案 0 :(得分:3)
7.0.4数据转换
JAGS允许数据转换,但语法与BUGS不同。 BUGS允许您在关系的左侧放置两次随机节点,如本例中的手册
for (i in 1:N) {
z[i] <- sqrt(y[i])
z[i] ~ dnorm(mu, tau)
}
这在JAGS中是禁止的。您必须将数据转换放在以关键字
开头的单独关系块中data
:
data {
for (i in 1:N) {
z[i] <- sqrt(y[i])
}
}
model {
for (i in 1:N) {
z[i] ~ dnorm(mu, tau)
}
...
}