Tôi đã không nhìn vào tờ giấy bạn cung cấp, nhưng dù sao tôi cũng phải đi:
Nếu bạn có một không gian tham số chiều bạn có thể tạo ra một hướng ngẫu nhiên phân bố đều trên bề mặt của hình cầu đơn vị vớipd
x <- rnorm(p)
d <- x/sqrt(sum(x^2))
(cf Wiki ).
Sau đó, sử dụng điều này để tạo các đề xuất cho để lấy mẫu từ chối (giả sử bạn thực sự có thể đánh giá phân phối cho ).dd
Giả sử bạn bắt đầu ở vị trí và đã chấp nhận một , hãy tạo một đề xuất vớixdy
lambda <- r<SOMEDISTRIBUTION>(foo, bar)
y <- x + lambda * d
và thực hiện một bước tiến thủ đô-đô-la để quyết định có nên chuyển sang hay không.y
Tất nhiên, việc này có thể hoạt động tốt như thế nào sẽ phụ thuộc vào việc phân phối và mức độ đắt đỏ (lặp đi lặp lại) đánh giá mật độ của nó trong bước lấy mẫu từ chối, nhưng vì việc tạo đề xuất cho rẻ nên bạn có thể bỏ qua nó.dd
Đã thêm cho lợi ích của @ csgillespie:
Từ những gì tôi có thể thu thập được bởi một số googling, MCMC hit-and-run rất hữu ích cho việc trộn nhanh nếu bạn có một mục tiêu (đa biến) có giới hạn tùy ý nhưng không nhất thiết phải hỗ trợ kết nối, bởi vì nó cho phép bạn di chuyển từ bất kỳ điểm nào trong hỗ trợ cho bất kỳ khác trong một bước. Thêm ở đây và ở đây .