2008-11-11 16 views
16

आप Excel (या ओपनऑफिस कैलस में) में POISSON फ़ंक्शन का उपयोग करते हैं, यह दो तर्क लेता है:गणना प्वाइजन संभावना प्रतिशत

  • एक पूर्णांक
  • एक 'औसत' नंबर

और एक फ्लोट देता है।

पायथन में (मैंने रैंडमएरे और न्यूमपी की कोशिश की) यह यादृच्छिक poisson संख्याओं की एक सरणी देता है। जो मैं वास्तव में चाहता हूं वह यह प्रतिशत है कि यह घटना होगी (यह एक स्थिर संख्या है और सरणी में हर बार अलग-अलग संख्या होती है - तो क्या यह औसत है?)।

उदाहरण के लिए

:

print poisson(2.6,6) 

रिटर्न [1 3 3 0 1 3] (और हर बार मैं इसे चलाने के लिए, यह अलग है)।

मुझे कैल्क/एक्सेल से प्राप्त संख्या 3.1 9 (POISSON(6,2.16,0)*100) है।

क्या मैं अजगर के poisson गलत (कोई पन!) का उपयोग कर रहा हूँ या मैं कुछ याद कर रहा हूँ?

उत्तर

13

हाथ से करना आसान है, लेकिन आप इसे इस तरह से बहाना कर सकते हैं। आप एक पाश में प्रतिपादक और भाज्य कर सकते हैं अतिप्रवाह से बचने के लिए:

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 
1

This page बताता है कि आप एक सरणी क्यों प्राप्त करते हैं, और इसमें संख्याओं का अर्थ कम से कम।

23

scipy आप क्या चाहते हैं

>>> 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) 

यह ध्यान देने योग्य है कि यह हाथ से गणना करने के लिए too बहुत आसान है लायक है है।

+1

वैकल्पिक आयात होगा: 'scipy.stats poisson' आयात से तो' poisson.pmf (6, 2.6) '= .031867055625524499 – Jarad

संबंधित मुद्दे