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

Сравнение auto.arima() и ets() на сезонных данных

Как формировать обучающую и тестовую выборки, если данные имеют частоту выше годовой? В таких случаях в параметры start и/или end функции window() можно передавать вектор вида c(год, период). Также важно правильно задавать значение h в функциях прогнозирования: h должно быть равно длине тестовой выборки.

Например, если ваши данные охватывают 15 лет, обучающая выборка состоит из первых 10 лет, а вы хотите спрогнозировать последние 5 лет, следует использовать h = 12 * 5, а не h = 5 — ведь тестовая выборка содержит 60 ежемесячных наблюдений. Если же обучающая выборка охватывает первые 9,5 лет, а прогноз строится на последние 5,5 лет, нужно задать h = 66, чтобы учесть дополнительные 6 месяцев.

В заключительном упражнении этой главы вы сравните сезонные модели ARIMA и ETS, применив их к квартальным данным о производстве цемента qcement. Поскольку ряд достаточно длинный, вместо кросс-валидации на временных рядах можно использовать обучающую и тестовую выборки — это значительно быстрее.

Набор данных qcement уже доступен в вашем рабочем пространстве.

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

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

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

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

  • Создайте обучающую выборку train, охватывающую 20 лет данных qcement: с 1988 года по последний квартал 2007 года включительно. Для параметра end используйте вектор. Оставшиеся данные составят тестовую выборку.
  • Подберите модели ARIMA и ETS на обучающих данных и сохраните их в переменные fit1 и fit2 соответственно.
  • Как и в предыдущих упражнениях, проверьте, что остатки обеих моделей являются белым шумом.
  • Постройте прогнозы для оставшихся данных с помощью обеих моделей и сохраните их в fc1 и fc2 соответственно. Задайте h равным общему числу кварталов в тестовой выборке. Обратите внимание: последнее наблюдение в qcement не приходится на последний квартал года!
  • С помощью функции accuracy() определите лучшую модель по значению RMSE и сохраните её в переменную bettermodel.

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

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

# Use 20 years of the qcement data beginning in 1988
train <- window(___, start = ___, end = ___)

# Fit an ARIMA and an ETS model to the training data
fit1 <- ___
fit2 <- ___

# Check that both models have white noise residuals
___
___

# Produce forecasts for each model
fc1 <- forecast(___, h = ___)
fc2 <- forecast(___, h = ___)

# Use accuracy() to find better model based on RMSE
accuracy(___, ___)
accuracy(___, ___)
bettermodel <- ___
Редактировать и запускать код