§3. Метод Неймана: оставляем только то, что под графиком
Метод обратной функции требует посчитать . А если плотность хитрая и функцию распределения даже не выписать? Для этого фон Нейман придумал приём, который работает почти всегда: кидать точки и отбраковывать лишние. Его называют методом исключения.
Рецепт
Пусть величина живёт на отрезке , а её плотность ограничена: . Обведём график плотности прямоугольником и будем кидать в него точки равномерно:
Пусть — номер первой точки, попавшей под график: . Выдаём её абсциссу .
Утверждение 4. Величина распределена так же, как .
По-дворовому: насыпал семки в коробку наугад, а потом выкинул все, что легли выше нарисованной кривой. Оставшиеся лежат гуще там, где кривая выше, — ровно как требует плотность.
Почему это работает
Шанс, что одна точка ляжет под график, — это доля площади под кривой в площади прямоугольника. Площадь под плотностью равна 1, поэтому
Теперь разложим по номеру первой удачной точки (формула полной вероятности). «Остановились на -й и её абсцисса » значит: первые точек промахнулись, а -я легла под график левее . Точки независимы, поэтому
По кирпичикам: — шанс первых промахов; дробь — доля площади под графиком левее , то есть . Остаётся геометрическая прогрессия:
Цена: сколько бросков уходит
Каждая точка удачна с шансом , поэтому на одно число в среднем уходит бросков — ровно площадь прямоугольника. Отсюда правило: прямоугольник должен облегать график как можно плотнее. Поставил вдвое выше максимума плотности — бросков стало вдвое больше, половина работы в отходы.
Покрути виджет. Сверху видно, какие броски приняты (красные, под графиком) и какие выброшены (серые). Снизу гистограмма принятых ложится на плотность. Подними и смотри, как растёт доля отходов.
Метод в коде, на косом бета-распределении с плотностью :
Расслоённый вариант
Если плотность то высокая, то низкая, один общий прямоугольник выйдет «дырявым» и бросков уйдёт много. Тогда отрезок режут на кусочки , и над каждым ставят свой прямоугольник высотой — получается ступенчатая «крыша», плотно облегающая график.
Это смесь из §2: плотность раскладывается как , где . Метод суперпозиции в два хода:
- Разыграть номер кусочка с вероятностями .
- Методом Неймана кидать точки в прямоугольник до первого попадания под график.
В среднем бросков уйдёт — площадь ступенчатой крыши. При мелком разбиении она стремится к площади под графиком, то есть к 1: почти без отходов.
Так можно моделировать даже величину с бесконечным носителем. Например, показательную плотность раскладывают на куски с весами , где — ровно утверждение 3 из главы 4 про целую и дробную части.
А датчик фон Неймана из §3 главы 4 — это тот же метод исключения, только точки кидают не в прямоугольник, а в бесконечномерный куб, и «попадание под график» заменено событием «нисходящая серия оборвалась на чётном месте». Объём этого множества как раз .