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

Оценка точности прогнозов для сезонных методов

Как вы узнали в первой главе, функция window() задаёт начало и конец временного ряда через фактические временны́е метки, а не через индексы. Оба аргумента — start и end — можно задать в виде вектора c(год, период), который вы уже использовали как аргумент функции ts(). Напомним: здесь период означает квартал.

В этом упражнении вы будете использовать данные о квартальном числе посетителей Мельбурна (visnights[, "VICMetro"]), чтобы создать три обучающих набора, исключив соответственно последний 1, 2 и 3 года. Прежде чем приступить, изучите предварительно загруженный набор данных visnights в консоли — это поможет вам определить правильное значение параметра h (количество прогнозируемых значений) для методов прогнозирования.

Затем для каждого обучающего набора вычислите прогноз на следующий год и сравните среднюю абсолютную процентную ошибку (MAPE) с помощью функции accuracy(). Как вы думаете, почему значения MAPE так сильно различаются?

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

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

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

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

  • С помощью функции window() создайте три обучающих набора на основе visnights[,"VICMetro"], исключив последний 1, 2 и 3 года соответственно. Назовите их train1, train2 и train3. Задайте параметр end в соответствии с каждым случаем.
  • Для каждого обучающего набора вычислите прогноз на один год вперёд с помощью метода snaive(). Назовите прогнозы fc1, fc2 и fc3 соответственно.
  • Следуя структуре примера кода, сравните значения MAPE трёх прогнозов с помощью функции accuracy(), используя тестовый набор данных.

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

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

# Create three training series omitting the last 1, 2, and 3 years
train1 <- window(visnights[, "VICMetro"], end = c(2015, 4))
train2 <- ___
train3 <- ___

# Produce forecasts using snaive()
fc1 <- snaive(___, h = ___)
fc2 <- ___
fc3 <- ___

# Use accuracy() to compare the MAPE of each series
accuracy(fc1, visnights[, "VICMetro"])["Test set", "MAPE"]
___
___
Редактировать и запускать код