Использование tsCV() для кросс-валидации временных рядов
Функция tsCV() вычисляет ошибки кросс-валидации для временных рядов. Ей необходимо передать временной ряд, метод прогнозирования и горизонт прогноза. Вот пример из видеолекции:
> e = tsCV(oil, forecastfunction = naive, h = 1)
В этом упражнении вы воспользуетесь tsCV(), чтобы вычислить и построить значения MSE для горизонтов прогноза до 8 шагов вперёд, применив метод naive() к данным goog. Для визуализации используется библиотека ggplot2 — возможно, вы с ней ещё не знакомы, но мы предоставили достаточно кода, чтобы вы могли разобраться с остальным.
Обязательно ознакомьтесь со слайдами по функции tsCV() из лекции. Данные goog уже загружены в вашу рабочую среду.
Это упражнение является частью курса
Прогнозирование в R
Инструкции к упражнению
- Используя данные
googи функциюnaive()для прогнозирования, вычислите ошибки кросс-валидации для горизонтов до 8 шагов вперёд. Сохраните результат в переменнуюe. - Вычислите значения MSE для каждого горизонта прогноза и исключите пропущенные значения из
e, указав второй аргумент функции. Выражение для вычисления MSE уже предоставлено. - Постройте график значений MSE (
y) в зависимости от горизонта прогноза (x). Обратите внимание на логику передачи аргументов функции. Если в списке аргументов указаноMSE = mse, тоmse— это объект, существующий в вашей рабочей среде за пределами функции, аMSE— это имя, под которым этот объект доступен внутри функции.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Compute cross-validated errors for up to 8 steps ahead
e <- tsCV(___, forecastfunction = ___, h = ___)
# Compute the MSE values and remove missing values
mse <- colMeans(e^2, na.rm = ___)
# Plot the MSE values against the forecast horizon
data.frame(h = 1:8, MSE = mse) %>%
ggplot(aes(x = h, y = ___)) + geom_point()