ETS против сезонного наивного метода
В этом упражнении вы сравните прогнозы ETS с прогнозами сезонного наивного метода на основе 20 лет данных cement — временного ряда квартального производства цемента. Для сравнения будет использоваться скользящая кросс-валидация с горизонтом 4 шага вперёд. Поскольку вычисления занимают некоторое время, в вашем рабочем пространстве будет доступна сокращённая версия ряда cement.
Второй аргумент tsCV() должен возвращать объект прогноза, поэтому вам понадобится функция, которая подгоняет модель и возвращает прогнозы. Напомним:
> args(tsCV)
function (y, forecastfunction, h = 1, ...)
В этом упражнении вы воспользуетесь как существующей функцией прогнозирования, так и специально подготовленной для вас. Помните: иногда простые методы работают лучше сложных!
Это упражнение является частью курса
Прогнозирование в R
Инструкции к упражнению
- Функция для получения прогнозов ETS —
fets()— уже написана для вас. - Примените
tsCV()для обоих методов — ETS и сезонного наивного — к даннымcementс горизонтом прогнозирования 4. В качестве аргумента функции прогнозирования используйтеfetsдляe1иsnaiveдляe2соответственно. - Вычислите MSE для полученных ошибок на 4 шага вперёд и удалите пропущенные значения. Выражения для расчёта MSE уже подготовлены, однако второй необязательный аргумент не указан (вы уже работали с ним ранее).
- Сохраните наименьшее значение MSE в переменную
bestmse. Для этого просто скопируйте полностью строку кода, которая вычисляет наименьшее MSE из предыдущего шага.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Function to return ETS forecasts
fets <- function(y, h) {
forecast(ets(y), h = h)
}
# Apply tsCV() for both methods
e1 <- tsCV(___, ___, h = ___)
e2 <- tsCV(___, ___, h = ___)
# Compute MSE of resulting errors (watch out for missing values)
mean(e1^2, ___)
mean(e2^2, ___)
# Copy the best forecast MSE
bestmse <- ___