Saya mencoba menerapkan MCMC pada suatu masalah, tetapi prior saya (dalam kasus saya mereka adalah )) dibatasi pada suatu area? Dapatkah saya menggunakan MCMC normal dan mengabaikan sampel yang berada di luar zona terbatas (yang dalam kasus saya [0,1] ^ 2), yaitu menggunakan kembali fungsi transisi ketika transisi baru keluar dari area terbatas (terbatas)?
sampling
mcmc
monte-carlo
random-walk
Cupitor
sumber
sumber
Jawaban:
Anda memiliki beberapa opsi yang bagus, lebih atau kurang sederhana. Seragam Anda sebelumnya membantu membuatnya lebih sederhana.
Opsi 1: Sampler kemerdekaan. Anda bisa mengatur distribusi proposal Anda sama dengan distribusi seragam di atas unit square, yang memastikan bahwa sampel tidak akan jatuh di luar zona terbatas, seperti yang Anda sebut. Potensi downside: jika posterior terkonsentrasi di wilayah yang sangat kecil dari unit square, Anda mungkin memiliki tingkat penerimaan yang sangat rendah. OTOH, sulit untuk menghasilkan angka acak lebih cepat daripada dari distribusi U (0,1). Potensi terbalik: kurang bekerja untuk Anda.
Opsi 2: Ubah parameter Anda menjadi sesuatu yang tidak dibatasi, buat proposal untuk parameter yang diubah, lalu ubah kembali parameter untuk digunakan dalam fungsi kemungkinan. Perhatikan bahwa dalam hal ini prior akan berada pada parameter yang diubah, karena itulah tujuan Anda membuat proposal, jadi Anda harus mengacaukan Jacobian dari transformasi untuk mendapatkan prior yang baru. Untuk analisis Anda, tentu saja, Anda akan mengubah nomor acak parameter yang dihasilkan MCMC kembali ke parameter asli. Potensi downside: lebih banyak pekerjaan awal untuk Anda. Sisi positif utama: tingkat penerimaan yang lebih baik untuk proposal Anda.
Opsi 3: Bangun distribusi proposal selain sampler independen yang ada di unit square. Ini memungkinkan Anda untuk menjaga seragam Anda sebelumnya, tetapi dengan biaya kompleksitas yang lebih besar ketika menghitung probabilitas proposal. Contohnya, membiarkan menjadi nilai saat ini dari salah satu parameter Anda, akan menjadi distribusi Beta dengan parameter ( n x , n ( 1 - x ) ) . Semakin besar n , semakin terkonsentrasi proposal Anda akan berada di sekitar nilai saat ini. Potensi downside: lebih banyak pekerjaan awal untuk Anda. Sisi positif utama: tingkat penerimaan yang lebih baik untuk proposal Anda - tetapi jika Anda menghasilkan nx (nx,n(1−x)) n n terlalu besar, dan bergerak dekat ke sudut, Anda mungkin berakhir membuat banyak gerakan kecil di sudut sebelum keluar.
Opsi 4: Hanya menolak proposal yang berada di luar unit square (saran setengah hati Xian). Perhatikan bahwa ini tidak sama dengan hanya menghasilkan proposal lain; dalam hal ini Anda menolak proposal, yang berarti nilai Anda berikutnya untuk parameter sama dengan nilai saat ini untuk parameter. Ini berfungsi karena apa yang akan terjadi jika Anda memiliki probabilitas nol sebelumnya untuk beberapa wilayah ruang parameter Anda dan menghasilkan angka acak yang jatuh di wilayah itu. Potensi downside: jika Anda mendekati sudut, Anda mungkin memiliki probabilitas penerimaan yang rendah dan macet untuk sementara waktu. Potensi terbalik: kurang bekerja untuk Anda.
Opsi 5: Buat masalah diperpanjang pada bidang yang, pada unit square, sama dengan masalah aktual yang Anda hadapi, lakukan semuanya dengan benar, lalu, saat pasca-pemrosesan hasil pengambilan sampel MCMC, buang semua sampel di luar dari unit square. Potensi terbalik: Jika sangat mudah untuk membuat masalah yang diperluas, mungkin kurang berhasil untuk Anda. Potensi downside: jika rantai Markov berkeliaran di suatu tempat di luar unit square untuk sementara waktu, Anda mungkin memiliki, pada dasarnya, kemungkinan penerimaan yang mengerikan, karena Anda akan membuang sebagian besar sampel Anda.
Tidak diragukan lagi ada pilihan lain, saya akan tertarik untuk melihat apa yang orang lain sarankan!
Perbedaan antara 2 dan 3 sampai batas tertentu konseptual, meskipun dengan implikasi nyata untuk apa yang sebenarnya Anda lakukan. Saya mungkin akan pergi dengan 3, karena saya hanya akan membiarkan R memberi tahu saya apa kemungkinan proposal (jika saya memprogram dalam R) dan jumlah usaha ekstra, selain dari beberapa penyetelan parameter distribusi proposal , terlihat kecil untukku. Jika saya menggunakan JAGS atau BUGS, tentu saja, itu akan menjadi masalah yang berbeda, karena alat-alat itu menangani proposal mereka sendiri.n
sumber