Розподіл Пуассона та процес Пуассона
Чому рідкісні незалежні події — радіоактивний розпад, запити до сервера, друкарські помилки на сторінці — підпорядковуються одній і тій самій простій формулі? Ми виведемо розподіл Пуассона як граничний випадок біноміального розподілу, побудуємо неперервний у часі процес Пуассона з експоненційних часів очікування та симулюємо обидва на JavaScript.
1. Розподіл Пуассона
Дискретна випадкова величина X має розподіл Пуассона з параметром інтенсивності λ > 0, якщо вона рахує кількість подій у фіксованому інтервалі, коли події відбуваються незалежно з постійною середньою швидкістю:
λ одночасно є математичним сподіванням і дисперсією X — характерна ознака даних із розподілом Пуассона. Якщо ви щось рахуєте і вибіркова дисперсія близька до вибіркового середнього, Пуассон — природна перша модель.
2. Від біноміального до Пуассонового: граничний перехід
Поділимо інтервал на n дуже коротких підінтервалів, кожен настільки короткий, що в ньому може статися щонайбільше одна подія, з імовірністю p = λ/n. Кількість подій тоді має розподіл Binomial(n, p):
Візьмемо границю при n → ∞, тримаючи λ = np сталим. Розкриваючи біноміальний коефіцієнт і використовуючи стандартну границю (1 − λ/n)ⁿ → e−λ:
= (λᵏ/k!) · [n(n−1)···(n−k+1)/nᵏ] · (1−λ/n)ⁿ · (1−λ/n)⁻ᵏ
// при n→∞: середня дужка → 1, (1−λ/n)ⁿ → e⁻λ, (1−λ/n)⁻ᵏ → 1
→ (λᵏ/k!) · e−λ
Це закон рідкісних подій (граничну теорему Пуассона формалізував Сімеон Дені Пуассон у 1837 році): біноміальний розподіл із багатьма випробуваннями та малою ймовірністю успіху в кожному, але сталим добутком np = λ, збігається до Poisson(λ). На практиці апроксимація вже дуже точна при n ≥ 20, p ≤ 0.05.
3. Процес Пуассона та часи очікування
Процес Пуассона розширює розподіл на неперервний час. Це процес підрахунку N(t), що задовольняє три аксіоми:
- N(0) = 0, і прирости на неперетинних інтервалах незалежні.
- Кількість подій на інтервалі довжиною t має розподіл Poisson(λt).
- Події не можуть відбуватися одночасно (упорядкованість): P(2+ подій на [t, t+h]) = o(h).
Разючий наслідок: час між послідовними подіями — час між надходженнями — має експоненційний розподіл із тим самим параметром λ.
P(T > t) = e−λt ⟹ T ~ Exponential(λ), f(t) = λe−λt
Оскільки експоненційний розподіл є «без пам'яті» — P(T > s+t | T > s) = P(T > t) — процес не «пам'ятає», скільки він уже чекав. Саме це робить процес Пуассона канонічною моделлю для надходжень, які справді випадкові й некорельовані.
Δt = −ln(U) / λ (U ~ Uniform(0,1)) і накопичуючи моменти надходження. Це точний метод без
похибки дискретизації.
4. Властивості: середнє, дисперсія, суперпозиція, проріджування
| Властивість | Формула | Інтерпретація |
|---|---|---|
| Середнє | E[X] = λ | Очікувана кількість за інтервал |
| Дисперсія | Var[X] = λ | Рівнодисперсність — середнє = дисперсія |
| Асиметрія | 1/√λ | Скіс вправо при малих λ, ≈ Normal при великих λ |
| Твірна функція моментів | M(t) = exp(λ(eᵗ−1)) | Породжує всі моменти |
Суперпозиція
Якщо два незалежні процеси Пуассона з параметрами λ₁ та λ₂ об'єднати (наприклад, надходження від двох незалежних серверів в одну чергу), об'єднаний процес буде Пуассоновим з параметром λ₁ + λ₂. Це прямо випливає з адитивності незалежних Пуассонових випадкових величин: X₁ ~ Poisson(λ₁), X₂ ~ Poisson(λ₂) ⟹ X₁ + X₂ ~ Poisson(λ₁ + λ₂).
Проріджування
І навпаки, якщо кожна подія процесу Poisson(λ) незалежно залишається з ймовірністю p (наприклад, лише 10% вхідних запитів — помилки), залишені події утворюють процес Пуассона з параметром λp, а відкинуті — незалежний процес Пуассона з параметром λ(1−p). Ця властивість «розщеплення» унікальна для процесів Пуассона і активно використовується в аналізі мереж масового обслуговування.
5. Застосування
| Галузь | λ означає | k рахує |
|---|---|---|
| Радіоактивний розпад | Швидкість розпаду | Частинки, зафіксовані за секунду |
| Кол-центр / веб-сервер | Запити за хвилину | Запити за конкретну хвилину |
| Друкарські помилки в рукописі | Середня кількість помилок на сторінку | Помилки на конкретній сторінці |
| Страхові виплати | Виплати на рік | Виплати, оформлені за рік |
| Теорія черг M/M/1 | Швидкість надходження λ, швидкість обслуговування μ | Клієнти в системі |
Найпростіша модель теорії черг — M/M/1 («марковські надходження, марковське обслуговування, 1 сервер») — припускає, що і надходження, і завершення обслуговування підпорядковуються процесам Пуассона. Саме тому процес Пуассона є відправною точкою для планування пропускної здатності серверів, кол-центрів та перехресть.
6. Реалізація на JavaScript
Вибірка з Poisson(λ) — алгоритм Кнута
// Кнут (1969): точний метод для малих-помірних λ. O(λ) часу на вибірку.
function samplePoisson(lambda) {
const L = Math.exp(-lambda);
let k = 0, p = 1;
do {
k++;
p *= Math.random();
} while (p > L);
return k - 1;
}
Пряма симуляція процесу через експоненційні проміжки
// Генерує моменти надходження на [0, T] через точні експоненційні інтервали.
function simulatePoissonProcess(lambda, T) {
const arrivals = [];
let t = 0;
while (true) {
const u = Math.random();
const gap = -Math.log(u) / lambda; // експоненційний проміжок надходження
t += gap;
if (t > T) break;
arrivals.push(t);
}
return arrivals;
}
// Перевірка: розбиваємо на одиничні інтервали — лічильники мають бути ~Poisson(lambda)
function countsPerUnitInterval(arrivals, T) {
const bins = new Array(Math.ceil(T)).fill(0);
for (const t of arrivals) bins[Math.floor(t)]++;
return bins;
}
const arrivals = simulatePoissonProcess(4.5, 1000); // λ=4.5 подій/одиницю часу
const counts = countsPerUnitInterval(arrivals, 1000);
const mean = counts.reduce((a,b)=>a+b,0) / counts.length;
const variance = counts.reduce((s,x)=>s+(x-mean)**2,0) / counts.length;
console.log(mean, variance); // обидва мають бути близькі до 4.5
7. Неоднорідні процеси
Реальні швидкості надходження рідко залишаються сталими — трафік пікує в години пік, дзвінки різко зростають після оголошення про збій. Неоднорідний процес Пуассона (НПП) замінює сталу λ функцією швидкості, що змінюється в часі, λ(t). Кількість подій на [0,t] має розподіл Пуассона із середнім, що дорівнює інтегралу швидкості:
Найпростіша техніка симуляції — проріджування (алгоритм Льюїса-Шедлера): симулюємо однорідний процес Пуассона з максимальною швидкістю λ_max, а потім залишаємо кожну кандидатну подію незалежно з імовірністю λ(t)/λ_max. Це зводить неоднорідний випадок до звичайного проріджування Пуассона, яке ми вивели в розділі 4.
🎯 Дослідіть симуляції Монте-Карло
Запустіть тисячі стохастичних випробувань у браузері та спостерігайте закон великих чисел у дії.