如何解决适用于Metropolis-Hastings MCMC的最合适的伪随机数生成器
我正在做很多Metropolis-Hastings Markov连锁店Monte Carlo(MCMC)。 我使用的大多数代码都使用Mersenne Twister(MT)作为伪随机数生成器(PRNG)。
但是,我最近读到,MT已经过时,可能不应该再使用,因为它无法通过某些测试并且相对较慢。所以我愿意切换。
Numpy现在默认为PCG(https://www.pcg-random.org/),自称很好。其他站点非常重要。例如。 http://pcg.di.unimi.it/pcg.php。 似乎每个人都称赞自己的工作。
这里已经有一些不错的信息:Pseudo-random number generator 但是许多答案已经过时了,我想提出更具体的问题。
正如我所说:主要用例是Metropolis-Hastings MCMC。 因此,我需要:
- 在半开和开间隔内均匀分布的数字
- 大约2 ^ 50个样本,显然根据经验法则,PRNG的周期至少应为2 ^ 128
- 足够的随机数质量(无论这意味着什么)
- 合理的快速PRNG(对于固定的运行时,更快的代码意味着MCMC的准确性更高)
我不需要
- 加密安全性
由于我绝不是专家,因此可用性当然也很重要。因此,我欢迎一个可用的C ++实现(这似乎是标准的),对于新手来说,它很容易使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。