Estou escrevendo uma subclasse scipy.stats._distn_infrastructure.rv_discrete
para a distribuição binomial beta cujo PMF é
onde é a função Beta. Minha implementação atual do CDF e SF (função de sobrevivência, equivalente a 1 - CDF) é imprecisa; a estratégia que empreguei calcula o valor esperado do binomial cdf em relação ao componente beta:
scipy.stats.beta.expect
método, que não é vetorizado de forma inata (ele trava em qualquer coisa que não seja uma matriz float ou 0d).
O PPF é ainda pior - é um loop de força bruta sobre os números inteiros tal que
Segundo a Wikipedia, a função de sobrevivência para a distribuição beta-binomial é
onde é a função hipergeométrica generalizada. Existe uma maneira eficiente de calcular isso em Python, para que eu possa remover a referência ? Além disso, como eu inverteria essa função para resolver dado ?beta.expect