metropolis-hesting算法如何确保样本服从未知的后验分布

时间:2017-03-27 03:12:15

标签: algorithm statistics montecarlo markov-chains mcmc

我是统计学的外行,在阅读了一些关于Metropolis-Hastings MCMC算法的博客和例子之后,我有一个问题:

在M-H算法中,是否接受新样本(例如,x')取决于"接受概率",alpha = min(1,A),其中 A = p(x')q(x | x')/ [p(x)q(x'| x)]。

问题来自这里,因为我们不知道感兴趣的分布p(x)的形式,我们如何计算接受概率,其中包含p(x')和p(x)?

或者换句话说:metropolis-hesting算法如何确保样本服从未知的后验分布。 我是新手,请给我一些建议。

1 个答案:

答案 0 :(得分:1)

以下是https://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm

中的一大块文字

松散要求f(x)应仅与密度成比例,而不是与其完全相等,这使得Metropolis-Hastings算法特别有用,因为在实践中计算必要的归一化因子通常非常困难。 (结束语)

所以你的p(x)应该是目标分布下x的概率乘以一些未知的常数因子。这种p(x)的一个例子是当你对已知分布施加约束时。在这种情况下,你不知道p(x),但你知道某些未知K的p(x)* K,所以你仍然可以计算p(x)/ p(x')=(p( x)* K)/(p(x')* K)。

假设您想要模拟圆内分布的点,但您不知道pi的值,因此您无法计算出圆的区域。然后你可以使p(x)在单位正方形上的均匀分布得到点<=距离0.5(0.5,0.5)和0其他地方。这给你ap(x),它不是1,而是集成到Pi / 4,你不知道,所以它不是一个合适的概率分布,但它是常数因子的一倍。