Saya tidak melihat kertas yang Anda berikan, tetapi biarkan saya mencoba:
Jika Anda memiliki ruang parameter berdimensi Anda dapat menghasilkan arah acak d merata pada permukaan unit bola denganpd
x <- rnorm(p)
d <- x/sqrt(sum(x^2))
(lih Wiki ).
Kemudian, gunakan ini untuk menghasilkan proposal untuk untuk sampel penolakan (dengan asumsi Anda benar-benar dapat mengevaluasi distribusi untuk ddd ).
Dengan asumsi Anda mulai di posisi dan telah menerima d , buat proposal bersama yxdy
lambda <- r<SOMEDISTRIBUTION>(foo, bar)
y <- x + lambda * d
dan lakukan Langkah Metropolis-Hastings untuk memutuskan apakah akan pindah ke y atau tidak.
Tentu saja, seberapa baik ini dapat bekerja akan tergantung pada distribusi dan seberapa mahal untuk (berulang kali) mengevaluasi kepadatannya dalam langkah sampel penolakan, tetapi karena menghasilkan proposal untuk d adalah murah, Anda mungkin lolos begitu saja.dd
Ditambahkan untuk manfaat @ csgillespie:
Dari apa yang saya dapat kumpulkan oleh beberapa googling, MCMC hit-and-run berguna terutama untuk pencampuran cepat jika Anda memiliki target (multivarian) yang memiliki dukungan sewenang-wenang tetapi tidak terhubung, karena memungkinkan Anda untuk bergerak dari titik mana pun dalam mendukung satu sama lain dalam satu langkah. Lebih banyak di sini dan di sini .