2014-11-14 161 views
3

我想計算由預定的x(成功),n(試驗)和p(概率)的二項分佈給出的概率 - 後者由概率質量函數Beta (A,b)。Python中的Beta二項式函數

我知道scipy.stats.binom.pmf(x,n,p) - 但我不確定如何用概率函數替換p。我也想知道我是否可以使用的參數loc來模擬這種行爲。

回答

2

Wiki says該化合物分佈函數由

f(k|n,a,b) = comb(n,k) * B(k+a, n-k+b)/B(a,b) 

其中B是β函數,a和b是原始貝塔參數和n是二項式一個給定的。 k這裏是你的x和p消失,因爲你整合了p的值來獲得這個(卷積)。 也就是說,你不會在scipy中找到它,但它是一個提供了the beta function from scipy的單行提供。

+0

的選擇應該返回一個整數(我想是這樣,但['numpy.choose'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.choose.html)似乎返回一個數組)。 – TheChymera 2014-11-15 01:18:21

+0

是的,選擇是一個組合,看看那裏:http://en.wikipedia.org/wiki/Combination – JulienD 2014-11-15 18:32:28

+0

好吧,所以也許你的意思是[梳子](http://docs.scipy.org/doc/scipy- 0.14.0/reference/generated/scipy.misc.comb.html),而不是[選擇](http://docs.scipy.org/doc/numpy/reference/generated/numpy.choose.html)?我有權使用['scipy.misc.comb'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.choose.html)嗎? – TheChymera 2014-11-15 19:18:25

4

如果您的n(總#次試用)和x(#成功)的值很大,則計算Beta二項式概率的更穩定方法是使用日誌。使用β-二項式分佈函數的gamma function expansion,所需概率的自然對數是:

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給出。

(BTW:該loc說法只是轉移向左或向右分佈,這是不是你想要的這裏。)