НачатьНачать бесплатно

Прогнозирование объёма звонков

Ещё один пример временного ряда с несколькими сезонными периодами — calls. Этот набор данных содержит объём звонков с 5-минутным разрешением за 20 consecutive рабочих дней в крупном североамериканском банке. В рабочем дне насчитывается 169 пятиминутных интервалов, поэтому недельная сезонная частота составляет 5 × 169 = 845. Недельная сезонность выражена слабо, поэтому здесь мы будем моделировать только суточную сезонность. Набор данных calls уже загружен в вашу рабочую среду.

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

Это упражнение является частью курса

Прогнозирование в R

Посмотреть курс

Инструкции к упражнению

  • Постройте график данных calls, чтобы увидеть выраженную суточную и слабую недельную сезонности.
  • Сформируйте матрицу xreg, задав порядок 10 для суточной сезонности и 0 — для недельной. Обратите внимание: если вектор указан неверно, сессия может завершиться с ошибкой!
  • Подберите модель динамической регрессии под названием fit с помощью функции auto.arima(), указав seasonal = FALSE и stationary = TRUE.
  • Проверьте остатки подобранной модели.
  • Создайте прогноз fc на 10 рабочих дней вперёд и постройте его график. Правильное значение h можно определить по описанию упражнения.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Plot the calls data
___

# Set up the xreg matrix
xreg <- fourier(___, K = ___)

# Fit a dynamic regression model
fit <- auto.arima(___, xreg = ___, ___, ___)

# Check the residuals
___

# Plot forecasts for 10 working days ahead
fc <- forecast(fit, xreg =  fourier(calls, c(10, 0), h = ___))
___
Редактировать и запускать код