可重現性
既然你已經完成(而且通過!)一些馬可夫鏈診斷,就可以來完成你的 RJAGS 模擬了。為了達成這個目標,「可重現性」非常關鍵。若要得到可重現的模擬輸出,你必須設定 RJAGS 隨機數產生器的種子。這與 base R 的作法不同。你不會用 set.seed(),而是在「編譯」模型時,用 inits = list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = ___) 指定起始種子。
本練習屬於課程
使用 RJAGS 的貝氏建模
練習說明
將提供的程式碼執行數次。留意每次
summary()統計值都會改變。為了得到可重現的結果,把隨機數產生器的
inits提供給jags.model()。將起始種子設為 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)