我有一个参数化的线性高斯贝叶斯网络,我正在尝试使用rjags
. 我可以为一次观察做到这一点,但不知道如何传递多个观察。这是一个例子
library(rjags)
library(coda)
初始模型
mod <- textConnection("model {
mpg.hat <- (34.96055404 - 3.35082533* wt - 0.01772474* disp)
wt ~ dnorm(3.21725, 1/0.9784574^2)
disp ~ dnorm(230.7219, 1/123.9387^2)
mpg ~ dnorm(mpg.hat, 1/2.916555^2)
}")
# Evaluate and get prediction when wt=1 and disp is hidden
m <- jags.model(mod, n.chains = 1, n.adapt = 1000, data=list(wt=1, disp=NA))
update(m, 10000)
cs <- coda.samples(m, c("mpg", "wt", "disp"), 1e5)
summary(cs)
这可以按预期工作,但是,我有多行数据要为其生成预测。如果我尝试扩展data=list(
参数以包含更多行,则会引发错误。因此,在重新运行模型文本和以下命令后,我得到了错误
m <- jags.model(mod, n.chains = 1, n.adapt = 1000, data=list(wt=1:2, disp=1:2))
jags.model 中的错误(mod,n.chains = 1,n.adapt = 1000,data = list(wt = 1:2
,:节点 dnorm 中的错误(230.722,(a1/(a123.939^2)))
Node::setValue 中的长度不匹配
我如何将其扩展到更多观察?