Условие
Мы хотим смоделировать число конверсий. Когда брать биномиальное распределение, когда Пуассона?
Решение
Binomial(n, p)
- Фиксированное число n испытаний.
- Каждое — независимое Bernoulli (success/fail).
- E = np, Var = np(1-p).
- Типично: «из 1000 показов сколько кликов?».
from scipy.stats import binom
binom.pmf(k=50, n=1000, p=0.05)Poisson(λ)
- Число событий за фиксированный интервал времени/пространства.
- События независимы, rate постоянный.
- E = λ, Var = λ.
- Типично: «сколько заказов за день?», «сколько ошибок в коде на 1000 строк?».
from scipy.stats import poisson
poisson.pmf(k=10, mu=8)Связь
Когда n большое и p маленькое, Binomial(n, p) → Poisson(np):
- При n > 50, p < 0.05 — Poisson хорошее приближение.
- При np > 10 — Normal приближение.
Когда какое
| Задача | Распределение | Почему |
|---|---|---|
| Конверсии из N показов | Binomial | N фиксирован |
| Заказы в день | Poisson | время фиксировано, N event'ов случайно |
| Клики на странице (фикс. посещения) | Binomial | известно N |
| Заходы в магазин в час | Poisson | время фиксировано |
| Покупки в год | Poisson | время фиксировано |
| Defects per device | Poisson | rate × «единица» |
Симптомы over-dispersion
В реальных данных Var > Mean → данные не Poisson. Тогда:
- Negative Binomial — добавляет dispersion параметр.
- Zero-inflated Poisson — много нулей (большая часть юзеров не делает ничего).
import statsmodels.api as sm
model = sm.NegativeBinomial(y, X).fit()Confidence interval для rate
Poisson(λ) → CI для λ:
- Exact (Garwood) — через chi².
- Approx: λ ± 1.96 × sqrt(λ/n).
Для конверсий (Binomial) — Wilson или Clopper-Pearson.
Подводные камни
- Считать «среднее число событий + Poisson» при Var >> Mean — over-dispersion, нужен NegBin.
- Bernoulli vs Binomial: один-показ это Bernoulli, сумма Bernoulli — Binomial.
- Poisson зависит от единицы (час vs день). Указывайте.
- Independence: если события «слипаются» (всплеск активности), Poisson врёт.
- Approximation Binomial→Poisson→Normal: для p близкого к 0.5 — сразу Normal; для редких — Poisson лучше.
Эталонный ответ
Binomial: фиксированное n испытаний (показы→клики). Poisson: фиксированный интервал, случайное число событий (заказы/час). При n large p small — эквивалентны. Над-дисперсия → Negative Binomial.