Bisakah kita mengubah tingkat penerimaan dalam algoritma Metropolis walk acak dengan mengubah parameter distribusi proposal?


8

Bisakah kita mengubah tingkat penerimaan dalam algoritma Metropolis walk acak dengan mengubah parameter distribusi proposal?

Biarkan distribusi target menjadi . Biarkan menjadi kepadatan proposal untuk keadaan baru pada kondisi saat ini . Tingkat penerimaan adalah πp(x2|x1)x2x1

α=min(1,π(x2)p(x1|x2)π(x1)p(x2|x1))

Jika saya benar, dalam algoritma Metropolis random walk, kepadatan proposal simetris dalam arti bahwa p(x2|x1)=p(x1|x2) , sehingga tingkat penerimaan tidak tergantung pada kepadatan proposal, tetapi hanya pada distribusi target π untuk dijadikan sampel. Jadi mengubah parameter dari distribusi proposal tidak akan mengubah tingkat penerimaan α .

Misalnya, jika distribusi proposal, pada kondisi saat ini x1 , adalah distribusi Gaussian yang berpusat pada kondisi saat ini dengan varian konstan, yaitu N(x1,σ2) , yang dengan cara simetris dalam arti di atas, akan mengubah varians σ2 dari distribusi proposal Gaussian tidak mengubah tingkat penerimaan α ?

Terima kasih!

Jawaban:


11

Jika proposal Anda memiliki varian yang sangat rendah, maka status baru yang Anda usulkan akan sangat mirip dengan kondisi saat ini, jadi akan mendekati 1 (dalam batas, dengan 0 varians, proposal dan status saat ini akan sama dan Anda akan memilikinya persis sama dengan 1), sehingga tingkat penerimaan akan mendekati 100%.π(x2)π(x1)

Namun, jika proposal Anda memiliki varian tinggi, akan (setidaknya kadang-kadang) jauh lebih kecil dari 1, sehingga tingkat penerimaan Anda akan semakin dekat dan mendekati 0%. Jadi tingkat penerimaan menurun karena varians dari proposal meningkat.π(x2)π(x1)

Masalah dengan varians sangat rendah (yang akan membuat Anda tingkat penerimaan yang lebih tinggi) adalah bahwa mereka membutuhkan waktu lebih lama untuk menjelajahi ruang posterior dengan tidak pernah bergerak jauh dari keadaan saat ini. Metode MCMC adaptif seperti Haario et Al. coba atasi masalah seperti itu dengan mengubah varians matrix proposal saat itu juga.

Untuk menyesuaikan tingkat penerimaan Anda, Anda bisa mencoba menambah dan mengurangi varians, pendekatan yang agak coba-coba. Tetapi tergantung pada geometri posterior, tingkat penerimaan mungkin berubah secara drastis selama proses pengambilan sampel. Juga, untuk model multiparameter, matriks kovarians proposal memiliki banyak varian dan istilah kovarians dan metode semacam itu menjadi tidak praktis.

Ada lebih banyak metode untuk menangani ini seperti metode metropolis adaptif yang diuraikan dalam tautan di atas, atau Anda mungkin ingin melihat metode lain seperti yang tercantum di sini . Anda juga dapat mencoba perangkat lunak seperti Jags dan Stan jika Metropolis tidak berfungsi untuk masalah Anda.


Terima kasih! dapatkah Anda melihat posting saya yang diperbarui? dengan "Pr (status proposal)", maksud Anda "Pr (status proposal | status saat ini)"?
Tim

Hai, dalam notasi baru Anda maksud saya . Saya tidak peduli dengan karena Anda mengatakan Anda bekerja dengan proposal simetris, dan karena itu hubungannya konstan dan sama dengan 1 untuk varian apa pun yang Anda pilih. π(x2)/π(x1)p(x1|x2)/p(x2|x1)
random_user

Perluas sedikit jawaban untuk menjelaskan hal ini.
random_user

karena status proposal adalah variabel acak, apakah betul bahwa tidak ada cara untuk mengontrol tingkat penerimaan ke dalam interval seperti [0,2,0,5]?
Tim

2
Ini akan tergantung pada geometri AFAIK posterior. Jika posterior Anda adalah distribusi normal atau sesuatu yang dekat dengannya dan jika Anda memiliki distribusi proposal yang juga normal, saya tidak melihat mengapa Anda tidak bisa "mengendalikan" tingkat penerimaan Anda melakukan trial and error dalam varian dari usul. Tentu saja, masalah nyata bisa (dan) jauh lebih rumit dari ini.
random_user

2

Saya pikir mencatat beberapa definisi mungkin bermanfaat untuk referensi di masa depan untuk pertanyaan dan jawaban ini.

Rasio jumlah negara yang diusulkan diterima dengan jumlah proposisi memberikan tingkat penerimaan. Perhatikan bahwa tingkat penerimaan adalah tingkat penerimaan selama perjalanan acak.

α dalam pertanyaan itu disebut "kemungkinan penerimaan" oleh Robert & Casella dalam buku mereka Pengantar Metode Monte Carlo dengan R (2010, hal. 171). Ini sangat masuk akal karena , dalam presentasi mereka, disesuaikan dengan notasi dalam pertanyaan, terlihat di sini:α

x2={x2with probability α(x2,x1)x1with probability 1α(x2,x1)where  α(x2,x1)=min{1,π(x2)p(x1|x2)π(x1)p(x2|x1)}

Sekarang perhatikan bahwa sini dapat menjadi independen dari kepadatan proposal dalam kasus proposal berjalan acak ketika . Namun, tingkat penerimaan seperti yang didefinisikan di atas masih tergantung padanya karena alasan yang dijelaskan oleh random_user.αp(x|y)=p(y|x)

Robert dan Casella sangat jelas tentang membedakan keduanya dan mendefinisikan yang terakhir sebagai "[...] rata-rata probabilitas penerimaan atas iterasi."

Saya memiliki sedikit pengalaman tentang masalah ini tetapi cukup bagi saya untuk mengamati bahwa apa yang disebut dalam pertanyaan dengan "tingkat penerimaan" kadang-kadang disebut "rasio penerimaan" (lihat Wikipedia misalnya), yang mengarah pada kebingungan yang sama seperti dalam pertanyaan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.