[SciPy-User] special: beta or gamma
josef.pktd at gmail.com
josef.pktd at gmail.com
Wed Oct 10 18:58:35 EDT 2012
scipy.stats has a bit of a mixed usage
in most cases we use gammaln to get higher precision, but maybe betaln
would be better
>>> factorial(30) / factorial(5) / factorial(25)
142506.0
>>> 1./special.beta(6, 26) / 31
142505.99999999997
>>> special.gamma(31) / special.gamma(6) / special.gamma(26)
142506.0
>>> np.log(factorial(30) / factorial(5) / factorial(25))
11.867139383067599
>>> -special.betaln(6, 26) - np.log( 31)
11.867139383067599
>>> special.gammaln(31) - special.gammaln(6) - special.gammaln(26)
11.867139383067581
or maybe there is no difference
>>> n1, n2 = 5000, 4000
>>> -special.betaln(n1+1, n2+1) - np.log(n1 + n2 + 1)
6177.8820911143594
>>> special.gammaln(n1+n2+1) - special.gammaln(n1+1) - special.gammaln(n2+1)
6177.8820911143594
>>> n1, n2 = 50000, 4000
>>> special.gammaln(n1+n2+1) - special.gammaln(n1+1) - special.gammaln(n2+1)
14253.783294794481
>>> -special.betaln(n1+1, n2+1) - np.log(n1 + n2 + 1)
14253.78329479451
some ``special`` notes while finding out how many permutations we have.
Josef
More information about the SciPy-User
mailing list