Вопрос или проблема
Я рассматриваю множество алгоритмов и библиотек для временных рядов, таких как Prophet, darts, auto_ts и т.д.
Все библиотеки обсуждают унивариантные временные ряды (где задача заключается в прогнозировании на основе одного временного ряда) и многовариантные (где доступны несколько временных рядов, и изучение всех рядов вместе может помочь при выводе), но ни одна библиотека не работает с не временной информацией.
То есть, учитывая, что мы хотим прогнозировать расходы клиентов в магазине, и мы знаем их предыдущие покупки, а также их возраст, адрес, описание работы и т.д.
Эти не временные характеристики также могут помочь в прогнозировании, но я не вижу известных платформ, предоставляющих возможность объединять эти данные в процессе обучения модели.
Я что-то упускаю?
Потому что это больше не строго временной ряд. Например: переменная адреса. В контексте временных рядов, если они не переехали в течение вашего временного интервала, то эта переменная будет константой. Таким образом, вы сравниваете различные сущности, в то время как временные ряды подразумевают одну сущность во времени.
Обычно это можно решить с помощью GAM или просто пытаясь «извлечь признаки» временной части с сезонными фиктивными переменными и простой переменной тренда (или кусочной тренда) и передавая все это в регрессию или что-то подобное.
Ответ или решение
Вопрос о прогнозировании временных рядов с использованием не временной информации (экзогенные характеристики) действительно представляет собой интересную задачу. Вы правы в том, что большинство библиотек для работы с временными рядами, таких как Prophet, Darts, Auto_TS и другие, в основном фокусируются на унитарных и многомерных временных рядах, не учитывая возможности интеграции вне временных признаков.
Давайте рассмотрим, как можно решить эту задачу.
-
Понимание проблемы: Когда используется не временная информация, такая как возраст, адрес, профессия и другие характеристики, важным является то, что временные ряды могут иметь разные степени зависимости от этих характеристик. Например, адрес может не меняться, но это может быть важно для сегментации клиентов или понимания специфик покупательского поведения.
-
Feature Engineering: Использование экзогенных переменных в прогнозировании временных рядов можно рассматривать как расширение ваших временных рядов. Следует выделить важные характеристики и преобразовать их в формат, который может быть использован в моделях:
- Генерация временных дубликатов: Повторяйте значения экзогенных переменных для каждого временного промежутка в данными (например, возраст остается постоянным, а адрес можно закодировать).
- Сезонные и трендовые дубликаты: Создание сезонных индикаторов и переменных тренда для интеграции с экзогенными переменными.
-
Моделирование: После подготовки данных стоит рассмотреть различные подходы:
- Регрессионные модели: Используйте линейные или нелинейные регрессионные модели, такие как обобщенные аддитивные модели (GAM), которые хорошо работают с временными компонентами. Например, можно интегрировать экзогенные переменные, которые будут предсказывать целевую переменную на основе как временных, так и статичных факторов.
- Модели временных рядов с экзогенными переменными (SARIMAX): Модель ARIMA, которая может учитывать экзогенные переменные, что сводит проблему к более традиционному подходу к работе с временными рядами.
- Машинное обучение: Используйте алгоритмы машинного обучения, которые в состоянии учитывать как временные, так и экзогенные переменные. Например, алгоритмы бустинга или нейронные сети могут эффективно работать с такими данными, если они правильно адаптированы.
-
Библиотеки и инструменты: Некоторые библиотеки действительно предоставляют возможность интеграции экзогенных переменных. Например:
- Statsmodels: Посмотрите на модель SARIMAX, которая позволяет добавлять экзогенные переменные.
- XGBoost / LightGBM: Хотя это не прямые модели временных рядов, они могут моделировать временную серию, если временные особенности подготовлены должным образом.
- TensorFlow / PyTorch: Создание пользовательских нейронных сетей, которые могут обрабатывать как временные, так и экзогенные данные.
-
Оценка модели: Важно выделить отдельные подмножества данных для обучения и тестирования, чтобы убедиться, что модель обобщается на новых данных. Обратите внимание на метрики, такие как MAE, RMSE и другие, которые помогут оценить качество ваших прогнозов.
Таким образом, можно успешно интегрировать экзогенные переменные в модели временных рядов с помощью предварительной обработки данных, выбора правильных алгоритмов и использования библиотек, поддерживающих такие возможности. Надеюсь, это поможет вам дальше в вашем исследовании и разработках в сфере прогнозирования временных рядов.