Формирование выборок из распределений вероятностей
С.1 Общие положения
С.1.1 В настоящем приложении приведены рекомендации по формированию выборки в соответствии с заданной функцией распределения вероятностей. Формирование такой выборки представляет собой ключевой момент при трансформировании распределений с использованием метода Монте-Карло. В качестве источников информации можно использовать [37] (сборник таблиц математических функций) и [38] (библиотека соответствующих программ).
С.1.2 Генератор псевдослучайных чисел для любого распределения, в том числе, для рассмотренных в 6.4 (см. таблицу 1), может теоретически быть получен на основе заданной функции распределения и генератора выборки для равномерного распределения (см. С.2). Генератор для равномерного распределения рассматривается в С.3.3. Для некоторых распределений, таких как нормальное распределение или -распределение, более эффективным будет использование генераторов, специально разработанных именно для этих распределений (например, рассматриваемых в настоящем приложении). Общие рекомендации по формированию выборки в соответствии с заданным законом распределения приведены в 6.4.
Примечание - Настоящий стандарт не ограничивает возможности использования генераторов, отличных от описанных в данном приложении. Однако перед их использованием необходимо убедиться в том, что генерируемые ими последовательности обладают достаточно хорошими статистическими свойствами. Средства тестирования генератора псевдослучайных чисел для равномерного распределения указаны в С.3.2.
С.2 Распределения общего вида
Выборка для любой строго возрастающей одномерной непрерывной функции распределения может быть получена посредством выборки из равномерного распределения. Для этого:
a) выбирают случайное число из равномерного распределения ;
b) определяют , удовлетворяющее условию .
Примечание 1 - Требуемая на этапе b) обратная функция может быть найдена аналитически или определена численными методами.
Пример - Входной величине приписано экспоненциальное распределение с математическим ожиданием 0, определяемое плотностью распределения вероятностей в области 0 и 0 в области 0 (см. 6.4.10). Полученная интегрированием плотности распределения вероятностей функция распределения имеет вид в области 0 и 0 в области 0. Аналитическое решение дает . Этот результат может быть несколько упрощен. Поскольку для случайной величины , подчиняющейся равномерному распределению , случайная величина также будет подчиняться равномерному распределению, то можно записать обратную функцию в виде .
Примечание 2 - Численно значение обычно определяют как точку пересечения с нулем функции . Для определения может быть использован алгоритм поиска отрезка, на концах которого функция имеет разные знаки, такой, например, как метод деления отрезка пополам или, что более эффективно, комбинации линейной интерполяции и метода деления отрезка пополам [11].
Примечание 3 - При использовании генератора случайных чисел из равномерного распределения для получения выборки псевдослучайных чисел из другого распределения следует помнить, что выпадение значения 0 или 1 может привести к сбою генератора. Примером может служить экспоненциальное распределение (см. 6.4.10). Его плотность распределения [формула (9)] для указанных значений не определена. Генератор, описанный в С.3.3, ошибок подобного рода не дает.
С.3 Равномерное распределение
С.3.1 Общие положения
С.3.1.1 Генератор для равномерного распределения является основой для получения псевдослучайных чисел из любого распределения (см. разделы С.2, С.4 и С.6) при наличии соответствующего алгоритма или формулы. При этом качество получаемой выборки из произвольного распределения зависит от качества работы генератора для равномерного распределения и свойств используемого алгоритма преобразования. Таким образом, только генератор, способный воспроизводить выборку из равномерного распределения с хорошими свойствами вместе с хорошим алгоритмом, обеспечивает генерирование псевдослучайных чисел, хорошо согласующихся с заданным распределением.
С.3.1.2 Отсюда вытекает важность тестирования генератора псевдослучайных чисел для равномерного распределения [31]. Если пользователь не уверен в качестве работы генератора, то его не следует использовать до тех пор, пока соответствующее тестирование не будет проведено. В противном случае не исключено получение ошибочных результатов. Рекомендуется использовать средства тестирования согласно [30]. В С.3.3 приведена процедура генерирования псевдослучайных чисел для равномерного распределения, которая успешно прошла указанное тестирование и проста в применении.
С.3.1.3 Параметры процедуры генерирования псевдослучайных чисел, соответствующих равномерному распределению , - входной, выходной, а также являющийся одновременно входным и выходным, - определены в таблице С.1.
Таблица С.1 - Процедура генерирования псевдослучайных чисел для стандартного равномерного распределения
Входной параметр |
- число значений в генерируемой последовательности |
Входной/выходной параметр |
- вектор-столбец, элементы которого могут изменяться в ходе выполнения процедуры. Пользователю обычно нет необходимости знать, как изменяются значения этого параметра, но он помогает контролировать выполнение процедуры генерирования случайных чисел. Эти параметры могут быть реализованы как глобальные переменные и не входить явно в формальные параметры процедуры. Один или несколько элементов определяет начальное число, используемое при следующем обращении к процедуре. |
Выходной параметр |
- вектор-столбец значений, составляющих выборку из |
Примечание 1 - При задании одного и того же начального числа результатом может быть генерирование одной и той же последовательности случайных чисел. Этот факт является важным элементом регрессионного тестирования, используемого для определения согласованности результатов, полученных программным средством, с результатами предыдущих версий.
Примечание 2 - Некоторые генераторы псевдослучайных чисел при каждом обращении выдают одно случайное, а некоторые - последовательность значений.
С.3.1.4 Псевдослучайное число выборки из определяют преобразованием , где - элемент выборки из .
С.3.2 Проверка качества случайной выборки
С.3.2.1 Каждый генератор псевдослучайных чисел должен:
a) обладать хорошими статистическими свойствами;