НачатьНачать бесплатно

Связь между биномиальным распределением и распределением Пуассона

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