Frage

Wenn Sie die Poisson -Funktion in Excel (oder in OpenOffice Calc) verwenden, dauert es zwei Argumente:

  • eine Ganzzahl
  • eine "durchschnittliche" Zahl

und gibt einen Schwimmer zurück.

In Python (ich habe Randomarray und Numpy ausprobiert) gibt es eine Reihe von zufälligen Poisson -Zahlen zurück. Was ich wirklich will, ist der Prozentsatz, den dieses Ereignis auftritt (es ist eine konstante Zahl und das Array hat jedes Mal unterschiedliche Zahlen - ist es also ein Durchschnitt?).

zum Beispiel:

print poisson(2.6,6)

kehrt zurück [1 3 3 0 1 3] (Und jedes Mal, wenn ich es leite, ist es anders).

Die Zahl, die ich von Calc/Excel bekomme, beträgt 3.19 (POISSON(6,2.16,0)*100).

Verwende ich das Poisson des Python falsch (kein Wortspiel!) Oder fehlt mir etwas?

War es hilfreich?

Lösung

Es ist einfach von Hand zu tun, aber Sie können es so überfüllen. Sie können den Exponenten und Faktor in einer Schleife durchführen, um den Überlauf zu vermeiden:

def poisson_probability(actual, mean):
    # naive:   math.exp(-mean) * mean**actual / factorial(actual)

    # iterative, to keep the components from getting too large or small:
    p = math.exp(-mean)
    for i in xrange(actual):
        p *= mean
        p /= i+1
    return p

Andere Tipps

scipy hat was du willst

>>> scipy.stats.distributions
<module 'scipy.stats.distributions' from '/home/coventry/lib/python2.5/site-packages/scipy/stats/distributions.pyc'>
>>> scipy.stats.distributions.poisson.pmf(6, 2.6)
array(0.031867055625524499)

Es ist erwähnenswert, dass es ziemlich einfach von Hand zu berechnen ist, zu.

Diese Seite Erklärt, warum Sie zumindest ein Array und die Bedeutung der Zahlen erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top