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

  1. MAE, RMSE и AIC
  2. Средняя точность прогноза
  3. Предупреждение: модель временных рядов ОЦЕНОЧНАЯ ЛОВУШКА!
  4. Эталонный показатель RdR

Этот новый метод оценки RdR даст несколько преимуществ, таких как возможность:

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

Предлагаемый показатель RdR использует:

  • R: простое случайное блуждание
  • d: динамическое искажение времени
  • R: среднеквадратическая ошибка

*Внимание. Это очень экспериментальный документ, не основанный ни на одной исследовательской работе. Я назвал эту техническую оценку RdR только для того, чтобы дать этому эксперименту название и облегчить понимание того, что на самом деле делает эта метрика. Используйте его на свой страх и риск!

Код этой экспериментальной методики оценки RdR доступен на моем github.

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

  • SARIMA (метод Бокса-Дженкинса)
  • Холт-Винтерс (тройное экспоненциальное сглаживание)
  • LightGBM (Gradient Boosting) (как многомерный многоцелевой регрессор)
  • Seq2Seq (глубокое обучение) (как многомерный многоцелевой регрессор)

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

1MAE, RMSE и AIC

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

Если вы хотите узнать больше об этих показателях:

· MAE против RMSE: https://medium.com/human-in-a-machine-world/mae-and-rmse-what-metric-is-better-e60ac3bde13d

· AIC: https://en.wikipedia.org/wiki/Akaike_information_criterion, https://stats.stackexchange.com/questions/24116/one-sentence-explanation-of-the -aic-для-нетехнических-типов, https://towardsdatascience.com/the-akaike-information-criterion-c20c8fd832f2

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

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

С MAE и RMSE высший балл равен 0 (цель состоит в том, чтобы получить как можно более низкий балл). Оба значения находятся в диапазоне от 0 до ∞ и зависят от масштаба цели, которую мы хотим прогнозировать.

MAE легче всего интерпретировать. Например, если MAE составляет 450 долларов, мы можем сказать, что наша модель прогнозирования имеет среднюю ошибку 450 долларов на прогноз (+ или -). Очень легко объяснить менеджеру или бизнес-команде. Это хорошо? Должны ли мы использовать его? Ну, это зависит от контекста варианта использования, распределения ошибок (перекос или нет, выбросы или нет) и многих других вещей.

Интерпретация RMSE менее интуитивна. Если RMSE составляет 450 долларов, мы можем сказать, что наша модель прогнозирования имеет «штрафную» среднюю ошибку в 450 долларов за прогноз, что несколько не очень интуитивно понятно.

Для AIC нет идеальной оценки, чем ниже, тем лучше. Таким образом, невозможно оценить оценку AIC в одиночку, ее можно использовать только для сравнения моделей вместе. Например, если использовать отдельно, AIC -950 не дает никакого представления о производительности модели и его невозможно объяснить менеджеру.

2Средняя точность прогноза

Средняя точность прогноза также является интересным показателем. Этот показатель очень интуитивно понятен и легко объясним менеджеру (наша модель имеет среднюю точность прогнозирования 66%, что также означает, что наши модели имеют среднюю ошибку прогнозирования 34%). Это дает хорошее представление о том, насколько хорошо работает модель прогнозирования. Например, возьмем эти результаты прогнозирования:

Ну... Нет ничего идеального!

Мы видим, что у этой метрики есть серьезный недостаток. У среднего есть один главный недостаток; он особенно чувствителен к влиянию выбросов. Когда результаты прогноза действительно плохие (когда ошибка сама по себе выше, чем ожидаемый результат наземной истины), процент может быть очень низким (в этом примере: (1 — (225/25)) дает Минус 800%), что окажет большое негативное влияние на глобальную точность среднего прогноза.

· Решением этой проблемы может быть сокращение минимального процентного значения до 0%, чтобы уменьшить влияние изолированных/отклоняющихся результатов прогноза.

· Мы могли бы также использовать медиану вместо среднего

Например, если мы использовали медиану вместо нулевого отсечения, это дает нам точность медианного прогноза 85% (выбросы игнорируются) по сравнению с 66% при средней точности прогноза с нулевым отсечением.

В общем, когда ваше распределение ошибок асимметрично, вы должны использовать медиану вместо среднего. В некоторых случаях средняя точность прогноза также может совершенно ничего не значить. Если вы помните свою статистику; коэффициент вариации (CV) представляет собой отношение стандартного отклонения к среднему (коэффициент вариации = (стандартное отклонение / среднее) * 100). Большое значение CV означает большую изменчивость, что также означает больший уровень дисперсии вокруг среднего значения. Например, мы можем рассматривать все, что выше CV 0,7, как сильно изменчивое и не совсем предсказуемое. Кроме того, это может показать, что способность предсказания вашей модели прогнозирования очень нестабильна! (Среднее значение в этом случае имеет плохое значение) )

3Предупреждение: модель временных рядов ЛОВУШКА ОЦЕНКИ!

Хорошо, прежде чем мы углубимся в экспериментальную технику RdR, я хотел бы рассказать об одной важной ошибке, которую я видел так много раз в Интернете: Пожалуйста, не рассчитывайте показатели производительности на подогнанных данных / обучении. данные!

В традиционной статистике модели прогнозирования временных рядов часто оценивались по «подгонке» («найти наилучшую подгонку») результатов прогнозирования модели, что, как мне кажется, делает абсолютно вообще никакого смысла! В процессе машинного обучения мы оцениваем/выбираем наши модели по результатам подгонки? НИКОГДА (надеюсь!). Если вы не хотите знать, переоснащает ли ваша модель или недообучает (вы можете сравнить результаты проверки и тренировочного набора)

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

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

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

Эталонный показатель 4RdR

Предлагаемая методика оценки RdR в основном ответит на три вопроса:

Как учесть сходство формы временного ряда? :

  • Ответ: Динамическое искажение времени.

Как мы можем узнать, следует ли нам использовать нашу модель прогнозирования или нет? :

  • Ответ: лучше или хуже, чем наивное случайное блуждание?

Как учесть ошибки? :

  • Ответ: Среднеквадратичная ошибка (RMSE)

Теперь предположим, что у нас есть две следующие модели с точно таким же RMSE:

Какую модель вы бы выбрали?

Один большой недостаток в использовании MAE, RMSE или AIC; эти показатели не учитывают важный критерий прогноза: СХОДСТВО ФОРМЫ!

Зачем использовать динамическую деформацию времени (DTW) в качестве показателя сходства? :

• Евклидово расстояние между временными рядами: плохой выбор из-за искажения временной оси.

• DTW: найти оптимальный (минимальное расстояние) путь деформации между двумя временными рядами путем «синхронизации»/«выравнивания» различных сигналов на временной оси.

• Расстояние DTW — это стоимость квадратного корня оптимального пути деформации.

• Чем меньше расстояние на пути деформации, тем более похожи временные ряды.

Если вы хотите узнать больше о Dynamic Time Warping (DTW): https://www.slideshare.net/DavideNardone/accelerating-dynamic-time-warping-subsequence-search-with-gpu

Если менеджер спросит вас: «Должны ли мы использовать нашу модель прогнозирования для предсказания будущего? Это хорошо или нет?» Интересным ответом может быть: Ну, судя по метрикам оценки производительности, наша модель на 65% лучше, чем если бы мы принимали решение случайным образом. Вот где хвастается случайное блуждание.

Мы можем интерпретировать оценку RdR как процент разницы (в сходстве ошибок и формы) между вашей моделью и простой моделью случайного блуждания на основе оценки RMSE и оценки DTW. Если процент отрицательный, ваша модель [X]% хуже случайной. Если процент положительный, ваша модель на [X]% лучше, чем случайная. Другими словами, [X]% будет меняться в зависимости от ошибок RMSE и расстояния DTW около 0, что является границей наивной случайности. Почему RMSE вместо MAE? Я думаю, что наказание средней ошибки большими ошибками больше отражает реальность и стабильность модели.

-∞% означает, что иногда у вас может быть очень большой отрицательный процентный показатель, например -98695%; Это плохая новость, и это означает, что вы определенно не должны использовать модель!

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

Хватит болтать, давайте попробуем и посмотрим, что получится!

Экспериментальный набор данных № 1: простой (хорошая автокорреляция и сезонная структура, детерминированная система):

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

Наивная модель случайного блуждания (оценка RdR = 0):

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

Можем ли мы победить это?

Здесь многошаговые прогнозы на 12 периодов в будущем (невидимые тестовые данные) наших четырех моделей:

Рассчитаем показатель RdR для каждой модели:

На этом графике мы видим, что все показатели очень близки. Лучшая модель — Seq2Seq.

Если мы хотим получить более подробную информацию о показателе RdR, мы можем построить график зависимости RMSE от DTW следующим образом:

Ось y предназначена для штрафных ошибок, а ось x — для сходства формы временного ряда (между прогнозом и невидимым набором тестовых данных). На этом графике мы видим, что Seq2Seq была лучшей моделью как по ошибке, так и по форме, и что она находится на полпути между оценкой случайного блуждания и идеальной оценкой (что соответствует показателю RdR 50,32%). Мы видим, что LightGBM имеет немного больше ошибок, чем эконометрические модели (RMSE), но имеет немного лучшее сходство формы (расстояние DTW). Все модели были намного лучше, чем производительность модели Random Walk.

Интерпретация лучшей модели (Seq2Seq):

Если мы увеличим прогноз лучшей модели (Seq2Seq):

Экспериментальный набор данных № 2: средний (автокорреляция и сезонная структура, много шума):

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

Наивная модель случайного блуждания (оценка RdR = 0):

Можем ли мы победить это? :

Здесь многошаговые прогнозы на 12 периодов в будущем (невидимые тестовые данные) наших четырех моделей:

Рассчитаем показатель RdR для каждой модели:

Мы видим, что модель SEQ2SEQ была лучшей. SARIMA показала худшие результаты, но все модели по-прежнему лучше, чем случайное блуждание. Как мы и ожидали, мы также видим, что в глобальном масштабе этот раунд был сложнее, чем предыдущий; оценки RdR ниже.

Если мы хотим получить более подробную информацию о показателе RdR, мы можем построить график зависимости RMSE от DTW следующим образом:

Ось y предназначена для штрафных ошибок, а ось x - для сходства формы временного ряда. На этом графике мы видим, что Seq2Seq была лучшей моделью как по ошибке, так и по форме. SARIMA была почти равна RMSE, чем случайное блуждание, но форма временного ряда SARIMA была лучше (расстояние DTW).

Интерпретация лучшей модели (Seq2Seq):

Если мы увеличим прогноз лучшей модели (Seq2Seq):

Экспериментальный набор данных № 3: сложный (плохая автокорреляция, плохая сезонная структура, одинаковая цена акций):

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

Наивная модель случайного блуждания (оценка RdR = 0):

Можем ли мы победить это?

Здесь многошаговые прогнозы на 12 периодов в будущем (невидимые тестовые данные) наших четырех моделей:

Рассчитаем показатель RdR для каждой модели:

Просто взглянув на эту гистограмму, мы не должны использовать как Holt-Winters, так и LightGBM, поскольку они хуже (по погрешности и сходству формы), чем простая наивная модель случайного блуждания.

Если мы хотим получить более подробную информацию о показателе RdR, мы можем построить график зависимости RMSE от расстояния DTW следующим образом:

Ось y предназначена для штрафных ошибок, а ось x - для сходства формы временного ряда. Здесь мы видим, что Seq2Seq была лучшей моделью, в то время как Holt-Winters и SARIMA были очень близки к характеристикам случайного блуждания. Отсутствовала LightGBM, худшая модель в данном случае.

Если мы увеличим прогноз лучшей модели (Seq2Seq):

Интерпретация лучшей модели (Seq2Seq):

С оценкой RdR мы также можем попытаться получить общую оценку по трем наборам данных вместе:

Seq2Seq выигрывает этот раунд со средним показателем RdR 38,08%, Holt-Winters на второй позиции, SARIMA затем LightGBM.

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

Как обычно, код Python для этого экспериментального счета RdR доступен на моем github как эксперимент с блокнотом jupyter: github.

Надеюсь, этот эксперимент был вам полезен!

Дэйв Кот, Data Scientist, M.Sc. БИ