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

Гармоническая регрессия при множественной сезонности

Гармонические регрессии также эффективны, когда временной ряд содержит несколько сезонных паттернов. Например, taylor содержит получасовые данные об электропотреблении в Англии и Уэльсе за несколько месяцев 2000 года. Сезонные периоды составляют 48 (суточная сезонность) и 7 × 48 = 336 (недельная сезонность). Данных недостаточно для анализа годовой сезонности.

Функция auto.arima() потребовала бы много времени для подгонки столь длинного ряда, поэтому вместо неё вы построите стандартную регрессионную модель с членами Фурье, используя функцию tslm(). Она очень похожа на lm(), но разработана специально для временных рядов. При множественной сезонности необходимо задать порядок \(K\) для каждого из сезонных периодов.

# The formula argument is a symbolic description
# of the model to be fitted

> args(tslm)
function (formula, ...)

tslm() — относительно новая функция, поэтому большую часть готового кода вы сможете понять без труда. Набор данных taylor уже загружен в вашу рабочую среду.

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

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

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

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

  • Подгоните гармоническую регрессию под именем fit к данным taylor, задав порядок 10 для каждого типа сезонности.
  • Постройте прогноз на 20 рабочих дней вперёд и сохраните его как fc. Обратите внимание, что данные получасовые — это важно для правильного выбора значения h.
  • Постройте временной график прогнозов.
  • Проверьте остатки подогнанной модели. Как вы сможете убедиться, auto.arima() справилась бы с этой задачей лучше.

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

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

# Fit a harmonic regression using order 10 for each type of seasonality
fit <- tslm(taylor ~ fourier(___, K = c(10, 10)))

# Forecast 20 working days ahead
fc <- forecast(___, newdata = data.frame(fourier(___, K = ___, h = ___)))

# Plot the forecasts
___

# Check the residuals of fit
___
Редактировать и запускать код