Metropolis-Hasting算法
Step 1: 选择一个不可约Markov链转移概率q(i,j),i,j ∈ \in ∈S.再从S={1,2,… ,m}中选择某个整数.
Step 2: 令n=0以及 x 0 = k x_0=k x0=k.
Step 3: 产生一个随机变量X使得 P { X = j } = q ( X n , j ) P\{X=j\}=q(X_n,j) P{
X=j}=q(Xn,j), 再产生一个随机数U.
Step 4: 如果 U < π ( X ) q ( X , X n ) π ( X n ) q ( X N , X ) U < \frac{\pi(X)q(X,X_n)}{\pi(X_n)q(X_N,X)} U<π(Xn)q(XN,X)π(X)q(X,Xn), 则MH = X; 否则MH = X n X_n Xn.
Step 5: n ← n + 1 , X n = M H n\leftarrow n+1, X_n=MH n←n+1,Xn=MH.
Step 6: 返回Step 3.
建议分布的选择方法:
(1)Metropolis选择;(2)独立抽样;(3)单元素MH算法
举例说明:
设观测变量 Y = ( Y 1 , Y 2 , . . . , Y n ) Y=(Y_1,Y_2,...,Y_n) Y=(Y1,Y2,...,Yn)具有如下分布:
π ( y i ∣ k , θ , λ ) = θ y i e − θ y i ! , i = 1 , 2 , . . . , k , \pi(y_i|k,\theta,\lambda)=\frac{\theta^{y_i}e^{-\theta}}{y_{i}!},i=1,2,...,k, π(yi∣k,θ,λ)=yi!θyie−θ,i=1,2,...,k,
π ( y i ∣ k , θ , λ ) = λ y i e − λ y i ! , i = k + 1 , k + 2 , . . . n . \pi(y_i|k,\theta,\lambda)=\frac{\lambda^{y_i}e^{-\lambda}}{y_i!}, i =k+1,k+2,...n. π(yi∣k,θ,λ)=yi!λyie−λ