我试图比较两个非常等效但略有不同的模型的运行时间。但是根据采样的随机数,链总是需要非常不同的时间。所以我试图解决这个问题,seed
为stan()
.
我试过两次运行相同的模型。不幸的是,我发现即使是相同的种子也不能保证该过程会产生相同的样品!并且两次运行中链的运行时间也有很大不同!
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 中的相同链?
这怎么能保证?
以下选项用于运行 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)