梅特罗波利斯(Metropolis)算法是马尔可夫链蒙特卡罗(MCMC)方法的基石。设为研究问题的目标分布,其中归一化常数
通常是未知的。原则上
是“可知”的,但求
值的问题并不比先前从
中抽样的问题简单(通常更难)。由于这一思想既简单又非常有效,所以其变化和推广现已被生物学、化学、计算科学、经济学、工程学、材料科学、物理学、统计学以及其他学科等领域的研究者所广泛接纳。
设为建议或者工具密度函数:指从状态
到状态
的马尔可夫转移密度。与接受-拒绝(acceptance-rejection)方法类似,梅特罗波利斯-黑斯廷斯(Metropolis-Hastings)算法也基于以下试错(trial and error)策略。
(Metropolis-Hastings算法)假设为已知密度函数,初始值
满足
,则对每一步
的抽样步骤如下所示:①给定当前状态
,产生
。②服从均匀分布
的随机数
,并设定:
(1) |
式中称为接受概率。
当工具密度函数是对称分布时,Metropolis-Hastings算法退化为Metropolis算法,此时有,即:
(2) |
为了更好的理解Metropolis-Hastings算法, 下面给出了一个二分类数据的例子,这是关于剖腹产病人是否会发生感染的数据 (见表)。如果剖腹产后发生感染,则响应变量取值为1,否则,
。我们也给出了三个解释变量
,其中
表示剖腹产是否为非计划的考虑;
表示在生产过程中是否存在危险因素;
表示是否使用抗生素作为预防措施。 表1包括251例分娩数据。例如,11/87数值表示解释变量取值为(1,1,1)的分娩病例有98例,其中11例出现了感染,87例没有出现感染。
11/87 | 1 | 1 | 1 |
1/17 | 0 | 1 | 1 |
0/2 | 0 | 0 | 1 |
23/3 | 1 | 1 | 0 |
28/30 | 0 | 1 | 0 |
0/9 | 1 | 0 | 0 |
8/32 | 0 | 0 | 0 |
记第次分娩的感染概率为:
(3) |
式中;未知系数
,
为标准正态分布的分布函数,
为4维的单位矩阵。假设
是条件独立的,则后验密度为:
(4) |
式中为
的密度函数。