Анализ временных рядов
Временные ряды это актуальный инструмент применимые во множестве решений, от предсказания цен на акции, прогнозов погоды, планирования бизнеса, до распределения ресурсов. Несмотря на то, что прогнозирование может быть сведено к построению контролируемой регрессии, существуют особенноссти, связанные с временным характером наблюдений, которые необходимо учитывать, используя специальные инструменты.
Временной ряд
Обычно временной ряд представляется как стохастический процесс Y(t), то есть ряд случайных переменных. В момент предсказания мы находимся в моменте t и нужно предположить значение Y(t+b), использую только информацию, доступную в момент t.
Как валидировать и тестировать модель временного ряда?
Из-за временных зависимостей данных временных рядов, мы не можем пользоваться обычными способами валидации. Чтобы избежать смещения оценки мы должны удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.
Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано здесь [1]. Эта процедура называется кросс-валидацией временного ряда и может быть вкратце описано следующей картинкой, в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.
Если мы хотим предсказать следующие n шагов, то можно заранее кросс-валидировать 1,2,...,n шагов. Таким образов можно также сравнить качество предсказаний для разных временных горизонтов [на 07.01.21 не создан].
Определив лучшую модель, мы можем применить её ко всему обучающему набору и оценить его работу на следующем во времени наборе данных. Оценка работы может быть дана с использованием метода скользящего окна, который мы использовали при кросс-валидации, но без переподсчёта параметром модели.
Краткое исследование данных
В следующей части мы попробуем использовать несколько разных моделей для предсказания изменений в промышленного производства, которое будем оценивать численно, как количество электро оборудования, произведённого в зоне Евро.
Данные легко получить из пакета fpp2 в R. Чтобы набор можно было использовать вне R просто запустите следующий код в среде R.
library(fpp2) write.csv(elecequip,file = “elecequip.csv”,row.names = FALSE)
Набор данных описиывает ежемесячное производство электрооборудования(компьютеры электрические и оптические приборы) в зоне евро(17 стран) в период с января 1996 по март 2012 года (см. график ниже). Последние два года будем использовать при тестировании.
Временной ряд имеет пик в конце 2000 и другой в течение 2007. Также наблюдается большой спад в конце 2008 года, который, видимо, совпал с мировым финансовым кризисом,который случился в том же году.
В течение каждого года можно увидеть повторяющийся рисунок, описывающий сезонные колебания. Посмотрим ближе на графики каждого года, чтобы лучше его понять, представим графики в декартовых и полярных координатах.
Можно наблюдать сильно выраженные сезонные изменения, особенно большой спад в августе, связанный с летними каникулами.
Модели прогнозирования временных рядов
- Наивный
- Разделение по сезонам (+ любая модель)
- Экспоненциальное сглаживание
- ARIMA, SARIMA
- GARCH
- Динамические линейные модели
- TBATS
- Prophet
- NNETAR
- LSTM