Звʼязок між біноміальним і пуассонівським розподілами
Щойно ви почули, що розподіл Пуассона є граничним випадком біноміального розподілу для рідкісних подій. Це логічно, якщо згадати „історії". Припустімо, ми виконуємо підкидання Бернуллі щохвилини протягом години, кожне з імовірністю успіху 0,1. Маємо 60 випробувань, кількість успіхів має біноміальний розподіл, і ми очікуємо приблизно 6 успіхів. Це схоже на пуассонівську „історію", про яку йшлося у відео, де ми в середньому отримуємо 6 відвідувань сайту на годину. Отже, розподіл Пуассона зі швидкістю надходжень \(np\) наближує біноміальний розподіл для \(n\) бернуллівських випробувань з імовірністю успіху \(p\) (за великого \(n\) та малого \(p\)). Важливо, що з розподілом Пуассона часто простіше працювати, адже він має лише один параметр замість двох у біноміального розподілу.
Дослідмо ці два розподіли обчислювально. Ви обчислите середнє та стандартне відхилення вибірок із розподілу Пуассона зі швидкістю надходжень 10. Потім ви обчислите середнє та стандартне відхилення вибірок із біноміального розподілу з параметрами \(n\) і \(p\) такими, що \(np = 10\).
Ця вправа є частиною курсу
Статистичне мислення в Python (Частина 1)
Інструкції до вправи
- За допомогою функції
rng.poisson()згенеруйте10000вибірок із розподілу Пуассона із середнім10. - Створіть список значень
nіpдля біноміального розподілу. Виберітьn = [20, 100, 1000]іp = [0.5, 0.1, 0.01], щоб \(np\) завжди дорівнювало 10. - Використовуючи
rng.binomial()усередині наданого циклуfor, згенеруйте10000вибірок із біноміального розподілу для кожної париn, pі виведіть середнє та стандартне відхилення вибірок. Є 3 париn, 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))