Мой вопрос о необходимом количестве симуляций для метода анализа Монте-Карло. Насколько я вижу, необходимое количество симуляций для любой допустимой процентной ошибки (например, 5) равно
где - стандартное отклонение результирующей выборки, а - коэффициент уровня достоверности (например, для 95% это 1,96). Таким образом, таким образом можно проверить, что результирующее среднее и стандартное отклонение симуляций представляют собой фактическое среднее и стандартное отклонение с уровнем достоверности 95%.
В моем случае я запускаю симуляцию 7500 раз и вычисляю скользящие средние и стандартные отклонения для каждого набора из 100 выборок из 7500 симуляций. Требуемое количество моделирования, которое я получаю, всегда меньше 100, но% ошибки среднего и стандартного сравнения по сравнению со средним значением и стандартным значением всех результатов не всегда меньше 5%. В большинстве случаев средняя ошибка% составляет менее 5%, но ошибка стандартного отклонения достигает 30%.
Каков наилучший способ определить количество требуемых симуляций, не зная фактического среднего и стандартного (в моем случае результаты симуляции обычно распределяются)?
Заранее благодарю за любую помощь.
Чтобы иметь представление о том, как может выглядеть распределение результатов моделирования, когда итерация выполняется бесконечное число раз: вместо того, чтобы использовать результирующее среднее значение и дисперсию после n чисел моделирования, я решил найти подходящую функцию полученного распределения, но здесь необходимо выполнить разрешенную% ошибку. Я думаю, что таким образом я смогу найти более правильные результаты по кумулятивной функции распределения, которая связана, например, с 97,5%. Потому что, когда я сравниваю результаты моделирования 400 и 7000, подгоночные функции распределения для обеих выборок выглядят так, как будто только одна кривая 2-го сглажена. Кроме того, следовательно, модель в MATLAB / Simulink является нелинейной, хотя сгенерированные входные параметры распределены нормально, результирующая гистограмма моделирования не является нормальной, по этой причине я использовал «обобщенное распределение экстремальных значений», который назван 'gev' в MATLAB. Но все же я не совсем уверен в этой методологии, заранее спасибо за любую команду
Ответы:
Я обычно провожу исследование сходимости и определяю количество требуемых симуляций, затем использую это число в последующих симуляциях. Я также выкидываю предупреждение, если ошибка больше, чем предполагает выбранный номер.
Типичный способ определить требуемое количество симуляций - вычислить дисперсию симуляции для N путей, тогда стандартной ошибкой является , см. раздел об оценке ошибок MC в "Методах Монте-Карло в финансах" Питера Джекела , также глава "Оценка определенного интеграла" в маленькой книге Соболяσ^2N σ^NN√
В качестве альтернативы вы можете вычислить ошибку для каждого моделирования и остановиться, когда она превысит определенный порог или будет достигнуто максимальное количество путей, где это число снова было определено в результате исследования сходимости.
источник