Esse problema surge de um projeto de modelagem estatística bayesiano. Para calcular com meu modelo, preciso realizar uma integração na qual parte do integrando seja a distribuição "Pólya" ou "Dirichlet-Multinomial",
onde e são números inteiros, n = \ left (n_1, n_2, \ dots, n_K \ right) e \ alpha> 0 . A integral que desejo calcular, \ int_0 ^ \ infty (\ text {other terms}) p (n | \ alpha) d \ alpha , funciona bem para N pequeno , mas os métodos de quadratura que eu tentei (no MATLAB) quebram para baixo quando N se torna grande. Eu não tentei Monte Carlo; um método preciso e rápido de quadratura seria muito bom para o meu projeto. N = ∑ K i = 1 n i n = ( n 1 , n 2 , … , n K ) α > 0 ∫ ∞ 0 ( outros termos ) p ( n | α ) d α N N
Atualmente, o método "melhor" quando é grande é calcular em uma grade em alfa, normalizar e exponenciar. Isso é impreciso (perco essencialmente todos os detalhes sobre a distribuição, exceto seus picos), mas pelo menos produz um número.
Eu gostaria de receber algum conselho sobre como melhorar esse cálculo, ou apontar para diferentes algoritmos / métodos ou software existente.
EDIT: Talvez eu deva acrescentar que minha avaliação de , realizada pela computação usando algum código cuidadosamente escrito para calcular para x grande , não parece estar causando problemas.
EDIT 2: Além disso, valores "grandes" seriam da ordem de , com o maior , junto com muitos valores pequenos de . Os outros termos são numericamente bem-comportados. Como uma simplificação com aproximadamente o comportamento apropriado da cauda, você pode
This is inaccurate (I lose essentially all detail about the distribution except its peaks), but at least produces a number.
Não entendo por que isso deve ser um problema. O resultado de uma abordagem bayesiana é sempre dominado pelos picos (pense na navalha de Ocam). Os recursos locais fornecerão uma contribuição negligenciável para as probabilidades finais.