Apa hubungan antara rantai Markov dan rantai Markov monte carlo

15

Saya mencoba memahami rantai Markov menggunakan SAS. Saya mengerti bahwa proses Markov adalah satu di mana keadaan di masa depan hanya bergantung pada keadaan saat ini dan bukan pada keadaan masa lalu dan ada matriks transisi yang menangkap probabilitas transisi dari satu keadaan ke keadaan lain.

Tapi kemudian saya menemukan istilah ini: Markov Chain Monte Carlo. Yang ingin saya ketahui adalah apakah Rantai Markov Monte Carlo terkait dengan proses Markov yang saya jelaskan di atas?

Pemenang
sumber

Jawaban:

9

Ya, ada hubungan di antara kedua istilah itu karena gambar dari MCMC membentuk rantai Markov. Dari Gelman, Bayesian Data Analysis (edisi ke-3), hlm. 265:

Simulasi rantai Markov (juga disebut rantai Markov Monte Carlo atau MCMC) adalah metode umum berdasarkan nilai menggambar dari distribusi yang sesuai dan kemudian mengoreksi gambar-gambar tersebut untuk mendekati perkiraan distribusi posterior target, p ( θ | y ) . Pengambilan sampel dilakukan secara berurutan, dengan distribusi penarikan sampel tergantung pada nilai terakhir yang diambil; karenanya, undian membentuk rantai Markov.θp(θ|y)

Sycorax berkata Reinstate Monica
sumber
Umm ok, tapi mengapa saya perlu menggambar sampel acak dari proses markov, ada begitu banyak jenis proses seperti normal, bernoulli, posisi dll.
Victor
2
@ Viktor Saya pikir Anda tidak melihat penggunaan MCMC. Kami menggunakan MCMC dalam statistik Bayesian ketika tidak ada bentuk analitik distribusi posterior.
Sycorax berkata Reinstate Monica
3
Statistik Bayesian +1 mungkin merupakan aplikasi MCMC yang paling jelas (di mana target distribusi adalah posterior bersama) tetapi bukan satu-satunya yang mungkin.
Glen_b -Reinstate Monica
18

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{Xi1,,X1}Xi1

Xi=f(Xi1,ϵi)
fπϵiXiπi

Contoh termudah dari algoritma MCMC adalah slice sampler : pada iterasi i dari algoritma ini, lakukan

  1. ϵsaya1U(0,1)
  2. XsayaU({x;π(x)ϵsaya1π(Xsaya-1)})ϵsaya2)

Misalnya, jika target distribusi normal N(0,1) [yang Anda jelas tidak memerlukan MCMC dalam praktiknya, ini adalah contoh mainan!] di atas diterjemahkan sebagai

  1. mensimulasikan ϵsaya1U(0,1)
  2. mensimulasikan XsayaU({x;x2-2catatan(2πϵsaya1})yaitu Xsaya=±ϵsaya2{-2catatan(2πϵsaya1)φ(Xsaya-1)}1/2 dengan ϵsaya2U(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). top: Histogram of 10⁴ iterations of the slice sampler and normal N(0,1) fit; bottom: sequence $(X_i)$

Dan ini adalah zoom pada evolusi rantai Markov (Xsaya,ϵsaya1π(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.100 last moves of the slice sampler

Xi'an
sumber