Собесов

zadachi_ds: Парадокс ожидания автобуса — почему ждёшь дольше среднего

Статистика и теорверПарадоксы вероятностиСредняяMiddle

Условие

Автобусы приходят в среднем каждые 10 минут, но интервалы экспоненциальные (не фиксированные). Пассажир приходит в случайный момент времени. Каково:

  1. Среднее время ожидания пассажира?
  2. Средняя длина интервала, в который он попадёт?

(Кажется, ответ «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 = constE[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: «длительность среднего ожидания ответа» по случайно выбранному пользователю ≠ среднее ожидание.

Подводные камни

  1. «Среднее ожидание = E[T]/2» — верно только для константных интервалов или малой дисперсии.
  2. exp memoryless property — особенный случай: ожидание = E[T], не E[T]/2.
  3. Sampling момента пассажира: задача предполагает равномерный по времени выбор. Если пассажиры приходят волной (peak hour) — анализ сложнее.
  4. «Лучшая стратегия — приходить заранее»: не помогает по экспоненциальной шкале (memoryless).
  5. 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.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти