私はよく、既知のパラメーターを使用してシミュレートされたデータで JAGS モデルを実行します。オブジェクトのデフォルトのプロット方法が気に入っていますmcmc
。abline(v=TRUE_VALUE)
ただし、モデル化された for each パラメータを追加したいと思います。これにより、事後分布が妥当かどうかを簡単に確認できます。
もちろん、これを手動で行うことも、おそらく車輪を再発明して独自の関数を作成することもできます。しかし、既存の方法に基づいたエレガントな方法があるかどうか疑問に思っていました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)
。それを変更することは良い方法でしょうか?