私は、2 つの非常に同等であるがわずかに異なるモデルの実行時間を比較しようとしていました。しかし、サンプリングされた乱数に基づいて、チェーンには常に非常に異なる時間がかかります。だから私はこれを修正しようとしました に同じseed
パラメータを提供しますstan()
。
同じモデルを2回実行してみました。残念ながら、同じシードであっても、プロセスが同じサンプルを生成するとは限らないことがわかりました! また、両方の実行でのチェーンの実行時間も大きく異なります。
100 iterations, 50 warmup, 15 chains
1st run: total 57.42 seconds, chain 14: 4.515 seconds, chain 15: 2.782 seconds;
2nd run: total 76.99 seconds, chain 14: 2.703 seconds, chain 15: 4.125 seconds.
シードがスタンで同じチェーンを保証しない可能性はありますか?
これはどのように保証できますか?
以下のオプションは、Stan (rstan バージョン 2.5.0) を実行するために使用されました。
t1 <- proc.time()
out7.5b <- out <- stan(fit = fit7.5b, data = win.data, init = inits,
pars = params,
iter = ni, warmup = nb, chains = nc, seed = 123)
t2 <- proc.time()
print(t2 - t1)