Оценка точности прогнозов для сезонных методов
Как вы узнали в первой главе, функция 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"]
___
___