Contoh praktis untuk MCMC

14

Saya sedang menjalani beberapa kuliah yang berhubungan dengan MCMC. Namun, saya tidak menemukan contoh yang baik tentang bagaimana ini digunakan. Adakah yang bisa memberi saya contoh nyata. Yang bisa saya lihat adalah mereka menjalankan rantai Markov dan mengatakan bahwa distribusi stasionernya adalah distribusi yang diinginkan.

Saya ingin contoh yang bagus di mana distribusi yang diinginkan sulit untuk diambil sampelnya. Jadi kami membuat rantai Markov. Saya ingin tahu bagaimana memilih matriks transisi sehingga distribusi stasionernya, dari rantai Markov adalah target distribusi Terima kasih

pengguna34790
sumber
Teori rantai Markov dasar digunakan untuk menunjukkan bahwa skema pengambilan sampel tertentu akan memiliki distribusi stasioner yang merupakan distribusi bersama yang diinginkan. Sebagai contoh paling sederhana, sampler vanilla Gibbs mensimulasikan dari distribusi bersyarat penuh. Kernel transisi yang sesuai, diambil bersama-sama, jika mereka memenuhi kondisi untuk konvergensi (sering langsung menunjukkan) dapat dengan mudah ditunjukkan memiliki distribusi bersama sebagai distribusi stasioner. Demikian pula untuk Metropolis Hastings, dan sebagainya. Kedengarannya seperti ceramah yang Anda lihat tidak menjelaskan bagaimana MCMC adalah rantai Markov
Glen_b -Reinstate Monica

Jawaban:

3

Contoh distribusi yang sulit untuk diambil sampelnya adalah model Hard-Core, lihat halaman ini untuk tinjauan umum:

http://www.mathematik.uni-ulm.de/stochastik/lehre/ss06/markov/skript_engl/node34.html

Model ini mendefinisikan distribusi lebih dari grid untuk beberapa n tetapn×nn , di mana pada setiap titik di kisi Anda dapat memiliki nilai salah satu atau nol. Agar kisi dapat diterima di bawah model hard-core, tidak ada dua titik yang berdekatan pada kisi yang keduanya dapat memiliki nilai 1.

Gambar di bawah ini menunjukkan contoh diterima konfigurasi untuk kotak di bawah model hard-core. Dalam gambar ini yang ditampilkan sebagai titik-titik hitam, dan nol sebagai putih. Perhatikan bahwa tidak ada dua titik hitam yang berdekatan.8×8

Contoh konfigurasi yang dapat diterima untuk kisi $ 8 \ kali 8 $ di bawah model hard-core

Saya percaya inspirasi untuk model ini berasal dari fisika, Anda dapat menganggap setiap posisi dalam grid sebagai partikel, dan nilai pada posisi tersebut mewakili muatan listrik, atau putaran.

Kami ingin mengambil sampel secara seragam dari populasi kisi yang dapat diterima, yaitu jika adalah himpunan kisi yang dapat diterima, kami ingin mengambil sampel e E sedemikian rupa sehinggaEeE

hal(e)=1|E|

dimana adalah jumlah semua kemungkinan konfigurasi yang diizinkan.|E|

Sudah ini menyajikan tantangan, mengingat bahwa kita sedang mempertimbangkan grid, bagaimana kita dapat menentukan | E | jumlah grid yang dapat diterima? n×n|E|

Salah satu hal yang menyenangkan tentang MCMC, adalah memungkinkan Anda untuk mengambil sampel dari distribusi di mana konstanta normalisasi sulit atau tidak mungkin untuk dievaluasi.

Saya akan membiarkan Anda membaca makalah tentang rincian cara menerapkan MCMC untuk masalah ini, tetapi relatif mudah.

Max S.
sumber
2

Saya pikir contoh terbaik yang bisa saya berikan kepada Anda adalah ini:

Contoh Markov Chain Monte Carlo oleh Murali Haran

Yang mencakup beberapa kode bermanfaat dalam R.

Saya pikir saya bisa mereproduksi artikel di sini, tetapi tidak masuk akal.

anxoestevez
sumber
2

Masalah menakutkan lainnya dalam statistik. Pertanyaannya sudah lama, tetapi contoh pengantar online sulit didapat. Jadi izinkan saya menyederhanakan dua contoh hebat untuk berjaga-jaga seandainya seseorang mengikuti perjalanan acak Markov dari tanah PageRank di sini dibingungkan oleh MCMC, dan penuh antisipasi untuk jawaban yang mudah diikuti. Bagaimana mungkin? Itu bisa menjadi pertanyaan lanjutan.

FIRST EXAMPLE:

N(0,1) untuk kenyamanan dan anotasi.

Kesulitannya adalah dalam mewujudkan bahwa setelah melalui semua langkah mekanik, hanya ada satu trik ajaib: keputusan biner menerima atau menolak suatu nilai yang diajukan .

xmean0sd 1rnorm(10000)

epsϵxsayaxsaya+1runif(1, - eps, eps)xsaya

Setiap nilai yang diusulkan akan berbeda dari nilai sebelumnya secara acak, dan dalam batas-batas [- eps,+ eps].

sayasaya+1

N(0,1)xsaya+1xsaya

min(1, dnorm(candidate_value)/dnorm(x))1N(0,1) haldfxsaya+1xsayamin(1, ...)dnorm

min(1, dnorm(candidate_value)/dnorm(x))runif(1)01x[i+1]x[i]

sd10

0x = 0; vec[1] = x

SECOND EXAMPLE:

Ini lebih menarik, dan membuat referensi untuk memperkirakan parameter kurva regresi linier dengan menghitung kemungkinan log untuk parameter acak yang diberikan dataset . Namun, penafsiran garis kode dibangun dalam simulasi terkondensasi yang disimpan di sini , mengikuti langkah-langkah yang sangat mirip dengan contoh pertama.

Antoni Parellada
sumber
Diperlukan beberapa perbaikan kecil: " tanah di sini dikacaukan oleh CMCM " ... perlu dibalik . " Rosenbluth-Hatings " .... mungkin perlu tambahan "s" di sana. Saya akan mengatakan bahwa contoh pertama tidak persis "sulit untuk diambil sampel dari" (seperti pertanyaannya). Kedua contoh Anda terlihat seperti Metropolis-Hastings (yang tentunya penting), tetapi MCMC lebih dari itu. Sama seperti satu contoh, banyak sekali orang yang menggunakan sampling Gibbs, seringkali melalui JAGS / BUGS / dll. Tidak ada keputusan terkait penerimaan langkah yang diusulkan di sana - Anda selalu bergerak.
Glen_b -Reinstate Monica
Saya mengoreksi "s" yang hilang, ejaan CMCM isomerik. Singkirkan hyperlink yang mungkin tidak beralasan ke YouTube yang membahas masalah nama. Dijelaskan mengapa saya memilih contoh pertama untuk diuraikan meskipun ada permintaan khusus dari pertanyaan (lama). Saya menghargai Anda menunjukkan semua masalah ini. Saya tidak yakin tentang implikasi dari baris terakhir Anda.
Antoni Parellada
Ini hanyalah referensi ke baris " hanya ada satu trik magis: keputusan biner menerima atau menolak nilai yang diusulkan "; untuk menunjukkan bahwa ini bukan properti dari semua algoritma MCMC. Itu tidak dengan sendirinya berarti ada masalah dengan jawaban Anda; Anda dapat menganggapnya sebagai klarifikasi jika Anda mau. Bit isomernya bagus.
Glen_b -Reinstate Monica
1

Video Youtube ini adalah visualisasi yang sangat bagus dari masalah sederhana yang diselesaikan menggunakan MCMC.

Distribusi bunga adalah distribusi posterior atas kemiringan yang mungkin dan mencegat dalam regresi linier (panel kanan atas). Beberapa kombinasi lereng dan intersepsi sangat mungkin (yaitu mereka memiliki kemungkinan tinggi menghasilkan poin data yang diamati dan konsisten dengan harapan a priori kami ), sehingga mereka harus disampel secara berkala. Kombinasi lainnya tidak mungkin (mis. Jika sesuai dengan garis biru yang tidak melewati awan titik data), dan harus disampel lebih jarang.

Panel besar di kiri bawah menunjukkan jalur yang diambil oleh rantai Markov melalui ruang dua dimensi lereng dan penyadapan. Histogram menunjukkan ringkasan satu dimensi dari kemajuan rantai sejauh ini. Setelah rantai berjalan cukup lama, kami memiliki perkiraan distribusi yang sangat baik untuk kemungkinan nilai lereng dan intersep.

Dalam hal ini, MCMC berlebihan, tetapi ada beberapa masalah di mana solusi sulit untuk dituliskan dan sangat masuk akal untuk mengeksplorasi kemungkinan dengan rantai Markov daripada mencoba menyelesaikannya secara langsung.

David J. Harris
sumber