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

Функция auto_arima() является частью библиотеки pmdarima, популярной библиотеки Python для прогнозирования временных рядов. Он предназначен для выполнения поиска в сетке по различным комбинациям значений p, d и q, чтобы найти наилучшее соответствие нашим данным. Значения p, d и q представляют порядок модели ARIMA, где p — количество членов авторегрессии, d — степень различия, а q — количество членов скользящего среднего.

Значения по умолчанию для p, d и q: (5,1,0) для несезонных данных и (1,1,1,12) для сезонных данных. Однако эти значения по умолчанию не всегда могут быть лучшим выбором для наших конкретных данных. Поэтому нам нужно поэкспериментировать с различными значениями p, d и q, чтобы найти наилучшую комбинацию, которая дает самые низкие значения AIC (информационный критерий Акаике) или BIC (байесовский информационный критерий).

Вот несколько советов, которые помогут вам настроить параметры p, d и q в auto_arima():

  1. Начните со значений по умолчанию. В начале процесса настройки рекомендуется начать со значений по умолчанию и сравнить результаты с другими значениями. Это даст нам основу для сравнения.
  2. Используйте ручной поиск: выполните ручной поиск значений p, d и q, обучая и тестируя модель на различных комбинациях гиперпараметров. Используйте проверочный набор, чтобы выбрать лучшую модель.
  3. Использовать поиск по сетке: используйте метод поиска по сетке, чтобы найти наилучшую комбинацию значений p, d и q, проверив все возможные комбинации значений в указанном диапазоне. Это может быть дорогостоящим в вычислительном отношении, но это комплексный подход.
  4. Используйте байесовскую оптимизацию: в этом подходе используется вероятностная модель для прогнозирования следующего набора гиперпараметров, которые нужно попробовать, на основе предыдущей производительности модели. Это более эффективный подход, чем поиск по сетке, но он требует некоторого понимания байесовской оптимизации.
  5. Использовать AIC или BIC: выберите гиперпараметры, дающие самые низкие значения AIC или BIC. Эти значения являются мерой качества модели и обычно используются для сравнения производительности различных моделей.

Я хочу указать на некоторые конкретные типы данных, с которыми вы можете столкнуться:

  1. Для данных с высоким уровнем шума или волатильностью может потребоваться более высокое значение d для стабилизации данных перед подбором модели ARIMA. Попробуйте начать с d=1 или d=2 и посмотрите, отражает ли полученная модель тенденцию и сезонность данных.
  2. Для данных с сезонными закономерностями может потребоваться задать для параметра сезонности D ненулевое значение. Это добавит в модель сезонную разницу, которая поможет уловить сезонные тенденции и уменьшить ошибки, связанные с сезонностью.
  3. Для данных с четким линейным трендом установите d=1 и D=1 и используйте более высокое значение p, чтобы зафиксировать тренд. Более высокое значение q может также потребоваться для регистрации любых случайных толчков в данных.
  4. Для данных с периодическими тенденциями или циклами вам может потребоваться использовать комбинацию значений p и q для регистрации колебаний. Попробуйте поэкспериментировать с различными комбинациями значений p и q, чтобы найти оптимальную конфигурацию.
  5. Для данных с большой памятью используйте более высокое значение d, чтобы уменьшить эффекты памяти перед подгонкой модели. Однако будьте осторожны, чтобы не переоценить данные, так как это может привести к неточным прогнозам.
  6. Для данных с высокой сезонностью установите m количество сезонных периодов в данных. Это поможет модели более точно отражать сезонные закономерности.

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

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