Эй, ребята, ваше время дорого, и мое тоже! Так что оставайтесь поблизости, чтобы получить несколько быстрых и грязных советов о том, как сэкономить несколько минут, когда в следующий раз вы будете читать статью о finML.

Особенно, когда дело доходит до чтения научных статей, мы все испытали этот момент, когда мы прочитали изнурительную статью по машинному обучению, полную математики и описаний, потратив не менее получаса или около того нашего времени, просто чтобы узнать, что опубликованные результаты всего б.с.

Позвольте мне дать вам очень простой и удобный способ быстро и с высокой степенью достоверности определить, что статья, которую вы собираетесь прочитать, полна поддельных результатов прогнозирования.

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

В этом конкретном исследовании авторы, как это часто бывает, строят сложную глубокую нейронную сеть (много слоев, много причудливых названий для различных типов сетевых компонентов, сверхсложных) и обучают ее предсказывать цену закрытия следующего дня на основе данных. за предыдущие N дней. Пока все хорошо, это не обязательно плохой подход, но…

…результат просто отстой. Как видите, прогнозируемое значение — это просто версия истинного значения с задержкой на один шаг. Что это значит? Простой. Ваша модель учится минимизировать критерий потерь (например, среднюю абсолютную ошибку, MSE и т. д.), принимая текущее значение в качестве прогноза для следующего значения.

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

p*[t+1|t] = E[p|t] = p[t]

p* : прогнозируемая цена, p : истинная цена

Это гласит: «прогнозируемое значение цены на следующем временном шаге t+1 с учетом данных до настоящего времени, т. е. времени t, является текущей ценой в момент времени t».

Очевидно, что это «хороший» результат для минимизации критерия потерь, но это также очень наивный результат модели (поэтому его даже обычно называют наивной моделью), потому что прогноз, полученный в результате этого, приводит к случайным результатам. случайное угадывание. Очевидно, не имеет большого смысла то, что цена в следующий момент будет просто ценой этого момента, и вы можете себе представить, что кто-то с треском провалился бы, если бы они использовали этот «статический» прогноз в качестве реального прогноза.

Причина, по которой такие графики так часто показываются в исследованиях (и я также вижу их повсюду в среднем), конечно, заключается в том, что они выглядят действительно хорошо, особенно когда вы уменьшаете масштаб, и запаздывание едва заметно. Вы можете подумать, ничего себе, это действительно близко. Тем не менее, эти сюжеты передают резко вводящее в заблуждение представление. Представьте себе график, показывающий разницу прогнозируемых и истинных значений, так называемую ошибку прогнозирования. Вы сразу увидите, что ошибка прогнозирования в большинстве случаев может быть очень большой. Как ни странно, графики ошибок никогда не показываются в газетах. Хм, а почему так???

Еще один момент, который делает совершенно очевидным, что такая модель не будет работать хорошо, заключается в следующем: данные финансового рынка обычно являются одними из самых шумных данных, которые вы можете получить. Мы говорим, что у него очень низкое отношение сигнал/шум. Это означает, что истинный тренд или сигнал цены акции «спрятан» за большим количеством шума. Этот шум может даже различаться по интенсивности (так называемая гетероскедастичность), быть автокоррелированным и так далее. Это, в свою очередь, означает, что истинная цена, скорее всего, представляет собой плавный тренд, скрытый за неустойчивыми движениями цены. Следовательно, модель, подобная приведенной выше, которая предсказывает точно такие же беспорядочные движения, как и наблюдаемая рыночная цена, скорее всего, будет чрезвычайно переобучена и не сможет хорошо обобщать. Хорошо обученная и подогнанная модель никогда не смогла бы воспроизвести с такой точностью шум ценовой траектории. Вместо этого он скорее даст плавный прогноз. В приведенном выше исследовании очевидно, что модель просто учится повторять только что увиденное. Таким образом, у него есть память на один шаг, но нет предсказательной силы. Представьте, что я говорю А-А-А-А-А-….-Б. Если ваша политика состоит в том, чтобы повторять то, что я сказал в прошлый раз, я могу говорить А столько, сколько захочу, и вы можете быть все более и более уверены в том, что делаете хорошую работу, предсказывая то, что я говорю, но когда я говорю Б, вы все равно потерпит неудачу и скажет А. :D

Еще один момент: представьте, вы смещаете прогноз на один шаг назад. Это почти идеально соответствовало бы процессу истинного значения. Это указывает на то, что ошибка предсказания с обратным сдвигом по отношению к истинному значению будет почти нулевой. Это означает, что ваш прогноз работает лучше в текущий момент времени, чем на следующем фактическом временном шаге, которому он должен принадлежать. Это еще один убедительный признак того, что результаты просто отвратительны. Это также полезный способ быстро проверить прогностическую силу ваших моделей временных рядов: всякий раз, когда вы делаете прогноз, проверяйте его ошибку по версиям целевой переменной. Когда ошибка намного ниже при прошлых задержках, скорее всего, ваша модель просто запомнила определенное прошлое значение и не будет хорошо обобщать.

Обернуть; большинство статей по финансовому машинному обучению по-прежнему полезны, поскольку в них много исследуются идеи сетевых архитектур и так далее. На самом деле вы можете узнать у них, как строить сети, и вы можете вдохновиться на создание новых сетей. Так что в образовательных целях их следует прочитать или хотя бы какие-то фундаментальные.

Но, с другой стороны, если вы ищете хорошие модели прогнозирования, всегда сначала проверяйте результаты. Если вы видите что-то похожее на график выше, есть большая вероятность, что представленные результаты не имеют никакой ценности. Хорошо, что это на самом деле довольно легко обнаружить, поэтому я надеюсь, что этот хитрый трюк может сэкономить людям некоторое время, позволяя им сосредоточиться на ценном!

Кстати, последний комментарий; если вы ищете прогностические финансовые модели, будьте готовы, что 99,99% представленных моделей в любом случае не сработают. Просто есть те, которые делают больше, и те, которые имеют меньше смысла. Но, в конце концов, вы знаете; кто опубликует действительно прибыльную прогностическую модель? Позвольте себе вдохновиться исследованиями и создайте на их основе свои собственные модели после того, как вы приобретете некоторый опыт.