Binomial और Poisson वितरणों के बीच संबंध
आपने अभी सुना कि दुर्लभ घटनाओं के लिए Poisson वितरण, Binomial वितरण की एक सीमा (limit) है. अगर आप दोनों की कहानियों के बारे में सोचें, तो यह बात समझ में आती है. मान लीजिए हम एक घंटे तक हर मिनट एक Bernoulli ट्रायल करते हैं, और हर बार सफलता की प्रायिकता 0.1 है. हम 60 ट्रायल करेंगे, सफलताओं की संख्या Binomial रूप से वितरित होगी, और हमें औसतन लगभग 6 सफलताएँ मिलने की उम्मीद होगी. यह वैसा ही है जैसा हमने वीडियो में Poisson की कहानी में देखा था, जहाँ हमें प्रति घंटे किसी वेबसाइट पर औसतन 6 हिट मिलती हैं. इसलिए, आगमन दर \(np\) वाला Poisson वितरण, \(n\) Bernoulli ट्रायल्स और सफलता की प्रायिकता \(p\) वाले Binomial वितरण का अनुमान (approximation) देता है (जब \(n\) बड़ा और \(p\) छोटा हो). महत्वपूर्ण बात यह है कि Poisson वितरण के साथ काम करना अक्सर सरल होता है, क्योंकि इसमें Binomial की तरह दो नहीं, केवल एक पैरामीटर होता है.
आइए, इन दोनों वितरणों को कंप्यूटेशनल तरीके से जाँचते हैं. आप 10 की आगमन दर वाले Poisson वितरण से सैंपल्स लेकर उनका mean और standard deviation निकालेंगे. फिर, आप ऐसे \(n\) और \(p\) पैरामीटर वाले Binomial वितरण से सैंपल्स लेकर उनका mean और standard deviation निकालेंगे जिनके लिए \(np = 10\) हो.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Statistical Thinking in Python (Part 1)
अभ्यास निर्देश
rng.poisson()फंक्शन का उपयोग करके, mean10वाले Poisson वितरण से10000सैंपल खींचें.- Binomial वितरण के लिए विचार करने हेतु
nऔरpके मानों की सूची बनाएँ. ऐसे चुनें:n = [20, 100, 1000]औरp = [0.5, 0.1, 0.01]ताकि हर बार \(np = 10\) रहे. - दिए गए
forलूप के अंदरrng.binomial()का उपयोग करते हुए, प्रत्येकn, pजोड़ी के लिए Binomial वितरण से10000सैंपल खींचें और सैंपल्स का mean और standard deviation प्रिंट करें. कुल 3n, pजोड़ियाँ हैं:20, 0.5,100, 0.1, और1000, 0.01. लूप के अंदर इन्हेंn[i], p[i]के रूप में एक्सेस किया जा सकता है.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Draw 10,000 samples out of Poisson distribution: samples_poisson
# Print the mean and standard deviation
print('Poisson: ', np.mean(samples_poisson),
np.std(samples_poisson))
# Specify values of n and p to consider for Binomial: n, p
# Draw 10,000 samples for each n,p pair: samples_binomial
for i in range(3):
samples_binomial = ____
# Print results
print('n =', n[i], 'Binom:', np.mean(samples_binomial),
np.std(samples_binomial))