Выборка обратного преобразования
Выборка с обратным преобразованием (также известная как инверсионная выборка , обратное интегральное преобразование вероятности , метод обратного преобразования или Смирнова преобразование ) — это базовый метод выборки псевдослучайных чисел генерации чисел выборки , т. е. для случайной из любого распределения вероятностей заданного . его кумулятивная функция распределения .
Выборка обратного преобразования берет однородные выборки числа. между 0 и 1, интерпретируется как вероятность, а затем возвращает наименьшее число такой, что для кумулятивной функции распределения случайной величины. Например, представьте, что — стандартное нормальное распределение с нулевым средним значением и единицей стандартного отклонения. В таблице ниже показаны выборки, взятые из равномерного распределения, и их представление в стандартном нормальном распределении.
.5 | 0 |
.975 | 1.95996 |
.995 | 2.5758 |
.999999 | 4.75342 |
1-2 −52 | 8.12589 |
Мы случайным образом выбираем долю площади под кривой и возвращаем число в области определения так, чтобы именно эта доля площади находилась слева от этого числа. Интуитивно мы вряд ли выберем число в дальнем конце хвостов, потому что в них очень маленькая область, которая потребует выбора числа, очень близкого к нулю или единице.
В вычислительном отношении этот метод включает в себя вычисление функции квантиля распределения — другими словами, вычисление кумулятивной функции распределения (CDF) распределения (которая сопоставляет число в области значений с вероятностью от 0 до 1), а затем инвертирование этой функции. Это источник термина «инверсия» или «инверсия» в большинстве названий этого метода. Обратите внимание, что для дискретного распределения вычисление CDF, как правило, не слишком сложно: мы просто складываем отдельные вероятности для различных точек распределения. Однако для непрерывного распределения нам необходимо интегрировать функцию плотности вероятности (PDF) распределения, что невозможно сделать аналитически для большинства распределений (включая нормальное распределение ). В результате этот метод может оказаться неэффективным в вычислительном отношении для многих распределений, и другие методы являются предпочтительными; тем не менее, это полезный метод для создания более широко применимых пробоотборников, например, основанных на браковочной выборке. .
Для нормального распределения отсутствие аналитического выражения для соответствующей функции квантиля означает, что другие методы (например, преобразование Бокса-Мюллера ) могут быть предпочтительными в вычислительном отношении. Часто даже для простых распределений метод выборки обратного преобразования можно улучшить: [1] см., например, алгоритм зиккурата и отбраковочную выборку . С другой стороны, можно чрезвычайно точно аппроксимировать функцию квантиля нормального распределения, используя полиномы умеренной степени, и на самом деле метод сделать это достаточно быстрый, поэтому инверсионная выборка теперь является методом по умолчанию для выборки из нормального распределения. в статистическом R. пакете [2]
Официальное заявление
[ редактировать ]Для любой случайной величины , случайная величина имеет то же распределение, что и , где является обобщенной обратной функцией кумулятивного распределения из и является однородным на . [3]
Для непрерывных случайных величин обратное преобразование интеграла вероятности действительно является обратным преобразованию интеграла вероятности , которое утверждает, что для непрерывной случайной величины с кумулятивной функцией распределения , случайная величина является однородным на .
Интуиция
[ редактировать ]От , мы хотим сгенерировать с CDF Мы предполагаем быть непрерывной, строго возрастающей функцией, что обеспечивает хорошую интуицию.
Мы хотим посмотреть, сможем ли мы найти какое-нибудь строго монотонное преобразование. , такой, что . у нас будет
где последний шаг использовал это когда является однородным на .
Итак, мы получили быть обратной функцией или, что то же самое
Следовательно, мы можем генерировать от
Метод
[ редактировать ]Проблема, которую решает метод выборки обратного преобразования, заключается в следующем:
- Позволять быть случайной величиной, распределение которой можно описать кумулятивной функцией распределения. .
- Мы хотим генерировать значения которые распределяются согласно этому распределению.
Метод выборки обратного преобразования работает следующим образом:
- Генерировать случайное число из стандартного равномерного распределения на интервале , то есть из
- Найдите обобщенную обратную величину искомого CDF, т.е. .
- Вычислить . Вычисленная случайная величина имеет распространение и, следовательно, тот же закон, что и .
Выражается по-другому, учитывая кумулятивную функцию распределения и универсальная переменная , случайная величина имеет распределение . [3]
В непрерывном случае можно рассматривать такие обратные функции как объекты, удовлетворяющие дифференциальным уравнениям. [4] Некоторые такие дифференциальные уравнения допускают явные решения в виде степенных рядов , несмотря на их нелинейность. [5]
Примеры
[ редактировать ]- В качестве примера предположим, что у нас есть случайная величина и кумулятивная функция распределения
- Чтобы выполнить инверсию, нам нужно найти
- Отсюда мы выполним шаги первый, второй и третий.
- В качестве другого примера мы используем экспоненциальное распределение с для x ≥ 0 (и 0 в противном случае). Решая y=F(x), мы получаем обратную функцию
- Это означает, что если мы нарисуем некоторые из и вычислить Этот имеет экспоненциальное распределение.
- Идея иллюстрируется следующим графиком:
- Обратите внимание, что распределение не изменится, если мы начнем с 1-y вместо y. Поэтому для вычислительных целей достаточно сгенерировать случайные числа y в [0, 1], а затем просто вычислить
Доказательство правильности
[ редактировать ]Позволять — кумулятивная функция распределения , и пусть быть его обобщенной обратной функцией (с использованием нижней границы , поскольку CDF слабо монотонны и непрерывны справа ): [6]
Претензия: Если является однородной случайной величиной на затем имеет в качестве CDF.
Доказательство:
Усеченное распространение
[ редактировать ]Выборку обратного преобразования можно просто распространить на случаи усеченных распределений на интервале без затрат на отбраковочную выборку: можно следовать тому же алгоритму, но вместо генерации случайного числа равномерно распределены между 0 и 1, генерируют равномерно распределены между и , а затем снова возьмем .
Уменьшение количества инверсий
[ редактировать ]Чтобы получить большое количество выборок, необходимо выполнить такое же количество инверсий распределения. Одним из возможных способов уменьшить количество инверсий при получении большого количества выборок является применение так называемого семплера стохастической коллокации Монте-Карло (семплера SCMC) в рамках структуры полиномиального расширения хаоса . Это позволяет нам генерировать любое количество выборок Монте-Карло лишь с несколькими инверсиями исходного распределения с независимыми выборками переменной, для которой инверсии доступны аналитически, например, стандартной нормальной переменной. [7]
Реализации программного обеспечения
[ редактировать ]Существуют программные реализации для применения метода обратной выборки с использованием числовых аппроксимаций обратного метода в том случае, если он недоступен в закрытой форме. Например, можно вычислить аппроксимацию обратного результата, если пользователь предоставит некоторую информацию о распределениях, например PDF-файл. [8] или CDF.
- Библиотека C УНУ.РАН [9]
- R библиотека Рунуран [10]
- Выборка подпакета Python в scipy.stats [11] [12]
См. также
[ редактировать ]- Интегральное преобразование вероятности
- Копула , определяемая посредством преобразования интеграла вероятности.
- Функция квантиля для явного построения обратных CDF.
- Обратная функция распределения для точного математического определения распределений с дискретными компонентами.
- Отбраковочная выборка — еще один распространенный метод генерации случайных переменных, который не основан на инверсии CDF.
Ссылки
[ редактировать ]- ^ Люк Деврой (1986). Генерация неравномерных случайных переменных (PDF) . Нью-Йорк: Springer-Verlag. Архивировано из оригинала (PDF) 18 августа 2014 г. Проверено 12 апреля 2012 г.
- ^ «R: Генерация случайных чисел» .
- ^ Jump up to: а б Макнил, Александр Дж.; Фрей, Рюдигер; Эмбрехтс, Пол (2005). Количественный риск-менеджмент . Принстонская серия по финансам. Издательство Принстонского университета, Принстон, Нью-Джерси. п. 186. ИСБН 0-691-12255-5 .
- ^ Штайнбрехер, Дьёрдь; Шоу, Уильям Т. (19 марта 2008 г.). «Квантильная механика». Европейский журнал прикладной математики . 19 (2). дои : 10.1017/S0956792508007341 . S2CID 6899308 .
- ^ Арридж, Саймон; Маасс, Питер; Октем, Озан; Шенлиб, Карола-Бибиан (2019). «Решение обратных задач с использованием моделей, управляемых данными» . Акта Нумерика . 28 : 1–174. дои : 10.1017/S0962492919000059 . ISSN 0962-4929 . S2CID 197480023 .
- ^ Люк Деврой (1986). «Раздел 2.2. Инверсия путем численного решения F ( X ) = U » (PDF) . Генерация неоднородной случайной переменной . Нью-Йорк: Springer-Verlag.
- ^ LA Grzelak, JAS Witteveen, M. Suarez и CW Oosterlee. Стохастический сэмплер Монте-Карло: высокоэффективная выборка из «дорогих» распределений. https://ssrn.com/abstract=2529691
- ^ Дерфлингер, Герхард; Хёрманн, Вольфганг; Лейдольд, Йозеф (2010). «Генерация случайных величин путем числовой инверсии, когда известна только плотность» (PDF) . ACM-транзакции по моделированию и компьютерному моделированию . 20 (4). дои : 10.1145/945511.945517 .
- ^ «UNU.RAN — Универсальные генераторы неравномерных случайных чисел» .
- ^ «Runuran: R-интерфейс к генераторам случайных величин UNU.RAN» . 17 января 2023 г.
- ^ «Генератор случайных чисел (Scipy.stats.sampling) — Руководство по SciPy v1.12.0» .
- ^ Баумгартен, Кристоф; Патель, Тирт (2022). «Автоматическая генерация случайных величин в Python». Материалы 21-й конференции «Питон в науке» . стр. 46–51. дои : 10.25080/majora-212e5952-007 .