Блог им. Gusan

Точность прогноза

Допустим, есть две системы, которые выдают прогноз — где будет БА на экспирацию. Прогноз выдается в виде распределения вероятностей. Задача: оценить на истории — какая система выдает более точный прогноз.

Вот картинка для иллюстрации. Слева график цены БА, справа два графика плотности вероятности, синий для распределения P, зеленый для распределения Q. Красным кружочком отмечен уровень S, где реально оказалась прогнозируемая цена:
Точность прогноза 
Для оценки точности прогноза пробовал считать средний квадрат отклонения распределения от S (кажется, этот метод называется MSE). Для вышеприведенной картинки такое отклонение меньше у распределения P. Но, мне кажется, что распределение Q более точное: оно дает гораздо большую вероятность для красного кружочка.

Может кто подскажет — можно ли как-то по другому считать точность распределения-прогноза? 

★4
40 комментариев
критерием отношения правдоподобия тут надо. у вас два теоретических распределения и одно фактическое.
avatar
Mr. Bean, спасибо. Стал смотреть, кажется, это не совсем то. У меня же нет смеси распределений. Есть две _независимые_ системы, которые выдают разные, никак несвязанные друг с другом распределения. И нужно понять — какая из этих систем точнее прогнозирует цену.

Что Вы имели ввиду под фактическим распределением?
Кирилл Браулов, S — это случайная величина, которая имеет свое распределение. Можно найти фактическое распределение S методом бутстрэппинга и затем сравнивать его с теоретическими распределениями P и Q.
avatar
Marco, спасибо. Правильно ли понимаю, что строим эмпирическое распределение по истории, и потом смотрим какое из теоретических больше похоже на эмпирическое?

Если да, то тут есть большие сомнения. Получается, из прошлого можно извлечь распределение, которое будет предсказывать будущее. И это распределение будет самым правильным.

Мне ближе точка зрения, что историческая траектория цены — лишь одна из бесконечного кол-ва возможных. И по одной этой траектории невозможно восстановить истинное распределение вероятностей.

Для док-ва рассмотрим обратную задачу: допустим у нас есть случайный процесс, который хорошо описывает рынок, в нем есть случайное блуждание с переменной волатильностью, с гэпами, с всплесками волы и возвратом к средней воле, вола волы (что-то вроде модели Хестона + гэпы). С его помощью мы можем сгенерить миллион разных траекторий цены и получить истинное (для нашего процесса) распределение на экспу D. Теперь берем только одну из сгенерированных траекторий. Разве мы сможем по ней одной восстановить распределение D?
Кирилл Браулов,

-Разве мы сможем по ней одной восстановить распределение D?

Это надо курить бутстреппинг:)) кстати, наверно несложно проверить: вначале генерируете по выбранной модели одну траекторию, а потом из неё бутстрепом пытаетесь восстановить первоначальную модель.
avatar
Mr. Bean, все-таки уверен, что по одной случайной траектории восстановить всю первоначальную модель не получится. Представьте, что взяли траекторию, на которой не было гэпа. Как бы мы ее не бутстрепили — распределение с толстыми хвостами мы бы не получили, хотя они были в исходной модели.

Мне кажется, правильный путь — это все выявленные закономерности и предположения оформить в виде модели, выдающую распределение. Потом на истории посчитать насколько ошибалась эта модель. И сравнить с ошибкой рыночного распределения (которое получается из биржевой улыбки). Если удастся найти такую модель, чтобы более-менее устойчиво выдавала меньшую ошибку чем рынок, то вот и грааль :)

Если заблуждаюсь — прошу поправить.
Кирилл Браулов, логика верная, но я не понимаю что за распределение получится из улыбки. это же будет распределение к экспирации и оно будет каждый день меняться т.к. улыбка постепенно схлопывается. А где взять такую модель? Может есть смысл восстанавливать распределение с двух улыбок соседних экспираций по типу как деают для расчёта викса.

Сам близко капаю)) Но я сравниваю только модели волатильности и вот думаю как раз над тем как сравнить с улыбкой или виксом из прогнозную силу.
avatar
Mr. Bean, если взять в какой-то момент времени улыбку, перевести ее в распределение вер-ти, то это распределение будет как-бы обобщенным прогнозом рынка, где окажется цена БА на экспу. По мере приближения к экспирации распределение будет постепенно сжиматься (если не будет роста HV). Вот график второго момента такого распределения для RTS-3.15. Видно что сначала на декабрьском обвале M2 подскочил, а потом к экспирации постепенно сжался в ноль. Так что — да, рыночное распределение будет постоянно меняться каждый день (не только M1/M2, но и третий/четвертый момент тоже). Свое модельное распределение, естественно, тоже должно меняться. Разве что, наверное, надо будет более плавно это делать.

Насчет другой серии — мне кажется, это другая совершенно задача. Арбитраж между календарными сериями — тема интересная, но никак не связана с обсуждаемой. Брать из обоих серий два распределения, нормировать их на оставшееся время до экспы, и получить таким образом усредненное — может быть неправильным. Например, допустим ожидает рынок что в августе может быть сильный гэп, и поэтому M4 (этот момент отвечает за толстые хвосты) у сентябрьской серии будет больше чем у июльской (а значит и IV на центре сентября будет выше IV на центре июля). И это будет справедливо. А брать и насильно повышать M4 июльской серии, в такой ситуации будет неправильным, имхо.
Кирилл Браулов, ну а с другой стороны если текущая серия заканчивается через 3 дня а заседание ФРС будет только через 10 дней и рынок это будет учитывать, а истекающие опционы — нет. тогда сравнение получится некорректным.

когда мы берём две улыбки то не надо их нормировать на срок до экспирации можно просто брать фиксированное время, например 22 дня, а потом переводить это в однодневное распределение чтобы сравнить с рыночным распределением.
avatar
Кирилл Браулов, да, так.

У вас цена актива — случайная величина — кумулятивная сумма случайных пошаговых приращений цены. То, что в конечный момент времени цена оказалась равна S — тоже случайность — «одна из бесконечного количества траекторий». Вы не знаете, равно ли S матожиданию цены, или оно за 2-3 сигмы выходит. Оценивать по одному случайному значению S правильность ваших моделей как-то неправильно.

Для того, чтобы восстановить по одной траектории распределение, как раз и используют bootstrapping.
avatar
Marco,

Вы не знаете, равно ли S матожиданию цены, или оно за 2-3 сигмы выходит.

Это относительно какого распределения? Некоего самого точного и правильного? Имхо, такого нет и задачи найти такое себе не ставлю. Нужно просто найти такую модель, которая ошибалась бы меньше чем рынок (распределение из биржевой улыбки). Т.е., грубо говоря, пусть модель ошиблась на 2-3 сигмы, но если рынок при этом ошибся на 4-5 сигмы, то значит модель оказалась точнее. И если удастся найти такую, чтобы устойчиво была точнее рынка, то дальше уже дело техники.

Оценивать по одному случайному значению S правильность ваших моделей как-то неправильно.

Оценивать собираюсь на каждом баре и потом считаю среднюю ошибку: вот график ошибок (нижний). И это только одна месячная серия, а есть шестилетняя история.
Кирилл Браулов, относительно эмпирического распределения. Проблема в том, что посчитать эмпирическое распределение напрямую нельзя (у нас эксперимент только один, с одной траекторией движения цены). Но есть ряд статистических методов, которые позволяют по одному эксперименту оценить полное распределение. Один их этих методов — bootstrapping, суть которого — генерация множества дополнительных выборок случайным выбором данных из одной имеющейся выборки.

Можно ли на основании полученного распределения что-то прогнозировать — не факт, т.к. система у нас скорее всего нестационарная.
avatar
Marco, возникли некоторые сомнения по поводу этих утверждений:


У вас цена актива — случайная величина

То, что в конечный момент времени цена оказалась равна S — тоже случайность

Оценивать по одному случайному значению S… неправильно

Пусть распределением D мы прогнозируем в момент времени T1 где будет цена S на экспу (момент времени T2). В момент прогноза (T1) S будет случайной величиной (поскольку ее нельзя 100% точно предсказать). Но в момент T2 S будет уже 100% точно известной величиной. Т.е. в момент когда считаем насколько точным оказалось распределение D — величину S уже нельзя считать случайной. Имхо.
Кирилл Браулов, да смесь ни при чём тут. вот это имел ввиду:

en.wikipedia.org/wiki/Likelihood-ratio_test

фактическое это реальные данные ваши. сравнивается для какого из двух ваших систем они более правдоподобны, т.е. более вероятны.
avatar
Mr. Bean, если фактическое распределение = эмпирическое, то тут есть сомнения (см. коммент выше).
Кирилл Браулов, совершенно верно по одной единственной реализации проверить нельзя. иначе можно было к вашим двум кривым пририсовать третью (эмпирическую) и посмотреть на какую из двух она больше похожа. поэтому вычисляются различные статистики и на их основе строятся критерии, проверяются гипотезы, т.е. как бы полученный результат проверяется на независимость от конкретной выпавшей реализации.
avatar
Mr. Bean, спасибо. Посмотрел ссылку про тест, пока ничего не понял, но буду еще перечитывать… А не математику реально с этим методом разобраться и реализовать? Или есть попроще варианты?
Кирилл Браулов, можно ещё глянуть информационные критерии AIC, BIC. И вообще лучше сразу конкретные примеры искать иначе в теории можно зарыться на долго.

Все эти критерии есть в R — можно гуглить сразу с примерами, но это лучше на английском делать.
avatar
Кирилл Браулов, кроме того если ваши распределения отличаются только дисперсиями, то можно их и сравнивать, например через функции потерь на прокси (volatility proxy).
avatar
Mr. Bean, планирую что распределения могут отличаться очень сильно (все первые четыре момента могут быть разными).
Кирилл Браулов, возможно проще будет моменты по отдельности сравнивать, чем всю плотность.
avatar
Mr. Bean, а какие моменты у цены S? :) Нужно ведь не между собой сравнить распределения P и Q, а посчитать ошибку каждого распределения относительно цены S (где реально произошла экспирация), и потом сравнить эти ошибки между собой.

Можно было бы считать ошибку как разницу между МО распределения и S. Но в такой оценке получается участвует только первый момент, а нужно учитывать еще как минимум второй (дисперсию). Если получится учитывать третий и четвертый — было бы совсем замечательно.
.Агрегатор., хотелось бы применить именно вероятностный подход, и прогнозировать цену через распределение вероятностей.
.Агрегатор., так мы и находимся в ситуации недостаточности данных))
avatar
я как то смотрел видос с профессором ВШЭ… он утверждал, что закрытие будет в том страйке, где картинка цены опциона максимально похожа на картинку цены БА… имхо он попутал причину со следствием… но могешь проверить… все таки профессор ВШЭ… хотя в LTCM слились нобелевские лауреаты
avatar
ves2010, это уже следующий этап — пробовать разные системы прогноза, а пока хотелось бы научиться сравнивать результаты двух абстрактных систем.
Я б для начала не парил себе мозг и монтекарлил.
avatar
Критерий точности прогноза неясен, а скорее всего — отсутствует на данный момент. Что понимается под точностью прогноза?

Вообще точность системы прогнозирования на единственном испытании оценить невозможно. Нужна серия испытаний.
Игорь Рябушкин, да, критерий пока не ясен. Наметки пока такие:

1. Более точный прогноз должен показывать большую вероятность для цены S. Если распределение P давало вероятность 0.1%, что цена снизиться ниже S, а распределение Q давало вероятность 10%, то Q оказалось точнее.

2. Если оба распределения показывают примерно одинаковую вер-ть для S, то более точным можно считать то, у которого дисперсия меньше.

Насчет серии испытаний — так и делаю. Считаю ошибку на каждом баре, нормирую на Sqrt(T) и потом считаю среднюю. Вот график ошибок (нижний).
Почему эти два прогноза вообще совпадают в точке максимального значения вероятности? Подозреваю, что это один и тот же прогноз. Отсюда и затруднения в понимании как их сравнивать.
Игорь Рябушкин, потому что в моделях у автора МО предполагается равным нулю. вроде очевидно.
avatar
Mr. Bean, все-таки МО равно текущей цене БА :)
Кирилл Браулов, эммм… так надо рассматривать распределение приращений а не самих цен…
avatar
Игорь Рябушкин, нет прогнозы разные: Q — это рыночное распределение (вычисляю из улыбки, есть потиковая истории биржевых улыбок), его матожидание по определению равно текущей цене БА; P — это просто нормальное с тем же матожиданием и некоторой сигмой.
Точность прогноза надо вычислять в той величине, результат в которой можно будет реально использовать.
avatar
Spekyl, да, похоже. Действительно, интересует ведь не абстрактная ошибка модели, а кто оказался более прав: рынок или модель. Т.е. можно брать разность между рыночным распределением и модельным (здесь подробнее) и смотреть какая она оказалась в точке S. Если собственная модель давала большую вероятность в точке экспирации, то торговля по своей модели принесла бы прибыль. Если же модель давала меньшую вер-ть чем рынок, то был бы убыток.

Спасибо, что натолкнули на эту мысль.
Выбирать модель можно по разному:
если по критерию близости (прогнозной силе) к реальному значению (на тестовых выборках),
то основных способов 3 (хотя их много, и т.к. здесь ряд, то возможно нужен MASE):
1. средняя квадратичная ошибка (это Вы сделали)
2. средняя ошибка по модулю
3. средняя процентная ошибка
Как мне кажется для цен лучше считать по 3 способу (или по MASE),
но можно считать по всем 3-4 и думать дальше.
Если просто выбирать модель, то можно попробовать смотреть на критерий Фишера и/или на информационные критерии AIC, BIC и т.д.,
но это только в том случае, если в модели есть функция правдоподия, но и то это не совсем корректно для выбора лучшей модели.
avatar
AlexeyT, спасибо. Вчера, по наводке Mr. Bean, нашел этот список критериев оценки и реализовал. Действительно, больше всего понравилась оценка по MPE (средняя процентная ошибка), она больше всего соответствовала интуитивной оценке — какое распределение точнее.

Но, после коммента Spekyl, сделал другой вариант. Поскольку в конечном счете интересует не абстрактная оценка произвольного распределения, а насколько лучше/хуже моя модель (распределение P) относительно рынка (распределение Q). Поэтому в качестве оценки взял просто разность P-Q в точке S. И пока такая оценка мне нравится больше всего. Для плохой модели она дает плохую оценку. Для заведомо хорошей (заглядываю в «будущее») — устойчиво хорошую. Так что, скорее всего именно эту оценку буду использовать.
Кирилл Браулов, отличный список, мне он тоже очень полезен, все в 1 месте;), но там нет одного критерия хорошего для временных рядов — MASE
en.wikipedia.org/wiki/Mean_absolute_scaled_error
avatar

теги блога Кирилл Браулов

....все тэги



UPDONW
Новый дизайн