Использование библиотеки Prophet в Facebook для прогнозирования индекса FTSE 100.

Эта статья (часть короткой серии) направлена ​​на ознакомление с библиотекой Prophet, обсуждение ее на высоком уровне и прохождение базового примера прогнозирования индекса FTSE 100. В следующих статьях будет обсуждаться, как именно Prophet достигает своих результатов, как интерпретировать результаты и как улучшить модель.
Пожалуйста, прочтите эту статью (моей талантливой коллеги Гавиты) для введения в алгоритмы прогнозирования временных рядов.

Что такое Facebook Prophet?

Prophet - это библиотека прогнозирования временных рядов с открытым исходным кодом, разработанная командой Core Data Science в Facebook.
Стандартная (и самая простая) реализация использует одномерную модель, в которой только одна переменная, время, используется для прогнозирования результатов.
Прогноз достигается следующим образом:

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

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

Как использовать Facebook Prophet?

Одно из больших преимуществ Prophet - это минимальная настройка. Все, что нам требуется для использования Prophet, - это фреймворк pandas с двумя столбцами, «ds» - наша метка даты и «y» - наша целевая переменная.
Ниже приведен блок кода, сортирующий исходную конфигурацию и извлекающий информацию о тикере FTSE 100 от yfinance и построение набора данных.

Затем мы выполняем небольшую обработку данных, чтобы сжать фрейм данных в форму, которую ожидает Prophet.

Теперь у нас есть необходимый фрейм данных для применения нашей модели Prophet, очень простой в настройке!

Затем мы определим нашу модель и подгоним ее к нашему набору данных. Для целей этой статьи мы оставим КАЖДЫЙ гиперпараметр (параметры, используемые при обучении модели) по умолчанию, чтобы продемонстрировать готовое решение.

Насколько хорошо у Пророка дела?

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

Но насколько удачной оказалась модель? Необходимо определить некоторые метрики для оценки производительности, здесь использовалась MAPE (средняя абсолютная ошибка в процентах), поскольку она обеспечивает удобную для пользователя метрику ошибок в процентах.

Результаты показывают MAPE 1,06% - удивительно низкий показатель для такой необработанной модели!

Неоправданно высокая точность обычно является поводом для беспокойства, поэтому здесь используются инструменты перекрестной проверки Prophet для дальнейшего исследования.
Эти функции позволяют создавать «смоделированные исторические прогнозы», где мы проверяем наши результаты на подмножествах обучающих данных. < br /> Это достигается путем усечения обучающего набора данных в каждой точке прогноза, обучения модели и прогнозирования на горизонте перед проверкой результатов на фактических данных и повторением в последовательных интервалах.

В приведенном ниже коде используется этот подход перекрестной проверки, при этом для начала используются исходные данные за 3 года (начальные = '1095 дней'), прогнозируется на 180 дней вперед (горизонт = '180 дней') и повторяется этот процесс каждые 90 дней (период = «90 дней»).

График выше показывает четкую тенденцию к увеличению MAPE по мере увеличения длины горизонта, что мы можем интуитивно понять.
MAPE с перекрестной проверкой дала 11,66% в этом ансамбле прогнозов. Интересно отметить, что MAPE 1,06% в прогнозе FTSE 100 был невероятно низким для «типичной» модели на этом горизонте. Так что это хорошая работа, мы не слишком воодушевились работой модели!

Резюме

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

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