Сохранение памяти в стационарных временных рядах

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

В общем, мы понимаем данный временной ряд как образец, сгенерированный случайным процессом, распределение и статистику которого мы пытаемся вывести для прогнозной модели.

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

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

Стационарность

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

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

С математической точки зрения статистические свойства процесса и, следовательно, ансамбль рядов, такой как среднее значение, дисперсия и ковариация, должны быть инвариантными относительно временного порядка, то есть ряды не должны демонстрировать тенденцию во времени. Это понятие называется стационарностью (подробное объяснение см., Например, в [1]) .

Есть несколько способов проверить ряд на стационарность:

  1. визуально осматривайте линейные графики с течением времени на предмет ярко выраженного тренда, см., например, [6] для некоторых наглядных примеров.
  2. сравнить базовую сводную статистику (среднее значение, дисперсию, ковариацию) для различных (случайных) разбиений ряда.
  3. проверьте график автокорреляции: чем быстрее спускается кривая для увеличения лагов, тем меньше порядок нестационарности в ряду.
  4. Наиболее распространенным статистическим тестом на стационарность является расширенный тест Дики-Фуллера (ADF) для единичных корней.

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

Для заданного уровня достоверности ADF проверяет нулевую гипотезу «существование единичного корня некоторого порядка» (подразумевающую нестационарность временного ряда) против альтернативы стационарности (или, строго говоря, стационарности тренда).
Несложно убедиться, что существование единичного корня действительно подразумевает нестационарность ряда:

таким образом, дисперсия оказывается зависимой от времени.

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

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

В моделях типа Arima (p, d, q), основанных на автокорреляции, различие фактически является частью алгоритма: параметры p, d и q - неотрицательные целые числа, где p обозначает порядок (то есть количество временных лагов) модели авторегрессии, d порядок разности и q порядок модели скользящего среднего.

Эта процедура хирургическим путем удаляет единичные корни в серии.

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

Например. Что касается финансовых рядов, то возникает дилемма между стационарной серией доходностей (дифференцирование первого порядка) без памяти и серией абсолютных цен (разность нулевого порядка) с памятью, но которая не является стационарной.

Но, может быть, в этой полярности нет необходимости? Что, если бы мы могли интерполировать между этими двумя крайностями?

«… Это приведет к парадоксу, из которого однажды будут извлечены полезные последствия». Лейбниц, 1695 г.

Дробное исчисление

Фактически, мы можем: вскоре после изобретения исчисления Ньютоном и Лейбницем в 17 веке математики исследовали использование дробных производных, где порядок дифференцирования или интегрирования расширен с натуральных чисел на действительные. Однако потребуется работа Херста и Мандельброта в 20-м веке, чтобы дробное исчисление нашло свое первое естественное применение и нашло свое отражение в финансах с моделями Arfima Хоскинга и Грейнджера в 1980-х годах (см. [4 ] для исчерпывающего исторического отчета).

Исторически первая эвристика для этого обобщения, кажется, была дана Эйлером около 1730 года путем обобщения биномиальных коэффициентов через гамма-функцию на реальные порядки. Позже это было уточнено формулой Коши для повторного дифференцирования и в теории интегрирования Римана и Лиувилля (см., Например, [3]).

Здесь мы просто даем формальную эвристику для нашего приложения разности временных рядов:
пусть B обозначает оператор запаздывания, то есть BX _ t = X _ {t-1} для t ›1 и некоторых временных рядов X = { X_ 1,…}. Затем поэлементное дифференцирование первого порядка может быть выражено с помощью оператора тождества I как

Полиномы этого оператора понимаются как повторное применение, например B² X _ {t} = X _ {t-2}. Мы можем расширить ряд, используя биномиальные коэффициенты:

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

Из этого вывода мы можем прочитать итерационную формулу для весов лагов

где ω_ k - коэффициент оператора запаздывания B ^ k .
Например, для возвратов ω_ 0 = 1, ω_ 1 = -1 и ω_ k = 0 для k ›1 (разность первого порядка).

Давайте посмотрим на эти коэффициенты для различных порядков дифференцирования (код ниже).

Мы отмечаем две важные особенности дробного разложения:

  • веса запаздывания равны нулю для любого целого числа d ∈ 𝒩 с d ‹k:, это означает, что мы восстанавливаем обычный вывод для целочисленных порядков.
  • веса лагов становятся асимптотически малыми для реальных заказов d и больших лагов. Это явление называется «длинной памятью» (или «нелокальностью» в контексте исчисления) и обычно требует граничных условий. Здесь мы просто выбираем обрезать (маленькие) веса сверх определенного размера окна.

Приложения к моделированию финансовых временных рядов

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

Мы получаем преобразованный ряд, применяя описанное выше расширение формального ряда оператора разности к временному ряду для указанного реального порядка d ∈ℜ и фиксированного размера окна - используя приведенный ниже код, просто вводя pandas time series в функцию ts_differencing с параметрами order и lag_cutoff.

Как вы, возможно, заметили, цены на биткойны сильно выросли в 2017 и 2018 годах (красная кривая на рисунке выше). Действительно, глядя на разницу первого порядка, мы видим, что цены подскочили более чем на 2500 долларов в отдельные дни (например, в начале декабря 2017 года). Этот график демонстрирует плавную функциональную интерполяцию для некоторых дробных порядков разности. Может показаться удивительным, что даже для таких сильных трендов слабой разности порядка 0,4 на самом деле достаточно, чтобы сделать ряд стационарным: статистика ADF, равная -5 для данной выборки, уже ниже критического значения -2,86 DF t. -распределение, поэтому с уверенностью 95% этот ряд можно считать стационарным. В самом деле, когда богатство приходит и уходит, вскоре после этого оно вернулось к нулю.

Вывод о том, что низкие порядки дифференцирования достаточны для стационарности, аналогичен для многих других финансовых временных рядов.

Чтобы проиллюстрировать компромисс между стационарностью и памятью, мы можем проследить подходящую визуализацию из [7] и построить статистику теста ADF вместе с (линейной) корреляцией с исходным рядом для ряда, преобразованного с различными порядками разности. (Обратите внимание, что более низкая статистика теста ADF указывает на более высокую степень вероятности для альтернативы теста, т.е. чем более отрицательное значение, тем более вероятно, что мы сможем отклонить нулевую гипотезу и предположить стационарность).

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

Выводы

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

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

Автор: Я увлеченный специалист по данным, я работал техническим руководителем для стартапов по всему миру и внедрял реальные решения на основе искусственного интеллекта в течение последних четырех лет. Свяжитесь со мной на simon’at’deepprojects.de.

Ссылки:

[1] Википедия, Стационарный процесс.

[2] Википедия, Unit Root.

[3] Википедия, Дробное исчисление.

[4] Grave, Gramacy, Watkins и Franzke, Краткая история долгой памяти: Херст, Мандельброт и дорога к ARFIMA, 1951–1980.

[5] Википедия, Арфима.

[6] Аналитика Видхья, Нестационарные временные ряды.

[7] де Прадо, «Достижения в области финансового машинного обучения», Wiley, 2018.

Данные:

  • Биткойн в долларах США, дневная цена закрытия, источник: общедоступный
  • Цепочка прокатных фьючерсов на месяц вперед Coal API 2, дневная расчетная цена, источник: собственный
  • Индекс Доу, дневная расчетная цена, источник: yahoo
  • Индекс SP500, дневная расчетная цена, источник: yahoo

Код:

Https://gist.github.com/skuttruf/fb82807ab0400fba51c344313eb43466