所定の x(成功)、n(試行)、および p(確率) の二項分布によって与えられる確率を計算したいと思います。後者は、確率質量関数 Beta(a,b) によって与えられます。
私は知ってscipy.stats.binom.pmf(x,n,p)
いますが、pを確率関数に置き換える方法がわかりません。loc
の引数を 使用してscipy.stats.binom.pmf
この動作をエミュレートできるかどうかも疑問に思っています。
所定の x(成功)、n(試行)、および p(確率) の二項分布によって与えられる確率を計算したいと思います。後者は、確率質量関数 Beta(a,b) によって与えられます。
私は知ってscipy.stats.binom.pmf(x,n,p)
いますが、pを確率関数に置き換える方法がわかりません。loc
の引数を 使用してscipy.stats.binom.pmf
この動作をエミュレートできるかどうかも疑問に思っています。
n
(合計試行数) と(成功数)の値x
が大きい場合、ベータ二項確率を計算するより安定した方法は、ログを使用することです。ベータ二項分布関数のガンマ関数展開を使用すると、目的の確率の自然対数は次のようになります。
ln(answer) = gammaln(n+1) + gammaln(x+a) + gammaln(n-x+b) + gammaln(a+b) - \
(gammaln(x+1) + gammaln(n-x+1) + gammaln(a) + gammaln(b) + gammaln(n+a+b))
ここgammaln
で、 は で与えられるガンマ関数の自然対数ですscipy.special
。
(ところで:loc
引数は分布を左または右にシフトするだけです。これは、ここで必要なものではありません。)
ベータ二項分布は、バージョン 1.4.0 からscipy.stats.betabinomとして scipy に含まれています。