Распределение Пуассона простыми словами
z-test для H0: p1 = p2 какую оценку p обычно используют при расчёте стандартной ошибки доли?Содержание:
Зачем это знать
«Сколько покупок будет за час», «сколько запросов в сервис за минуту», «сколько дефектов на 1000 строк кода» — все эти задачи описываются Пуассоном. Это базовое распределение для счётных данных.
На собесах часто: «как моделировать число звонков в колл-центре?». Правильный ответ — Пуассон с параметром λ.
Короткое объяснение
Poisson(λ) описывает количество событий за фиксированный интервал (время, пространство), когда:
- События независимы
- Происходят с постоянной средней скоростью λ
- Два события не могут случиться одновременно
Примеры:
- Число сообщений в Telegram за час
- Число автобусов на остановке за 10 минут
- Число ошибок на странице
Формула
P(X = k) = (λ^k × e^(-λ)) / k!Характеристики
- Среднее: λ
- Дисперсия: λ ← равна среднему!
- Std: √λ
Уникальная особенность: среднее равно дисперсии.
Пример в аналитике
В среднем за минуту приходит 5 посетителей. Какова вероятность, что за минуту придёт ровно 7?
λ = 5, k = 7.
from scipy.stats import poisson
print(poisson.pmf(7, 5)) # ≈ 0.104Около 10%.
В Python
from scipy.stats import poisson
# Вероятность ровно 10 событий при λ = 7
poisson.pmf(10, 7)
# Вероятность ≤ 5 событий при λ = 3
poisson.cdf(5, 3)
# Симуляция
samples = poisson.rvs(mu=5, size=1000)Связь с биномиальным
Если N велико и p мало, то Binomial(N, p) ≈ Poisson(Np).
Пример: 10 000 рассылок с CR = 0.01%. Binomial(10000, 0.0001) ≈ Poisson(1).
Использование
Веб-трафик
Число запросов к серверу в секунду. В инфра-аналитике — модель Пуассона для планирования нагрузки (capacity planning).
Маркетинг
Число обращений в техподдержку за день. Позволяет оценить нагрузку.
Качество
Дефекты на единицу продукции. Классика из бизнеса.
Редкие события
Покупки премиума в час. Редкие события без верхнего предела.
Ожидание vs дисперсия
Если среднее ≠ дисперсии — возможно, overdispersion (сверхрассеяние). Тогда не Пуассон, а отрицательное биномиальное.
Проверка:
mean = data.mean()
var = data.var()
# Если var / mean > 1.5 — overdispersedЗадачи
Задача 1
«В колл-центре 20 звонков в час. Какова вероятность, что в час будет ≥ 30?».
λ = 20.
1 - poisson.cdf(29, 20) ≈ 1.7%Задача 2
«Клик по email раз в 100 рассылок. За день 500 рассылок. Распределение кликов?».
λ = 500 / 100 = 5. Poisson(5).
В A/B-тестах
Для счётных метрик (число действий на пользователя):
events_per_user— часто Пуассон- t-тест на средних работает, но при overdispersion точнее отрицательное биномиальное
На собесе
«Что описывает Пуассон?» Число событий за интервал при постоянной средней скорости и независимости.
«Среднее и дисперсия Пуассона?» Оба равны λ.
«Когда не подходит?» При overdispersion (дисперсия > среднего) или при зависимых событиях.
«Связь с биномиальным?» Пуассон — предел биномиального при N → ∞, p → 0, Np = const.
Частые ошибки
Использовать для непрерывных величин
Пуассон — только для счётных неотрицательных. Для непрерывных величин не подходит.
Игнорировать overdispersion
Реальные данные часто имеют дисперсию больше среднего. Тогда нужно отрицательное биномиальное.
Не учитывать «пачки» событий
Если события идут пачками (bursty) — Пуассон не подойдёт. Это Hawkes process или self-exciting.
Связанные темы
FAQ
Пример в жизни?
Число звонков в техподдержку за час. Число кликов по рекламе за минуту.
Можно ли для времени между событиями?
Нет, это экспоненциальное распределение. Пуассон — количество, экспоненциальное — интервалы между событиями.
Параметр λ как найти?
По данным: λ̂ = mean.