我经常在具有已知参数的模拟数据上运行 JAGS 模型。我喜欢对象的默认绘图方法mcmc
。但是,我想abline(v=TRUE_VALUE)
为每个建模的参数添加一个。这可以让我快速检查后验是否合理。
当然,我可以手动执行此操作,或者可能重新发明轮子并编写我自己的函数。但我想知道是否有一种基于现有方法的优雅plot
方法。
这是一个工作示例:
require(rjags)
require(coda)
# simulatee data
set.seed(4444)
N <- 100
Mu <- 100
Sigma <- 15
y <- rnorm(n=N, mean=Mu, sd=Sigma)
jagsdata <- list(y=y)
jags.script <- "
model {
for (i in 1:length(y)) {
y[i] ~ dnorm(mu, tau)
}
mu ~ dnorm(0, 0.001)
sigma ~ dunif(0, 1000)
tau <- 1/sigma^2
}"
mod1 <- jags.model(textConnection(jags.script), data=jagsdata, n.chains=4,
n.adapt=1000)
update(mod1, 200) # burn in
mod1.samples <- coda.samples(model=mod1,
variable.names=c('mu', 'sigma'),
n.iter=1000)
plot(mod1.samples)
我只想abline(v=100)
为 mu 和abline(v=15)
sigma 运行类似的东西。当然,在许多其他示例中,我将有 5、10、20 个或更多感兴趣的参数。因此,我对能够为命名参数提供真值向量很感兴趣。
我看过了getAnywhere(plot.mcmc)
。修改它是一个好方法吗?