Thuật toán Metropolis-Hastings là một thuật toán sinh ra số giả ngẫu nhiên hội tụ đến phân phối dừng của một chuỗi Markov. Nó được sử dụng rộng rãi trong mô phỏng ngẫu nhiên, đặc biệt trong thống kê, thống kê vật lý.
Thuật toán Metropolis-Hastings: Giả sử ta cần sinh một mẫu ngẫu nhiên của quá trình Markov \(X_0,X_1,...\) có phân phối dừng là \(f(x)\) (hàm mục tiêu). Thuật toán được thực hiện qua các bước sau
- Đề xuất một phân phối (phù hợp) \(g(\cdot| X_t)\);
- Sinh \(X_0\) từ phân phối \(g\);
- Lặp lại (cho đến khi dãy hội tụ đến phân phối dừng theo một tiêu chuẩn nào đó):
+ Sinh \(Y\) từ \(g(\cdot| X_t)\),
+ Sinh \(U\) từ phân phối đều U\((0,1)\),
+ Nếu $$U \leq \dfrac{f(Y)g(X_t|Y)}{f(X_t)g(Y|X_t)}$$ ta chấp nhận \(Y\) và đặt \(X_{t+1}=Y\); nếu không ta đặt \(X_{t+1}=X_t\);
Quan sát rằng đối tượng \(Y\) được chấp nhận với xác suất $$\alpha(X_t, Y)=\min\left(1,\dfrac{f(Y)g(X_t|Y)}{f(X_t)g(Y|X_t)}\right)$$
Ví dụ: Sinh mẫu ngẫu nhiên từ phân phối mũ \(\pi(x) = \exp(-x)\) với \(x \geq 0\). Sau đây là Histogram từ mẫu được sinh ra (10000 giá trị) so với giá trị thực của phân phối (đường liền nét).
Nhận xét: Histogram của mẫu sinh ra bởi phương pháp Metropolis-Hastings rất gần (fit) với phân phối mũ.
Tài liệu tham khảo: Christian Robert, George Casella, Introducing Monte Carlo Methods with R, Springer, 2010.
» Tin mới nhất:
» Các tin khác: