第三章 从概率分布函数的抽样 (Sampling from Probability Distribution Functions) Monte Carlo模拟 第三章 从概率分布函数的抽样 (Sampling from Probability Distribution Functions) 3.10 Metropolis抽样方法 2019/4/26 3.10 Metropolis抽样方法
3.10 Metropolis抽样方法 由Metropolis、Rosenbluth和Teller在1953年提出的一种抽样方法 设X为d维随机向量,其概率密度函数为w(X) 欲产生一组X的随机值: 通过在d 维空间中的随机行走来产生X的随机取样,利用 w(X)来选取每一步行走的步长和方向 设已产生了i个随机值xi,以xi为基点随机选取一新的试验点xt,根据w(X)决定是否接受xt作为新的点xi+1 2019/4/26 3.10 Metropolis抽样方法
3.10 Metropolis抽样方法 Metropolis抽样方法: 选择参数 和初始点 设已产生了第i个X的随机值 ,则第i+1个随机值由下列步骤产生: 产生d个在(-1,1)区间上均匀分布的随机数 计算新的尝试点: 计算w(X)函数在两点处的数值比 产生在(0,1)区间内均匀分布的随机数 如果r ,则令, 否则, 2019/4/26 3.10 Metropolis抽样方法
3.10 Metropolis抽样方法 证明: 考虑一群数目很大的行走者,每个行走者在X空间中从不同的起始点相互独立地行走 Nn(X): 经过n步行走后在X点处的行走者的数目。 在第n+1步:从X点到Y点的行走者的数目 P(XY): 在X点处的行走者行走到Y点的几率 P(YX): 在Y点处的行走者行走到X点的几率 达到平衡状态时:N(X) = 0 Ne(X): 在平衡状态时在X点处的行走者的数目。 2019/4/26 3.10 Metropolis抽样方法
3.10 Metropolis抽样方法 下面证明利用Metropolis算法可得到:Ne(X) ~ w(X) 在Metropolis算法中,由X到Y的几率: P(XY) = T(XY)A(XY) T: 由X到Y走一步的几率 A:这一步被接受的几率 如果由X可经过一步到达Y(即:X和Y都位于边长为的多维立方体内) T(XY) = T(YX) 2019/4/26 3.10 Metropolis抽样方法
3.10 Metropolis抽样方法 根据Metropolis算法: (1)如果w(X)> w(Y),则 A(YX) = 1 由X到Y被接受的几率为r (2)如果w(X)< w(Y),则 A(XY) = 1 由X到Y被接受的几率为r Ne(X) ~ w(X) 2019/4/26 3.10 Metropolis抽样方法
3.10 Metropolis抽样方法 注意: (1)关于的选取:如果太小,要历经整个X的取值区间需要行走很长的距离(产生很多的点);如果很大,一步行走被拒绝的几率会很大。 的取值:约有一半的试验行走被接受 (2)关于行走的初始点:取w较大的点 2019/4/26 3.10 Metropolis抽样方法
3.10 Metropolis抽样方法 例1:标准正态分布的抽样 2019/4/26 3.10 Metropolis抽样方法