Анализ временных рядов — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 8: Строка 8:
 
Из-за временных зависимостей данных временных рядов, мы не можем пользоваться обычными способами валидации. Чтобы избежать смещения оценки мы должны удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.
 
Из-за временных зависимостей данных временных рядов, мы не можем пользоваться обычными способами валидации. Чтобы избежать смещения оценки мы должны удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.
  
Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано здесь [https://robjhyndman.com/hyndsight/tscv/]. Эта процедура называется кросс-валидацией временного ряда и может быть вкратце описано следующей картинкой, в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.
+
Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано здесь [https://robjhyndman.com/hyndsight/tscv/]. Эта процедура называется кросс-валидацией временного ряда и может быть вкратце описано следующей картинкой, в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.<br>
[[Файл:https://miro.medium.com/max/4800/1*WhbBO3X-HHLWMiVWSjHWVA.png]]
+
[[Файл:TimeSeriesCross-validation.png]]<br>
 +
Если мы хотим предсказать следующие n шагов, то можно заранее кросс-валидировать 1,2,...,n шагов. Таким образов можно также сравнить качество предсказаний для разных [[временные горизонты|временных горизонтов]] <sup>[на 07.01.21 не создан]</sup>.<br><br>
 +
 
 +
Определив лучшую модель, мы можем применить её ко всему обучающему набору и оценить его работу на следующем во времени наборе данных. Оценка работы может быть дана с использованием метода скользящего окна, который мы использовали при кросс-валидации, но без переподсчёта параметром модели.
 +
 
 +
==Краткое исследование данных==
 +
В следующей части мы попробуем использовать несколько разных моделей для предсказания изменений в промышленного производства, которое будем оценивать численно, как количество электро оборудования, произведённого в зоне Евро.
 +
 
 +
Данные легко получить из пакета [https://cran.r-project.org/package=fpp2 fpp2] в R. Чтобы набор можно было использовать вне R просто запустите следующий код в среде R.<br>
 +
 
 +
'''library'''(fpp2)
 +
'''write.csv'''(elecequip,file = “elecequip.csv”,row.names = FALSE)
 +
 
 +
Набор данных описиывает ежемесячное производство электрооборудования(компьютеры электрические и оптические приборы) в зоне евро(17 стран) в период с января 1996 по март 2012 года (см. график ниже). Последние два года будем использовать при тестировании.<br>
 +
 
 +
[[Файл:ManufactureOfElectricalEquipment.png]]
 +
 
 +
Временной ряд имеет пик в конце 2000 и другой в течение 2007. Также наблюдается большой спад в конце 2008 года, который, видимо, совпал с мировым финансовым кризисом,который случился в том же году.
 +
 
 +
В течение каждого года можно увидеть повторяющийся рисунок, описывающий сезонные колебания. Посмотрим ближе на графики каждого года, чтобы лучше его понять, представим графики в декартовых и полярных координатах.<br>
 +
 
 +
[[Файл:SeasonalPlotMonthluSeasonalPattern.png]]
 +
[[Файл:PolarSeasonalPlotMonthlyManufactureOfElectricalEquipment.png]]
 +
 
 +
Можно наблюдать сильно выраженные сезонные изменения, особенно большой спад в августе, связанный с летними каникулами.
 +
 
 +
==Модели прогнозирования временных рядов==
 +
#Наивный
 +
#Разделение по сезонам (+ любая модель)
 +
#Экспоненциальное сглаживание
 +
#ARIMA, SARIMA
 +
#GARCH
 +
#Динамические линейные модели
 +
#TBATS
 +
#Prophet
 +
#NNETAR
 +
#LSTM

Версия 12:18, 11 января 2021

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

Временной ряд

Обычно временной ряд представляется как стохастический процесс Y(t), то есть ряд случайных переменных. В момент предсказания мы находимся в моменте t и нужно предположить значение Y(t+b), использую только информацию, доступную в момент t.

Как валидировать и тестировать модель временного ряда?

Из-за временных зависимостей данных временных рядов, мы не можем пользоваться обычными способами валидации. Чтобы избежать смещения оценки мы должны удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.

Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано здесь [1]. Эта процедура называется кросс-валидацией временного ряда и может быть вкратце описано следующей картинкой, в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.
TimeSeriesCross-validation.png
Если мы хотим предсказать следующие 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 года (см. график ниже). Последние два года будем использовать при тестировании.

ManufactureOfElectricalEquipment.png

Временной ряд имеет пик в конце 2000 и другой в течение 2007. Также наблюдается большой спад в конце 2008 года, который, видимо, совпал с мировым финансовым кризисом,который случился в том же году.

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

SeasonalPlotMonthluSeasonalPattern.png PolarSeasonalPlotMonthlyManufactureOfElectricalEquipment.png

Можно наблюдать сильно выраженные сезонные изменения, особенно большой спад в августе, связанный с летними каникулами.

Модели прогнозирования временных рядов

  1. Наивный
  2. Разделение по сезонам (+ любая модель)
  3. Экспоненциальное сглаживание
  4. ARIMA, SARIMA
  5. GARCH
  6. Динамические линейные модели
  7. TBATS
  8. Prophet
  9. NNETAR
  10. LSTM