Vấn đề này phát sinh từ một dự án mô hình thống kê Bayes. Để tính toán với mô hình của tôi, tôi cần thực hiện tích hợp trong đó một phần của tích phân là Phân phối "Pólya" hoặc "Dirichlet-Multinomial",
trong đó và là các số nguyên, và . Tích phân tôi muốn tính, , hoạt động tốt đối với nhỏ , nhưng các phương thức bậc hai mà tôi đã thử (trong MATLAB) đã phá vỡ xuống khi trở nên lớn. Tôi chưa thử Monte Carlo; một phương pháp cầu phương chính xác, nhanh chóng sẽ rất tốt cho dự án của tôi. N = Σ K i = 1 n i n = ( n 1 , n 2 , ... , n K ) α > 0 ∫ ∞ 0 ( các điều khoản khác ) p ( n | α ) d α N N
Hiện tại, phương pháp "tốt nhất" khi lớn là tính toán trên một lưới ở dạng alpha, chuẩn hóa và lũy thừa. Điều này là không chính xác (về cơ bản tôi mất tất cả các chi tiết về phân phối ngoại trừ các đỉnh của nó), nhưng ít nhất là tạo ra một số.Nhật ký N [ p ( n | α ) ]
Tôi sẽ đánh giá cao bất kỳ lời khuyên nào về việc cải thiện tính toán này, hoặc con trỏ đến các thuật toán / phương pháp khác nhau hoặc phần mềm hiện có.
EDIT: Có lẽ tôi nên thêm rằng đánh giá của tôi về , được thực hiện bằng máy tính bằng cách sử dụng một số mã được viết cẩn thận để tính toán cho lớn , không xuất hiện để gây ra bất kỳ vấn đề.log p ( n | alpha ) đăng Γ ( x ) x
EDIT 2: Ngoài ra, các giá trị "lớn" sẽ theo thứ tự , với lớn nhất , cùng với nhiều giá trị nhỏ của . Các điều khoản khác là hành vi tốt số. Để đơn giản hóa với hành vi đuôi thích hợp, bạn có thể thực hiệnn i ∼ 10 5 n i
This is inaccurate (I lose essentially all detail about the distribution except its peaks), but at least produces a number.
Tôi không hiểu tại sao điều này nên là một vấn đề. Kết quả trong một cách tiếp cận Bayes luôn bị chi phối bởi các đỉnh (nghĩ về dao cạo của thỉnh thoảng). Các tính năng địa phương sẽ cung cấp cho bạn một đóng góp không thể bỏ qua cho xác suất cuối cùng.