Koneksi antara kedua konsep adalah bahwa rantai Markov Monte Carlo (alias MCMC) metode mengandalkan teori rantai Markov untuk menghasilkan simulasi dan perkiraan Monte Carlo dari distribusi target yang kompleks .π
Dalam prakteknya, metode simulasi ini menghasilkan urutan yang merupakan rantai Markov, yaitu, sedemikian sehingga distribusi X i diberikan seluruh masa lalu { X i - 1 , ... , X 1 } hanya tergantung pada X i - 1 . Dengan kata lain, X i = f ( X i - 1 , ϵ i ) di mana adalah fungsi yang ditentukan oleh algoritma dan distribusi targetX1,…,XNXi{Xi−1,…,X1}Xi−1
Xi=f(Xi−1,ϵi)
fπϵiXiπi∞
Contoh termudah dari algoritma MCMC adalah slice sampler : pada iterasi i dari algoritma ini, lakukan
- ϵ1saya∼ U ( 0 , 1 )
- Xsaya∼ U ( { x ; π( x ) ≥ ϵ1sayaπ( Xi - 1) } )ϵ2saya)
Misalnya, jika target distribusi normal N (0,1) [yang Anda jelas tidak memerlukan MCMC dalam praktiknya, ini adalah contoh mainan!] di atas diterjemahkan sebagai
- mensimulasikan ϵ1saya∼ U ( 0 , 1 )
- mensimulasikan Xsaya∼ U ( { x ; x2≤ - 2 log( 2 π--√ϵ1saya} )yaitu Xsaya= ± ϵ2saya{ - 2 log( 2 π--√ϵ1saya) φ ( Xi - 1) }1 / 2
dengan ϵ2saya∼ U ( 0 , 1 )
atau dalam R
T=1e4
x=y=runif(T) #random initial value
for (t in 2:T){
epsilon=runif(2)#uniform white noise
y[t]=epsilon[1]*dnorm(x[t-1])#vertical move
x[t]=sample(c(-1,1),1)*epsilon[2]*sqrt(-2*#Markov move from
log(sqrt(2*pi)*y[t]))}#x[t-1] to x[t]
Berikut ini adalah representasi dari output, yang menunjukkan pas untuk N (0,1) target dan evolusi rantai Markov ( Xsaya).
Dan ini adalah zoom pada evolusi rantai Markov ( Xsaya, ϵ1sayaπ( Xsaya) ) lebih dari 100 iterasi terakhir, diperoleh oleh
curve(dnorm,-3,3,lwd=2,col="sienna",ylab="")
for (t in (T-100):T){
lines(rep(x[t-1],2),c(y[t-1],y[t]),col="steelblue");
lines(x[(t-1):t],rep(y[t],2),col="steelblue")}
yang mengikuti gerakan vertikal dan horizontal rantai Markov di bawah kurva kerapatan target.