Nói chung, tôi thực sự khuyên bạn không nên mã hóa MCMC của riêng bạn để phân tích Bayes áp dụng thực sự. Đây là cả một công việc và thời gian tốt và rất có khả năng giới thiệu các lỗi trong mã. Bộ lấy mẫu hộp đen, chẳng hạn như Stan, đã sử dụng bộ lấy mẫu rất tinh vi. Tin tôi đi, bạn sẽ không viết mã cho một mẫu của tầm cỡ này chỉ cho một phân tích!
Có những trường hợp đặc biệt trong đó sẽ không đủ. Ví dụ: nếu bạn cần thực hiện phân tích trong thời gian thực (nghĩa là quyết định của máy tính dựa trên dữ liệu đến), các chương trình này sẽ không phải là một ý tưởng hay. Điều này là do Stan yêu cầu biên dịch mã C ++, có thể mất nhiều thời gian hơn so với việc chỉ chạy một bộ lấy mẫu đã được chuẩn bị cho các mô hình tương đối đơn giản. Trong trường hợp đó, bạn có thể muốn viết mã của riêng bạn. Ngoài ra, tôi tin rằng có những trường hợp đặc biệt mà các gói như Stan làm rất kém, chẳng hạn như các mô hình không gian nhà nước không phải Gaussian (tiết lộ đầy đủ: Tôi tin rằng Stan làm rất kém trong trường hợp này, nhưng không biết). Trong trường hợp đó, có thể đáng để thực hiện MCMC tùy chỉnh. Nhưng đây là ngoại lệ, không phải là quy tắc!
Thành thật mà nói, tôi nghĩ rằng hầu hết các nhà nghiên cứu viết mẫu cho một phân tích duy nhất (và điều này xảy ra, tôi đã thấy nó) làm như vậy bởi vì họ thích viết các mẫu lấy mẫu của riêng họ. Ít nhất, tôi có thể nói rằng tôi thuộc thể loại đó (tức là tôi thất vọng vì viết bộ lấy mẫu của riêng tôi không phải là cách tốt nhất để làm mọi việc).
Ngoài ra, mặc dù việc viết mẫu của riêng bạn cho một phân tích không có ý nghĩa gì, nhưng việc viết mã của riêng bạn cho một lớp phân tích sẽ không có ý nghĩa gì. Là các JAG, Stan, v.v. là những người lấy mẫu hộp đen, bạn luôn có thể làm mọi thứ nhanh hơn bằng cách chuyên dùng cho một mô hình nhất định, mặc dù số lượng cải tiến phụ thuộc vào mô hình. Nhưng viết một bộ lấy mẫu cực kỳ hiệu quả có thể là 10-1.000 giờ làm việc, tùy thuộc vào kinh nghiệm, độ phức tạp của mô hình, v.v ... Nếu bạn đang nghiên cứu về phương pháp Bayes hoặc viết phần mềm thống kê, điều đó tốt; đó là việc của bạn. Nhưng nếu sếp của bạn nói "Này, bạn có thể phân tích tập dữ liệu đo lặp đi lặp lại này không?" và bạn dành 250 giờ để viết một bộ lấy mẫu hiệu quả, sếp của bạn có thể sẽ buồn. Ngược lại, bạn có thể đã viết mô hình này bằng Stan trong 2 giờ và có 2 phút thời gian chạy thay vì thời gian chạy 1 phút mà bộ lấy mẫu hiệu quả đạt được.