Давайте заставим GARCH иметь переменные коэффициенты для обработки нелинейной условной дисперсии.

Введение

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

Тем не менее, семейство GARCH не является серебряной пулей, которая внезапно делает вас волшебником акций. Бесчисленные вариации подразумевают, что не существует единого наилучшего подхода к обработке условной дисперсии.

Сегодня давайте рассмотрим один интересный вариант GARCH, а именно Varying Coefficient GARCH. Если вы спешите, вы можете найти блокнот Jupyter, соответствующий этой статье, здесь.

Недостатки традиционного GARCH

Во-первых, мы быстро пройдемся по некоторым ограничениям стандартной модели GARCH. Хотя мы обсуждали их раньше, всегда полезно освежить важные аспекты наших моделей.

Для простоты мы пройдем только через GARCH(1,1). Обобщенная версия просто использует произвольное количество задержек как для квадратов наблюдений, так и для дисперсии. Кроме того, мы предполагаем постоянное среднее значение, равное нулю.

Имея это в виду, GARCH(1,1) следует следующим уравнениям:

Отсюда мы можем вывести два важных вопроса:

Линейное предположение GARCH

GARCH делает относительно легкое предположение о том, что дисперсия является линейной комбинацией прошлых данных. С одной стороны, это очень хорошо сочетается с бритвой Оккама. Простые модели очень часто более надежны.

Одно наблюдение, которое я часто делаю, экспериментируя с более гибкими моделями GARCH, — это переоснащение. Рассмотрим очень плохую вероятностную модель для некоторых данных. Если вы позволяете дисперсии быть очень гибкой, вам просто нужно сделать эту дисперсию очень большой. Тогда все ваши тренировочные наблюдения по-прежнему будут иметь достаточно хорошую вероятность или соответствие модели.

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

Предположение Гаусса

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

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

На практике распределение Гаусса часто заменяют чем-то более гибким. Примеры включают шкалу местоположения распределение Стьюдента-t или обобщенное бета-распределение.

Сегодня мы рассматриваем проблему линейности GARCH. Для возможного решения проблемы Гаусса вы также можете взглянуть на мою эту статью.

Мотивация изменения коэффициента GARCH

Как уже упоминалось, предположение о линейности может быть ограничивающим. Очевидным решением было бы просто использовать какую-нибудь нелинейную альтернативу и положить этому конец. Однако есть две проблемы с этим. Начнем сначала с большего:

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

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

Вторая проблема заключается в том, что стандартные нелинейные модели трудно интерпретировать. Рассмотрим снова стандартную настройку GARCH: мы можем легко рассуждать о влиянии каждого «фактора» в нашей модели. Без дальнейших церемоний мы могли бы также включить в нашу модель дополнительные факторы, такие как сектор компании и т. д.

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

Модели с переменными коэффициентами

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

И действительно, в этом суть моделей с переменными коэффициентами. Наша основная цель — перейти от статических коэффициентов к динамическим при различных входных данных.

В модели линейной регрессии это может выглядеть следующим образом:

Коэффициенты являются просто функцией входных данных. Таким образом, каждый вход может иметь уникальный набор параметров линейной модели. Это позволяет нам моделировать нелинейные функции локально-линейным способом.

Для стандартных регрессионных моделей существует множество предыдущих исследований, относящихся к девяностым годам. В настоящее время мы также видим некоторые современные подходы к моделям с переменными коэффициентами.

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

Очевидно, что уже существует предыдущая работа по варьированию коэффициента GARCH, см., например,

  • "Здесь"
  • "Здесь"
  • "Здесь"

Чтобы упростить задачу, мы будем использовать довольно упрощенный вариант. Оттуда вы можете попробовать различные варианты самостоятельно.

Переменный коэффициент GARCH

Давайте заново сформулируем стандартные GARCH(1,1) уравнения:

Затем альтернатива с различными коэффициентами делает коэффициенты функцией некоторых представляющих интерес переменных:

Давайте, опять же для простоты, используем нейронную сеть с прямой связью для моделирования переменных коэффициентов:

Теперь мы можем воспользоваться линейностью переменных коэффициентов и обеспечить стационарность с помощью

Для статического коэффициента GARCH относительно легко обеспечить это условие стационарности. Просто используйте один из популярных пакетов оптимизации и введите соответствующее линейное ограничение.

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

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

Играя с сигмовидной функцией, мы можем быстро найти подходящее преобразование. Для произвольного порядка GARCH это может доставить больше хлопот, поэтому мы не будем рассматривать этот случай здесь.

Некоторое обоснование модели

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

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

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

Быстрая демонстрация переменного коэффициента GARCH

В других статьях GARCH для реализации я в основном использовал Python. Сегодня давайте использовать Джулию для развлечения и обучения. Лично я считаю, что язык гораздо более эффективен для некоторых быстрых экспериментов. С другой стороны, развертывание доставляет меньше удовольствия, если вам нужно управлять накладными расходами JIT.

Начнем с обычного процесса загрузки данных. Здесь я использовал данные DAX за 5 лет от yahoo Finance и рассчитал логарифмическую доходность скорректированной цены закрытия. Последние 100 наблюдений хранятся в наборе задержек:

Затем мы создаем наш переменный коэффициент GARCH. Поскольку Julia — более или менее функциональный язык, в нем нет классов, в отличие от Python.

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

(Технически возможно хранить промежуточные состояния в Zygote.Buffer. Давайте все же воспользуемся здесь функциональным вариантом в учебных целях.)

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

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

Обратите внимание, что мы получаем градиенты через AutoDiff из Zygote. Другой популярный подход к моделям GARCH — использование градиентов черного ящика через конечные разности. Учитывая, что наша нейронная сеть могла бы легко иметь гораздо больше параметров, это быстро стало бы невозможным.

После подбора модели мы можем построить прогнозы в выборке, чтобы проверить, все ли прошло хорошо:

Это выглядит как разумный прогноз GARCH для данных в выборке. Чтобы увидеть, работает ли он также вне выборки, мы создаем прогноз с помощью выборки MC. Это необходимо, так как мы не можем аналитически интегрировать вероятностный прогноз в t для t+1.

Опять же, разумно выглядящий сюжет. Поскольку мы также хотим проверить, построили ли мы что-нибудь полезное, давайте также сравним со стандартным прогнозом GARCH (1,1). Нам нужно еще раз численно проинтегрировать:

Стандартная модель GARCH дает больший интервал прогноза. Чтобы сделать обе модели сопоставимыми количественно, мы используем средние логарифмические вероятности вне выборки:

Это дает

  • Логарифмическая вероятность переменного коэффициента GARCH: 3.01226
  • Стандартный GARCH: 3.00035

Наша модель имеет немного лучшее логарифмическое правдоподобие вне выборки. Очевидно, мы могли бы улучшить это с помощью другой архитектуры и/или более высокого порядка модели GARCH. Просто постарайтесь не переусердствовать!

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

Интересно, что оба изменяющихся коэффициента находятся на том же уровне, что и стандартный GARCH. Это добавляет уверенности в том, что мы на правильном пути.

Тем не менее, как упоминалось выше, возможно, еще есть много возможностей для улучшения.

Заключение

Теперь, куда мы идем отсюда? Проще говоря, у нас есть еще один вариант GARCH, который обещает исправить одно ограничение стандартного GARCH. Немного доработав, мы получаем гибкую и в то же время достаточно прозрачную модель.

Теперь мы могли, например, легко ввести в нашу модель внешние факторы. Текущее состояние экономики в целом или сектора компании, вероятно, повлияет на волатильность доходности.

С нашим переменным коэффициентом GARCH мы можем объяснить такие эффекты. В то же время можно проверить прогнозируемый эффект каждой функции.

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

Это делает эту модель довольно мощной, но довольно простой в обращении. Если у вас есть какие-либо вопросы по этому поводу, пожалуйста, дайте мне знать.

Рекомендации

[1] Боллерслев, Тим. Моделирование согласованности краткосрочных номинальных обменных курсов: многомерная обобщенная модель ARCH. Обзор экономики и статистики, 1990, с. 498–505.

[2]Донфак, Морван Нонгни; Дюфе, Арно. Моделирование изменяющихся во времени параметров с использованием искусственных нейронных сетей: иллюстрация GARCH. Исследования по нелинейной динамике и эконометрике, 2021, с. 311–343.

[3] Хасти, Тревор; Тишбирани, Роберт. Модели с переменными коэффициентами. Журнал Королевского статистического общества: серия B (методологическая), 1993 г., с. 757–779.

Первоначально опубликовано на https://www.sarem-seitz.com 19 января 2023 г.

Подпишитесь на DDIntel Здесь.

Посетите наш сайт здесь: https://www.datadriveninvestor.com

Присоединяйтесь к нашей сети здесь: https://datadriveninvestor.com/collaborate