Sugestões para integral numérica sobre distribuição Pólya


8

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",

p(nα)=(N!)Γ(Kα)Γ(α)KΓ(N+Kα)Eu=1KΓ(nEu+α)nEu!

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 NnEuN=Eu=1KnEun=(n1,n2,,nK)α>0 00 0(outros termos)p(n|α)dαNN

Atualmente, o método "melhor" quando N é grande é calcular registro[p(n|α)] 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 p(n|α) , realizada pela computação registrop(n|α) usando algum código cuidadosamente escrito para calcular registroΓ(x) para x grande x, 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ê podeN108nEu105nEu

(outros termos)=exp(-α)


Você pode dar um exemplo típico / concreto integral? Por exemplo, fornecendo valores para n_i, N, a e os (outros termos)?
Andrew Moylan

Eu certamente irei!
sim

@ sydeulissie: você resolveu o problema (já que não postou um exemplo típico)?
GertVdE

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.
Bort

Respostas:


-1

Para integração, use uma regra de quadratura gaussiana ao lidar com exponenciais como regra geral. A título de exemplo, a integração de uma função cúbica em uma pequena área com a regra dos simpsons ou a regra trapezoidal não precisa de um N grande, mas usá-los para uma função exponencial leva a um grande N necessário para alcançar a convergência. Portanto, sempre opte por um interpolante baseado em exponencial (ou seja: regra da quadratura gaussiana). Se isso falhar, você precisará plotar a função para ver a rapidez com que está oscilando e como ela morre / aumenta com a área de integração.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.