Условие
Автобусы приходят в среднем каждые 10 минут, но интервалы экспоненциальные (не фиксированные). Пассажир приходит в случайный момент времени. Каково:
- Среднее время ожидания пассажира?
- Средняя длина интервала, в который он попадёт?
(Кажется, ответ «5 минут» и «10 минут», но это не совсем так.)
Решение
Подход — размер-смещённое распределение
Парадокс: интервалы между автобусами имеют среднее 10 минут, но интервал, в который попадает пассажир, в среднем длиннее 10 минут — потому что пассажир чаще оказывается в длинном интервале (по «прицельному» свойству).
Для экспоненциальных интервалов
Если интервалы T ~ Exp(λ) с 1/λ = 10:
- Memoryless property: время до следующего автобуса в любой случайный момент тоже Exp(λ). Поэтому среднее ожидание = 10 минут, не 5.
- Аналогично, среднее время от последнего автобуса = 10 минут.
- Средний интервал, в который попал пассажир = 20 минут (а не 10!).
Формальный вывод
Пусть f_T(t) = λe^{-λt}. Распределение size-biased интервала, в который попадает пассажир:
f̃_T(t) = t · f_T(t) / E[T] = t · λe^{-λt} / (1/λ) = λ² · t · e^{-λt}
Это — гамма-распределение Gamma(shape=2, rate=λ):
E[T̃] = 2/λ = 20 минут
Var[T̃] = 2/λ² = 200
Симуляция
import numpy as np
rng = np.random.default_rng(0)
N = 1_000_000
intervals = rng.exponential(scale=10, size=N)
arrival = np.cumsum(intervals) # моменты прихода автобусов
T_total = arrival[-1]
# случайный момент пассажира
t_pas = rng.uniform(0, T_total, size=10000)
# найти интервал, в который попал
idx = np.searchsorted(arrival, t_pas)
chosen_intervals = intervals[idx]
print("avg interval seen by passenger:", chosen_intervals.mean()) # ≈ 20
# время ожидания до следующего автобуса
wait = arrival[idx] - t_pas
print("avg wait:", wait.mean()) # ≈ 10Случай фиксированных интервалов
Если автобусы строго каждые 10 минут — пассажир ждёт в среднем 5 минут, попадает в интервал длиной 10. Парадокс исчезает при отсутствии вариации.
Общая формула (для любого распределения)
E[T̃] = E[T²] / E[T]
E[wait] = E[T²] / (2 · E[T]) // при равномерном моменте прихода
- Если
T = const→E[T²] = (E[T])²→E[T̃] = E[T],E[wait] = E[T]/2. - Чем больше дисперсия, тем больше
E[T̃] / E[T]иE[wait] / (E[T]/2).
Интуитивный пример: «ожидание лифта»
- Лифт ходит часто, когда никого нет; редко — когда занят.
- Пассажир приходит «когда лифт занят».
- Вы попадаете в «длинный» промежуток.
Применение в DS
- Survival analysis: time-to-event распределения с size-biased sampling в наблюдениях (Length-biased sampling).
- A/B-тесты с сессиями переменной длины: «среднее время сессии» по случайно выбранному моменту ≠ среднее по сессиям.
- Web logs: «длительность среднего ожидания ответа» по случайно выбранному пользователю ≠ среднее ожидание.
Подводные камни
- «Среднее ожидание = E[T]/2» — верно только для константных интервалов или малой дисперсии.
expmemoryless property — особенный случай: ожидание = E[T], не E[T]/2.- Sampling момента пассажира: задача предполагает равномерный по времени выбор. Если пассажиры приходят волной (peak hour) — анализ сложнее.
- «Лучшая стратегия — приходить заранее»: не помогает по экспоненциальной шкале (memoryless).
E[T] ≠ median(T): для экспоненциального E[T] = 10, median = 6.93. Для большинства интервалов разница ниже, но интуиция «среднее = типичное» подводит.
Эталонный ответ
При T ~ Exp(1/10):
- Среднее ожидание = 10 минут (memoryless property);
- Средний интервал, в который попадает пассажир = 20 минут;
- Размер-смещённое распределение:
Gamma(2, λ).
Общая формула: E[wait] = E[T²] / (2 E[T]). Парадокс исчезает при Var(T) = 0. Размер-смещённый sampling — частая ловушка в анализе сессий, очередей и time-to-event.