Данная статья рассматривает основные аспекты пакета «forecast», обращая внимание на его ключевые возможности и применение.
Ключевые слова: R, временные ряды, ARIMA
Прогнозирование — ключевой элемент в анализе временных рядов, и в R одним из мощных инструментов в этой области является пакет «forecast».
Прогнозирование временных рядов фокусируется на прогнозировании будущих событий или значений с использованием прошлых и настоящих точек данных. Точки данных собираются с течением времени, и этот метод используется в различных областях, таких как продажи, финансы, прогнозирование погоды и экономика. Ниже приведены некоторые компоненты и методы, которые следует учитывать при прогнозировании временных рядов.
Компоненты временного ряда:
— Тренд: долгосрочное движение или направление данных. Тенденции могут быть восходящими (увеличивающимися), нисходящими (убывающими) или плоскими (постоянными);
— Сезонность: повторяющиеся закономерности или колебания, происходящие через определенные промежутки времени. Например, продажи зимней одежды могут иметь годовую сезонность;
— Циклические модели: долгосрочные, несезонные модели, которые могут не иметь фиксированных интервалов. Циклические закономерности представляют собой колебания данных, не привязанные к конкретному сезону;
— Нерегулярность (шум): случайные, непредсказуемые колебания данных.
Методы прогнозирования временных рядов — это методы, используемые для прогнозирования будущих значений временных рядов на основе исторических и текущих данных. Существует несколько хорошо зарекомендовавших себя методов прогнозирования временных рядов, каждый из которых имеет свои сильные и слабые стороны. Вот некоторые из наиболее часто используемых методов прогнозирования временных рядов:
- AutoRegressive Integrated Moving Average (ARIMA);
- Сезонное разложение временных рядов (STL);
- Сезонный ARIMA (SARIMA) [1].
Пакет «forecast» предоставляет набор инструментов для прогнозирования временных рядов, облегчая анализ и предсказание будущих значений. Созданный профессором Робом Дж. Хайджером, этот пакет стал неотъемлемой частью арсенала аналитиков данных и статистиков [2].
Одной из ключевых функций является auto.arima(), которая автоматически определяет параметры модели ARIMA для временного ряда. Это упрощает процесс выбора подходящей модели и повышает точность прогнозов.
Функция forecast() используется для создания прогнозов на основе построенных моделей. Она предоставляет простой способ получения будущих значений временного ряда.
Возьмем данные «Bakery Sales» с сайта Kaggle о ежедневных продажах выпечки [3]. Можно использовать пакет «forecast» для построения прогноза продаж на следующие месяцы. Пример кода представлен на рисунке 1.
Рис. 1. Код построения прогноза продаж на 6 месяцев вперед
Здесь были произведены небольшие преобразования данных. Из данных извлечены только те колонки, которые содержат дату и продажи, а также сами данные преобразованы в одномерный временной ряд с помощью функции ts().
Модель ARIMA используется для описания и прогнозирования временных рядов, таких как ежедневные продажи, температура и другие явления, меняющиеся во времени. Функция auto.arima(), принимает только одномерные временные ряды в R и делает процесс моделирования более удобным.
На рисунке 2 представлены результаты визуализации прогноза. На оси X отображаются временные метки для прогнозируемых периодов. На оси Y отображаются значения временного ряда или прогнозные значения. Доверительные интервалы могут быть представлены как дополнительные области или линии вокруг прогнозных значений.
Результаты, выведенные с помощью print(forecast_result), обычно содержат более подробную информацию, включая статистические метрики и дополнительные параметры модели. Каждая строка представляет прогнозные значения и соответствующие доверительные интервалы для конкретных периодов временного ряда. Например, для периода 250, прогнозное среднее составляет 195491.4, а 80 % доверительный интервал находится между 38809.51 и 352173.3. Аналогичные значения предоставляются для других уровней доверия (95 %).
Рис. 2. Визуализация прогноза ежемесячных продаж
Пакет «forecast» в R предоставляет мощные инструменты для анализа временных рядов и прогнозирования будущих значений. С его помощью можно легко и эффективно строить модели и делать точные прогнозы, что делает его неотъемлемым инструментом для специалистов в области анализа данных.
Литература:
1. Time Series and Forecasting Using R [Электронный ресурс] URL: https://www.geeksforgeeks.org/time-series-and-forecasting-using-r/ (дата обращения 20.01.2024);
2. forecast: Forecasting Functions for Time Series and Linear Models [Электронный ресурс] URL: https://cran.r-project.org/package=forecast (дата обращения 20.01.2024);
3. HOSUB JEONG, Bakery Sales [Электронный ресурс] URL: https://www.kaggle.com/datasets/hosubjeong/bakery-sales?select=Bakery+Sales.csv (дата обращения 20.01.2024).