3

我有一个关于 Metropolis-Hastings 算法的简单问题。假设分布只有一个变量x,x的取值范围为s=[-2^31,2^31]。

在抽样过程中,我需要提出一个新的 x 值,然后决定是否接受。

x_{t+1} =x_t+\epsilon 

如果我想自己实现它,如何确定\epsilon的值。

基本的解决方案是从 Uniform[-2^31,2^31] 中选择一个值并将其设置为 \epsilon。如果值范围像 [-inf, inf] 那样无界怎么办?

当前的 MCMC 库(例如 pymc)如何解决这个问题?

4

2 回答 2

3

假设您有 $d$ 维度参数,最佳比例约为 $2.4d^(−1/2)$ 乘以目标分布的比例,这意味着 $d = 1$ 的最佳接受率为 0.44,$d 的最佳接受率为 0.23 $ 去 \infinity。

参考:随机游走 Metropolis 算法中的自动步长选择,Todd L. Graves,2011。

于 2017-09-14T23:22:50.807 回答
2

最好的方法是编写一个自调整算法,该算法从步长方差的任意方差开始,并随着算法的进行调整该方差。您正在为 Metropolis 算法争取 25-50% 的接受率。

于 2015-03-04T16:12:59.803 回答