И ещё один красивый баг
Sep. 17th, 2012 12:04 pm...который меня чуть с ума не свёл на этих выходных.
Задача: нужно сгенерировать по N сценариев для M величин, каждый сценарий описывается всего одним числом. У меня есть программа, которая генерирует любое количество сценариев для одной такой величины, я задаю нужное мне количество MxN, потом нарезаю в нужном мне формате.
Баг: если нарезать «сначала все сценарии для первой величины, затем все для второй...», то получившиеся M случайных величин (которые мы наблюдаем N раз) выглядят независимыми — пренебрежимо маленькие коэффициенты корреляции. А если нарезать «сначала первые сценарии для всех M величин, потом вторые...», то иногда (не всегда!) корреляции получаются порядка70-80%.
Объяснение: в программе есть возможность ускорения Монте-Карло через антитетические случайные числа, таким образом числа идут зависимыми парами. И при чётном M второй способ нарезания сценариев приводит к переменным с сильной отрицательной корреляцией (не будь там обработки этих антитетических переменных, вообще −100% получилось бы).
Это очередной рассказ из серии «за что я люблю своего шефа» — я не смог эту проблему решить за выходные, он начал улыбаться ещё в начале моего рассказа, потом спросил, не забыл ли я отключить эту опцию...
Задача: нужно сгенерировать по N сценариев для M величин, каждый сценарий описывается всего одним числом. У меня есть программа, которая генерирует любое количество сценариев для одной такой величины, я задаю нужное мне количество MxN, потом нарезаю в нужном мне формате.
Баг: если нарезать «сначала все сценарии для первой величины, затем все для второй...», то получившиеся M случайных величин (которые мы наблюдаем N раз) выглядят независимыми — пренебрежимо маленькие коэффициенты корреляции. А если нарезать «сначала первые сценарии для всех M величин, потом вторые...», то иногда (не всегда!) корреляции получаются порядка
Объяснение: в программе есть возможность ускорения Монте-Карло через антитетические случайные числа, таким образом числа идут зависимыми парами. И при чётном M второй способ нарезания сценариев приводит к переменным с сильной отрицательной корреляцией (не будь там обработки этих антитетических переменных, вообще −100% получилось бы).
Это очередной рассказ из серии «за что я люблю своего шефа» — я не смог эту проблему решить за выходные, он начал улыбаться ещё в начале моего рассказа, потом спросил, не забыл ли я отключить эту опцию...
no subject
Date: 2012-09-17 01:25 pm (UTC)no subject
Date: 2012-09-17 01:28 pm (UTC)no subject
Date: 2012-09-17 01:28 pm (UTC)no subject
Date: 2012-09-17 01:32 pm (UTC)no subject
Date: 2012-09-17 01:32 pm (UTC)