可复现性
既然您已经完成(而且通过了!)一些马尔可夫链诊断,就可以着手最终定稿您的 RJAGS 模拟了。为此,可复现性至关重要。若要获得可复现的模拟输出,必须设置 RJAGS 随机数生成器的种子。这与基础 R 的做法不同。您不会使用 set.seed(),而是在"编译"模型时,通过 inits = list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = ___) 指定起始种子。
本练习是课程的一部分
使用 RJAGS 的贝叶斯建模
练习说明
将提供的代码运行几次。注意每次
summary()统计量都会变化。为了得到可复现的结果,请在
jags.model()中提供随机数生成器的inits,并将起始种子设置为 1989。再运行新代码几次。注意此时
summary()统计量不会变化!
交互式实操练习
通过完成这段示例代码来试试这个练习。
# COMPILE the model
sleep_jags <- jags.model(textConnection(sleep_model), data = list(Y = sleep_study$diff_3))
# SIMULATE the posterior
sleep_sim <- coda.samples(model = sleep_jags, variable.names = c("m", "s"), n.iter = 10000)
# Summarize the m and s chains of sleep_sim
summary(sleep_sim)