ho bisogno di fare un test binomiale in Python che permette di calcolo per 'n' numeri dell'ordine di 10000.test binomiale in Python per numeri molto grandi
Ho implementato una funzione binomial_test rapido utilizzando scipy.misc. il pettine, tuttavia, è praticamente limitato attorno a n = 1000, immagino perché raggiunge il massimo numero rappresentabile mentre calcola i fattoriali o il combinatorio stesso. Qui è la mia funzione:
from scipy.misc import comb
def binomial_test(n, k):
"""Calculate binomial probability
"""
p = comb(n, k) * 0.5**k * 0.5**(n-k)
return p
Come potrei utilizzare una funzione (o NumPy, SciPy ...) pitone nativo al fine di calcolare che binomiale di probabilità? Se possibile, ho bisogno del codice compatibile di Scipy 0.7.2.
Grazie mille!
Quali versioni di numpy e scipy hai installato? La parte __doc__ sul mio sistema (python 2.6.4, numpy 1: 1.3.0-3, scipy 0.7.2) è diversa e ottengo 'binom_test (500, 10000) = 0.99999999999999989'. Dovrebbe essere facile installare le versioni più recenti di numpy e scipy su ubuntu, solo che non è ... – Morlock
La stessa cosa qui su OS X con Python 2.6.5, numpy 1.4.1, scipy 0.7.0: binom_test (500 , 10000) = 0.99999 ... – EOL
Ho l'ultimo, numpy 1.4.1 e scipy 0.8.0b1. I documenti online per scipy 0.7.2 sono leggermente diversi, ma sembrano significare la stessa cosa: http://docs.scipy.org/doc/scipy-0.7.x/reference/generated/scipy.stats.binom_test.html# scipy.stats.binom_test. Ma ho appena provato su una macchina Debian, con Python 2.5.4, numpy 1.2.1 e scipy 0.7.0, e ottengo lo stesso risultato di te (0.99999999999999989). Forse un bug su versioni precedenti di scipy? http://projects.scipy.org/scipy/ticket/986 – rbp