Я не дивився на наданий вами папір, але все одно дозвольте мені піти:
Якщо у вас є -вимірний простір параметрів, ви можете генерувати випадковий напрямок рівномірно розподілений на поверхні одиничної сфери за допомогоюpd
x <- rnorm(p)
d <- x/sqrt(sum(x^2))
(пор. Wiki ).
Потім використовуйте це для створення пропозицій щодо для вибірки відхилення (якщо припустити, що ви можете фактично оцінити розподіл для ).dd
Якщо припустити, що ви починаєте в позиції і прийняли , створіть пропозицію зxdy
lambda <- r<SOMEDISTRIBUTION>(foo, bar)
y <- x + lambda * d
і зробити Метрополіс-Гастінгс-Step , щоб вирішити , слід чи перейти до чи ні.y
Звичайно, наскільки добре це може працювати, буде залежати від розподілу і наскільки дорого (неодноразово) оцінювати його щільність на етапі вибірки відхилення, але оскільки створення пропозицій для дешеве, ви можете від нього піти.dd
Додано для переваги @ csgillespie:
З того, що мені вдалося зібрати за допомогою якогось гуглінгу, удару та запуску MCMC корисно в першу чергу для швидкого змішування, якщо у вас є (багатоваріантна) ціль, яка має довільну обмежену, але не обов'язково підключену підтримку, тому що вона дозволяє вам рухатися з будь-якої точки в підтримку будь-якого іншого за один крок. Більше тут і тут .