Связь между биномиальным распределением и распределением Пуассона
Вы только что узнали, что распределение Пуассона является предельным случаем биномиального распределения для редких событий. Это становится понятно, если обратиться к описательным примерам. Предположим, мы проводим испытание Бернулли каждую минуту на протяжении часа, причём вероятность успеха в каждом испытании равна 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))