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

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

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

Для создания обучающей и тестовой выборок можно использовать функцию subset(), которая возвращает подмножество временного ряда. Необязательные аргументы start и end задают диапазон с помощью индексных значений.

> # x — числовой вектор или временной ряд
> # Выбор наблюдений с 101 по 500
> train <- subset(x, start = 101, end = 500, ...)

> # Выбор первых 500 наблюдений
> train <- subset(x, end = 500, ...)

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

> # f — объект класса "forecast"
> # x — числовой вектор или временной ряд
> accuracy(f, x, ...)

Среди показателей точности присутствует корень из среднеквадратичной ошибки (RMSE) — квадратный корень из среднеквадратичной ошибки (MSE). Минимизация RMSE, которая соответствует повышению точности, равносильна минимизации MSE.

Заранее загруженный временной ряд gold содержит ежедневные цены на золото за 1108 дней. В этом упражнении вы используете первые 1000 дней как обучающую выборку и построите прогнозы для оставшихся 108 дней. Прогнозы будут сравниваться с фактическими значениями с помощью простых функций прогнозирования: naive(), с которой вы уже работали в этой главе, и meanf(), возвращающей прогнозы, равные среднему всех наблюдений. Для обеих функций потребуется задать параметр h, указывающий количество прогнозируемых значений.

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

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

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

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

  • С помощью subset() создайте обучающую выборку для gold, включающую первые 1000 наблюдений. Присвойте её переменной train.
  • Вычислите прогнозы для тестовой выборки, содержащей оставшиеся данные, с помощью naive() и сохраните результат в naive_fc. Задайте значение h соответствующим образом.
  • Теперь вычислите прогнозы для той же тестовой выборки с помощью meanf() и сохраните результат в mean_fc. Задайте значение h соответствующим образом.
  • Сравните показатели точности двух методов с помощью функции accuracy().
  • На основе полученных результатов сохраните прогнозы с более высокой точностью в переменную bestforecasts.

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

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

# Create the training data as train
train <- subset(___, end = ___)

# Compute naive forecasts and save to naive_fc
naive_fc <- naive(___, h = ___)

# Compute mean forecasts and save to mean_fc
mean_fc <- meanf(___, h = ___)

# Use accuracy() to compute RMSE statistics
accuracy(___, gold)
___(___, gold)

# Assign one of the two forecasts as bestforecasts
bestforecasts <- ___
Редактировать и запускать код