1632
правки
Изменения
м
Обычно временной <br>{{Определение|definition ='''Временно́й ряд представляется как стохастический процесс Y(tили ряд динамики), то есть ряд случайных переменных. В момент предсказания мы находимся ''' {{---}} собранный в моменте t и нужно предположить значение Yразные моменты времени статистический материал о значении каких-либо параметров (t+bв простейшем случае одного), использую только информацию, доступную в момент tисследуемого процесса. Каждая единица статистического материала называется измерением или отсчётом. Во временном ряде для каждого отсчёта должно быть указано время измерения или номер измерения по порядку.}}
==Как валидировать и тестировать модель временного ряда?==Из-за временных зависимостей данных большинство других видов анализа, анализ временных рядов, мы не можем пользоваться обычными способами валидации. Чтобы избежать смещения оценки мы должны удостоверитьсяпредполагает, что обучающие наборы данных данные содержат только наблюдениясистематическую составляющую (обычно включающую несколько компонент) и случайный шум (ошибку), который затрудняет обнаружение регулярных компонент. Большинство методов исследования временных рядов включает различные способы фильтрации шума, которые произошли до событий из валидирующий наборовпозволяющие увидеть регулярную составляющую более отчетливо.<br>[[ФайлБольшинство регулярных составляющих временных рядов принадлежит к двум классам:TimeSeriesCross-validationони являются либо трендом, либо сезонной составляющей.png |thumb|left|400px|Рисунок 1Тренд представляет собой общую систематическую линейную или нелинейную компоненту, которая может изменяться во времени. кроссСезонная составляющая {{-валидация временного ряда<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience}} это периодически повторяющаяся компонента. Оба эти вида регулярных компонент часто присутствуют в ряде одновременно.com]</ref>]]<br>
Возможным способом преодоления данной проблемы будет использование скользящего окна==Валидирование и тестирование модели временного ряда==<br>Данные упорядочены относительно неслучайных моментов времени, и, значит, в отличие от случайных выборок, могут содержать в себе дополнительную информацию, как описано поэтому нельзя пользоваться обычными способами валидации. Чтобы избежать смещения оценки необходимо удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующиx наборов.<br>[[Файл:TimeSeriesCross-validation.png |thumb|left|400px|[https://robjhyndmantowardsdatascience.com/hyndsight/tscv/ здесьan-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 1.]. Эта процедура называется кроссКросс-валидацией валидация временного ряда и может быть вкратце описано следующей картинкой(рис. 1), в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.]]<br>
Если мы хотим предсказать следующие n шагов, то можно заранее кросс-валидировать 1,2Возможным способом преодоления данной проблемы будет использование скользящего окна,как описано [https://robjhyndman.com/hyndsight/tscv/ здесь]..,n шагов. Таким образов можно также сравнить качество предсказаний для разных Эта процедура называется [[временные горизонтыКросс-валидация|временных горизонтовкросс-валидацией]] <sup>[на 07временного ряда и может быть вкратце описана следующей картинкой (рис.01.21 не создан]</sup>1), в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.<br><br>
Данные легко получить из пакета В данной части используется несколько разных моделей для предсказания изменений в промышленном производстве,<br> которые для примера будем оценивать численно, как количество электрооборудования, произведённого в зоне Евро (рис. 2, 3).<br>[[Файл:SeasonalPlotMonthluSeasonalPattern.png|thumb|right|300px|[https://crantowardsdatascience.rcom/an-projectoverview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 3.org/package=fpp2 fpp2] Сезонные колебания]]Набор данных описывает ежемесячное производство электрооборудования (компьютеры электрические и оптические приборы) в Rзоне евро (17 стран) в период с января 1996 по март 2012 года (см. Чтобы набор можно было график ниже). Последние два года будем использовать вне R просто запустите следующий код в среде Rпри тестировании.<br><br><br><br><br>
'''library'''(fpp2) '''write.csv'''(elecequip,file = “elecequip.csv”,row.names = FALSE)Модели прогнозирования временных рядов==
Набор данных описывает ежемесячное производство электрооборудования(компьютеры электрические Существует 10 моделей прогнозирования, у каждой имеются свои достоинства и оптические приборы)(риснедостатки. Ниже, используя каждую модель, предскажем 12 месяцев, соответственно, значение $t+1, t+2) в зоне евро(17 стран) в период с января 1996 по март 2012 года (см, …, t + 12$. график ниже). Последние два года будем Имеет смысл использовать при тестированиисреднюю абсолютную ошибку для работы оценки модели.<br><br><br>
Временной ряд имеет пик в конце 2000 и другой в течение 2007Такие предскания предполагают, что стохастическая<ref>[https://ru.wikipedia.org/wiki/Стохастичность Википедия: Стохастичность]</ref> модель генерирует [[Участник:Mk17.ru|случайное блуждание]].<br>[[Файл:SeasonalNaiveElectricalEquipmentManufacturing.png|thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 5.] Cезонно-наивная]]<br>Расширение наивной модели сезонно-наивная модель (англ. Также наблюдается большой спад в конце 2008 годаSeason Naive, которыйSNAIVE) {{---}} сезонно-наивная модель предполагает, видимочто временной ряд имеет сезонную компоненту, совпал с мировым финансовым кризисом,который случился в том же годуи что период сезонности $T$.<br>
В течение каждого года можно увидеть повторяющийся рисунок, описывающий сезонные колебания(рис. 3). Посмотрим ближе на графики каждого года, чтобы лучше его понять, представим графики в декартовых и полярных координатах.<br>
Можно наблюдать сильно выраженные сезонные изменения===Разделение по сезонам + любая модель===[[Файл:STL_docompositionOnIndustrialProductionIndexData.png|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 6.] Методы разложения ряда]]<br>Если данные показывают, особенно большой спад в августечто они восприимчивы к периодическим (сезонным) изменениям (ежедневно, связанный с летними каникулами(рис. 4еженедельно, ежеквартально, ежегодно), то будет полезным разложить исходный временной ряд на сумму трёх компонентов.<br>
Будем предсказывать 12 месяцев, соответсвтенно, значение t+1, t+2, …, t + 12Обзор методов разложений ряда можно увидеть по [https://otexts.com/fpp2/decomposition.html ссылке]. Используется реализация из стандартной библиотеки (рис. 6).<br>
Будем использовать Среднюю абсолютную ошибкуОдним из способов использования декомпозиции для прогнозирования будет:<br>1) Разложить обучающий набор алгоритмом.<br>2) Посчитать сезонное отклонение ряда $Y(t) - S(MAEt) $, используя любую модель для оценки работы моделипрогнозирования сезонно-чувствительного временного ряда.<br>3) Добавить прогнозам сезонность последнего временного периода во временном ряду (в нашем случае $S(t)$ для прошлого года).<br>[[Файл:SeasonallyAdjustedTimeSeries.png|right|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 8.] Декомпозиция и наивная модель]]<br>На следующем графике показаны сезонные индексы ряда с учётом сезонности (рис. 7).
===Наивная===
Предсказания для каждого горизонта соотвествуют последнему наблюдаему значению
<code>Y(t + h|t) = Y(t)</code>.
[[Файл:NaiveElectricalEquipmentManufacturing.png|thumb|Рисунок 4. Наивная<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience.com]</ref> ]] Такие предскания предполагают, что стохастическая модель генерирует случайное блуждание(рис. 4).
Расширение Следующий график показывает расчёты для 2007 года с использованием декомпозиции и наивной модели (рис. 58) {{---}} SNAIVE {{---}} для сезонно-наивная модель предполагает, что временной ряд имеет сезонную компоненту, и что период сезонности Tизменяемого временного ряда. <br>Прогнозы SNAIVE - модели описываются формулой<code>Y*(t+h|t) = Y(t+h-T) </code>.
Получаемые прогнозы следующий T шагов совпадают с предыдущими T шагами===Экспоненциальное сглаживание ===<br>[[Файл:ExpSmoothing.png|thumb|left|[https://towardsdatascience. Эти модели часто используются как ориентировочные моделиcom/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 9. Следующий график показывает предсказания двух моделей ] Данные полученные для 2007 годас использованием модели экспоненциального сглаживания]]Экспоненциальное сглаживание<ref>[https://ru.wikipedia.org/wiki/Экспоненциальное_сглаживание Википедия: Экспоненциальное сглаживание]</ref> {{---}} один из наиболее успешных классических методов предсказаний. В своей базовой форме он называется простым экспоненциальный сглаживанием и его прогнозы описываются формулами:$Ŷ(t+h|t) = ⍺y(t) + ⍺(1-⍺)y(t-1) + ⍺(1-⍺)²y(t-2) + …$<br>где''''' $0<⍺<1$ '''''. Если $⍺ = 0$, то текущие наблюдения игнорируются, если же $⍺ = 1$, то полностью игнорируются предыдущие наблюдения.<br>[[Файл:ExpSmoothing+Decomposition.png|thumb|right|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 10.] Данные полученные для 2007 года, с использованием модели экспоненциального сглаживания и декомпозиции]]
[[Файл:SeasonalNaiveElectricalEquipmentManufacturingЗаметно, что прогнозы равны взвешенному среднему от старых наблюдений, и что соответствующие веса убывают экспоненциально по мере хода времени.png|thumb|middle|Рисунок 5. Сезонно наивная<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience.com]</ref>]]<br>
Модели были имплементированы с помощью встроенных функций naive Некоторые методы для расширения алгоритма позволяют добавить тренд, его затухание и snaive сезонность.Экспоненциальное сглаживание состоит из пакета forecast в R9 моделей, которые подробно описаны [https://otexts.com/fpp2/taxonomy.html здесь].
===Разделение по сезонам + любая модель===Если данные показывают, что они воспроиимчивы к периодическим-сезонным изменениямСледующие графики (ежедневнорис. 9, еженедельно10) описывают прогнозы данных полученные для 2007 года, ежеквартально, ежегоднос использованием модели экспоненциального сглаживания (выбраны автоматически), то будет полезным разложить исходный временной ряд на сумму трёх компонентовкоторые подходили исходному и сезонно-чувствительному временному ряду.<br>
<code>Y(t) = S(t) + T(t) + R(t)</code><br>S(t) {{---}} сезонный компонентT(t) {{---}} компонент трендового циклаR(t){{---}} остаток==ARIMA, SARIMA===
Существуют несколько способов для такого разложения, но наиболее простой называется классическим разложением [[Файл:SARIMA.png |thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 11.] SARIMA]]Также как и заключается в томэкспоненциальное сглаживание, чтобы<br>Оценить тренд T(t) через скользящее среднее<br>Посчитать Sинтегрированная модель авторегрессии скользящего среднего (t)англ. autoregressive integrated moving average, как среднее без тренда Y(t) - T(tARIMA) также часто используются для каждого сезона<br>Посчитать остаток, как <br> R(t) = Y(t) - T(t)-S(t) Классическое разложение можно расширить несколькими способамиРасширение позволяет использовать данный метод при: *непостоянной величине сезона *посчитать начальные и конечные значение декомпозиции *избежать лишнего сглаживанияпрогноза временных рядов.
Обзор методов разложений ряда можно увидеть по [https://otexts.com/fpp2/decomposition.html ссылке]. Мы воспользуемся реализацией из стандартной библиотеки(рис. 6), которая достаточно универсальна и надёжна.<br>
[[Файл:STL_docompositionOnIndustrialProductionIndexData.png|thumb|Рисунок 6. Методы разложения ряда<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience.com]</ref>]]<br>
Одним из способов использования декомпозиции для прогнозирования будет:
1)разложить обучающий набор алгоритмом из STL
2)посчитать сезонное отклонение ряда Y(t)-S(t), используя любую модель для прогнозирования сезоно-чувствительного временного ряда
3)Добавить прогнозам сезонность последнего временного периода во временном ряду(в нашем случае S(t) для прошлого года)
На следующем графике показаны сезонные индексы {{Определение |definition = '''Процесс авторегрессии''' {{---}} последовательная зависимость элементов временного ряда с учётом сезонности , выразается следующим уравнением:$x(t) = \psi + \phi_1 * x_(рисt-1) + \phi_2 * x_(t-2) + \phi_3 * x_(t-3) + ... 7+ \epsilon$<br>Где $\psi$ {{---}} свободный член (константа):.<br>[[Файл:SeasonallyAdjustedIndustrial$\phi_1, \phi_2, \phi_3, .png |thumb|Рисунок 7. Сезонные индексы ряда<ref>[https://towardsdatascience.com/an$ {{-overview-of-time-series}} параметры авторегрессии.}}{{Определение|definition ='''Скользящее среднее''' {{-forecasting-models-a2fa7a358fcb towardsdatascience}} общее название для семейства функций, значения которых в каждой точке определения равны некоторому среднему значению исходной функции за предыдущий период.com]</ref>]]<br>}}
Следующий график показывает предсказания полученные для 2007 года с использованием STL декомпозиции и наивной модели(рис. 8) для сезонно{{Определение|definition ='''Процесс скользящего среднего''' {{---изменяемого временного }} в процессе скользящего среднего каждый элемент рядаподвержен суммарному воздействию предыдущих ошибок. В общем виде это можно записать следующим образом:$x_t = \mu + \epsilon_t - \theta_1 * \epsilon_{t-1} - \theta_2 * \epsilon_{t-2} - ...$ <br>Где $\mu$ {{---}} константа.<br>$\theta_1, \theta_2, \theta_3, ...$ {{---}} параметры скользящего среднего.}} [[Файл:SeasonallyAdjustedTimeSeriesSARIMA_Decomposition.png|thumb|Рисунок 8. Декомпозиция и наивная модель<ref>right|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 12.com]</ref>SARIMA декомпозированная]]<br>Декомпозиция была исплементирована с помощью встроенной в стандартную либу функцииARIMA {{---}} комбинация этих двух подходов. Так как эти подходы требуются стационарности временного ряда, может понадобится продифференциировать/проинтегрировать ряд.То есть рассматировать ряд разностей, а не исходный ряд.
===Экспоненциальное сглаживание ===Экспоненциальное сглаживание {{---}} один из наиболее успешных классических методов предсказанийСезонная интегрированная модель авторегрессии скользящего среднего (англ. В своей базовой форме оно называется простым экспоненциальный сглаживанием season autoregressive integrated moving average, SARIMA) учитывает сезонность, добавляя линейную комбинацию прошлых сезонных значений и его прогнозы описываются формулами/или прошлых ошибок прогноза.Более подробную информацию про ARIMA, SARIMA читайте по [https:<code>Ŷ(t+h|t) = ⍺y(t) + ⍺(1-⍺)y(t-1) + ⍺(1-⍺)²y(t-2) + …</code>'''''with 0<⍺<1/otexts.com/fpp2/arima.html ссылке].'''''<br>
ЗаметимДанные графики показывают предсказания полученные для 2007 года, что прогнозы равны взвешенному среднему от старых наблюденийс использованием модели SARIMA (рис. 11, и что соответствующие веса убывают экспоненциально по мере хода времени12).
Некоторые методы для расширения алгоритма позволяют добавить тренд, его затухание и сезонность===Garch===<br>[[Файл:GARCH.Экспоненциальное сглаживание состоит из 9 моделей, которые подробно описаны здесь(ссылка)png |thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 13.] ARMA]]<br>
Следующие графики(рис. 9В предыдущих моделях считалось, 10) описывают прогнозы данные полученные для 2007 года с использованием модели экспоненциального сглаживания(выбраны автоматически), которые подходили исходному и сезонно-чувствительному временному рядучто слагаемое ошибки в стохастическом процессе генерации временного ряда имело одинаковую дисперсию.
[[Файл:ExpSmoothing.png|thumb|Рисунок 9. данные полученные для 2007 года с использованием В GARСH-модели экспоненциального сглаживания<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience(англ.com]</ref>]][[Файл:ExpSmoothing+DecompositionGeneralized AutoRegressive Conditional Heteroscedasticity, GARCH) предполагается, что слагаемое ошибки следует авторегрессионному скользящему среднему (англ.png|thumb|Рисунок 10AutoRegressive Moving Average, ARMA), соответственно слагаемое меняется по ходу времени. данные полученные для 2007 года с использованием модели экспоненциального сглаживания и декомпозиции<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceЭто особенно полезно при моделировании финансовых временных рядов, так как диапазон изменений тоже постоянно меняется (рис.com]</ref>]]Модели были имплементированы с помощью функции ets в forecast пакете R13).<br>
===ARIMAВ 1982 году была предложена ARCH {{---}} модель, SARIMA===Также как и экспоненциальное сглаживание, ARIMA также часто используются для прогноза временных рядов. Название является акронимом AutoRegressive Integrated Moving Average Саморегрессивное интегрированное скользящее среднееописываемая формулой: <br>
Саморегрессивность $\sigma^2(t) = \alpha + \sum_{i = 1}^{\alpha}b_ir^{2}_{t-1}$ <br>где $\alpha$ {{---}} линейная комбинация старых значений. коэффициент задержки<br>$\sigma^2(t)$ - волатильность<br>Скользящее среднее $\sum_{i = 1}^{\alpha}b_ir^{2}_{t-1}$ --}} линейная линенйная комбинация прошлых ошибокабсолютных значений нескольких последних изменений значений.
ARIMA Позднее была создана GARCH {{---}} комбинация этих двух подходовобобщённая ARCH модель, которая также учитывает предыдущие оценки дисперсии. Так как эти подходы требуют стационарности временного ряда, Формула может понадобится продифференциировать/проинтегрировать рядбыть записана так:$\sigma^2(t) = \alpha + \sum_{i = 1}^{\alpha}b_ir^{2}_{t-1} \sum_{i = 1}^{p}c_i\sigma^{2}_{t-1}$ <br>То есть рассматировать ряд разностейгде p {{---}} количество предшествующих оценок, а не исходный рядвлияющих на текущее значение.<br>с {{---}} весовые коэффициенты предыдущих оценок.
SARIMA учитывает сезонностьОбычно ARMA используется и для учёта среднего, добавляя линейную комбинацию прошлых сезонных значений более подробное введение в Garsh иразличные варианты можно найти [https://cran.r-project.org/web/packages/или прошлых ошибок прогнозаДля полного ввода в ARIMA, SARIMA читайте по ссылкеrugarch/vignettes/Introduction_to_the_rugarch_package.pdf здесь].<br><br>
Данные графики показывают предсказания полученные для 2007 года с использованием ===Динамические линейные модели SARIMA(рис. 11,12):<br>===[[Файл:SARIMADLM+Decomposition.png |right|thumb|Рисунок 11. SARIMA<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 14.com] DLM]]</refbr>]][[Файл:SARIMA_DecompositionДинамические линейные модели представляют другой класс моделей предсказания временных рядов (рис. 14).png|Рисунок 12Идея заключается в том, что в каждый момент времени $t$ эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется. SARIMA декомпозированная<refbr>[httpsПример динамической линейной модели ниже://towardsdatascience.com/an<br>$y(t) = ⍺(t) + tβ(t) + w(t)$,<br>$⍺(t) = ⍺(t-overview1) + m(t)$,<br>$β(t) = β(t-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience1) + r(t)$,<br>$w(t)$ ~ $N(0,W)$, $m(t)$ ~ $N(0,M)$, $r(t)$ ~ $N(0,R)$.com]</refbr>]]
Имплементация с помощью встроенной в R функции autoВ предыдущей модели коэффициенты $a(t)$ и $b(t)$ следуют случайному блужданию.arima.<br>
===Garch===В предыдущих моделях мы считалиДинамические линейные модели могут быть построены в рамках Байесовской системы. Тем не менее и этот метод можно улучшить, что слагаемое ошибки в стохастическом процессе генерации временного ряды имели одинаковую дисперсиюподробности [https://cran.r-project.org/web/packages/dlm/vignettes/dlm.pdf здесь].<br>
В GARSH-модели(рис. 13) мы преполагаем, что слагаемое ошибки следуют ARMA процессу(саморегрессирующее скользящее среднее), соответственно слагаемое меняется по ходу времени. Это особенно полезно при моделировании финансовых временных рядов, так как диапазон изменений тоже постоянно меняется.
Обычно ARMA используется и для учёта среднего, для подробного введения в Garsh модели смотри здесь:
[[Файл:GARCH.png |thumb|Рисунок 13. ARMA<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience.com]</ref>]]<br>
===Динамические линейные модели===
Динамические линейные модели представляют другой класс моделей предсказания временных рядов
Идея заключается в том, что каждый моменты времени t эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется. <br>Пример динамической линейной модели ниже:<br>
<code>y(t) = ⍺(t) + tβ(t) + w(t)</code><br>
<code>⍺(t) = ⍺(t-1) + m(t)</code><br>
<code>β(t) = β(t-1) + r(t)</code><br>
<code>w(t)~N(0,W) , m(t)~N(0,M) , r(t)~N(0,R)</code><br>
В предыдущей модели коэффициенты a(t) и b(t) следуют случайному блужданию.
Динамические линейные модели могут быть построены в рамках Байесовской системы. Тем не менее и этот метод можно улучшить, подробности читайте [https://cran.r-project.org/web/packages/dlm/vignettes/dlm.pdf тут].<br>
[[Файл:DLM+Decomposition.png]]<br>
Это <br>[[Файл:TBATS_Electrical.png |left|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 15.] DLM]]TBATS (англ. Trigonometric seasonality, Box-Cox transformation, ARMA errors, Trend and Seasonal components) {{---}} это модели, которые основаны на экспоненциальном сглаживании(рис. 15).<br> Главной особенностью TBATS является возможность взаимодействия с несколькими сезонностями. Моделируя каждую функцию сезонности отдельным тригонометрическим отображением построенным на [[L 2-теория рядов Фурье|рядах Фурье]]. <br><br>Классическим примером комплексной сезонности будет отображение ежедневных объемов продаж, которые которое имеет, как еженедельные колебания, так и ежегодные.<br>
[[Файл:Prophet.png]]
Модель NNETAR принимает Таким образом, мы можем итеративно моделировать будущий путь выборки. Повторно моделируя выборочные пути, мы накапливаем знания о распределении всех будущих значений на вход последние элементы последовательности до момента времени t и выводит прогнозируемое значение в момент времени t + 1. Для выполнения многоэтапных прогнозов сеть применяется итеративнооснове подобранной нейронной сети.
Модели <br>Блок [[:Долгая_краткосрочная_память|cети долго-краткосрочной памяти]] (англ. Long short-term memory, LSTM ) могут использоваться для прогнозирования временных рядов (а также других рекуррентных нейронных сетей). <br>LSTM {{---}} это аббревиатура от Long-Short Term Memories.<br>
Мы выполнили [[Файл:Evaluation.png |right|600px|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 19.] MAE с перекрестной проверкой для каждой модели]]Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Мы не рассчитывали Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.<br>На следующем рисунке мы показываем показана [[Оценка качества в задачах классификации и регрессии|средняя абсолютная ошибка]] (англ. Mean Absolute Error, MAE ) с перекрестной проверкой для каждой модели и для каждого временного горизонта(рис. 17): [[Файл:Evaluation.png]]
Мы видим, что для временных горизонтов больше 4 модель Модель NNETAR с по сезонно скорректированными данными работает лучшескорректированным данным была лучшей моделью для данной задачи, чем другие. Давайте проверим общую поскольку она соответствовала самому низкому значению MAE, вычисленную путем усреднения по разным временным горизонтампрошедшему перекрестную проверку.<br>Чтобы получить объективную оценку наилучшей производительности модели, вычислим MAE на тестовом наборе (рис. 18), получив оценку, равную 5,24. На следующем рисунке можно увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.<br>
Модель NNETAR по сезонно скорректированным данным была лучшей моделью для этого приложения, поскольку она соответствовала самому низкому значению MAE, прошедшему перекрестную проверку.<br>Чтобы получить объективную оценку наилучшей производительности модели, мы вычислили MAE на тестовом наборе, получив оценку, равную 5,24. На следующем рисунке мы можем увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.<br>[[Файл:Cross-validated MAE.png|left|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 20.] MAE, тестовый набор]]<br><br><br>=== Методы увеличения производительности===
===Как еще больше повысить производительность===Другие методы повышения производительности моделей:*Использование разных моделей для разных временных горизонтов,*Объединение нескольких прогнозов (например, с учетом среднего прогноза),*''Агрегация начальных данных''.<br><br>Последний метод у можно резюмировать следующим образом:*Разложите исходный временной ряд (например, используя STL)*Создайте набор похожих временных рядов путем случайного перемешивания фрагментов оставшейся компоненты.*Подбирайте модель для каждого временного ряда*Средние прогнозы каждой модели<br>
Целью этого проекта было не подобрать наилучшую возможную модель прогнозирования Большинство ранее описанных моделей позволяют легко включать изменяющиеся во времени предикторы. Они могут быть извлечены из одного и того же временного ряда или могут соответствовать внешним предикторам (например, временному ряду другого индекса промышленного производства, а дать обзор моделей прогнозирования). В реальном приложении много времени следует тратить последнем случае необходимо обратить внимание на предварительную обработкуто, разработку функций и выбор функцийчтобы не использовать информацию из будущего, которая могла бы быть удовлетворена путем прогнозирования предикторов или использования версий c ошибками.<br><br>
Большинство ранее описанных моделей позволяют легко включать изменяющиеся во времени предикторыОбратите внимание, что в данном конспекте рассматривается случай, когда у нас есть один временной ряд для прогнозирования. Они могут Когда у нас много временных рядов, может быть извлечены из одного предпочтительнее глобальный подход, поскольку он позволяет нам оценивать более сложную и того же временного ряда или могут соответствовать внешним предикторам (например, временному ряду другого индекса)потенциально более точную модель. Подробнее о глобальном подходе [https://arxiv.org/abs/1704. В последнем случае мы должны обратить внимание на то, чтобы не использовать информацию из будущего, которая могла бы быть удовлетворена путем прогнозирования предикторов или использования их лаговых версий04110 здесь].<br>
Наконец, обратите внимание, что в этой статье мы рассмотрели только случай, когда у нас есть один временной ряд для прогнозирования. Когда у нас много временных рядов, может быть предпочтительнее глобальный подход, поскольку он позволяет нам оценивать более сложную и потенциально более точную модель. Чтобы ознакомиться с глобальным подходом, щелкните здесь.
rollbackEdits.php mass rollback
Временные ряды {{---}} это актуальный инструмент применимые , применимый во множестве решений, от предсказания цен на акции, прогнозов погоды, планирования бизнеса, до распределения ресурсов. Несмотря на то, что прогнозирование может быть сведено к построению контролируемой [[Вариации регрессии|регрессии]], существуют особенносстиособенности, связанные с временным характером наблюдений, которые необходимо учитывать, используя специальные инструменты.<br>
==Временной ряд==
Если необходимо предсказать следующие $n$ шагов, то можно заранее кросс-валидировать $1,2,...,n$.<br> Таким образом можно также сравнить качество предсказаний для разных временных горизонтов.<br><br> Определив лучшую модель, мы можем можно применить её ко всему обучающему набору и оценить его работу на следующем во времени наборе данных. Оценка работы может быть дана с использованием метода скользящего окна<ref>[https://wiki.loginom.ru/articles/windowing-method.html loginom: Метод скользящего окна]</ref>, который мы использовали используем при кросс-валидации, но без переподсчёта параметром параметра модели.
==Краткое исследование данных==
[[Файл:ManufactureOfElectricalEquipment.png|thumb|leftright|400px300px|Рисунок 2. Набор данных описывающий график производства электрооборудования<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience.com]</ref>]]<br>[[Файл:SeasonalPlotMonthluSeasonalPattern.png|thumb|left|300px|Рисунок 32. Сезонные колебания<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascience.com]</ref>Набор данных описывающий график производства электрооборудования]]В следующей части мы попробуем использовать несколько разных моделей для предсказания изменений в промышленного производства, которое будем оценивать численно, как количество электро оборудования, произведённого в зоне Евро.<br>
===Наивное предсказание===
[[Файл:NaiveElectricalEquipmentManufacturing.png|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 4.] Наивная]]<br>
Предсказания для каждого горизонта соотвествуют последнему наблюдаемому значению
$Y(t + h|t) = Y(t)$.
Прогнозы SNAIVE-модели описываются формулой $\dot{Y}(t+h|t) = Y(t+h-T)$.
Получаемые прогнозы следующие $T$ шагов совпадают с предыдущими $T$ шагами.
Эти модели часто используются как ориентировочные модели. Следующий графики показывают предсказания двух моделей для 2007 года (рис. 4, 5).<br><br>
$Y(t) ==Модели прогнозирования временных рядов==S(t) + T(t) + R(t)$<br>$S(t)$ {{---}} сезонный компонент.<br>#Наивный$T(t)$ {{---}} компонент трендового цикла.<br>#Разделение по сезонам $R(+ любая модельt)$ {{---}} остаток.<br>#Экспоненциальное сглаживаниеСуществуют несколько способов для такого разложения, но наиболее простой называется классическим разложением и заключается в том, чтобы оценить тренд $T(t)$ через скользящее среднее, посчитать $S(t)$, как среднее без тренда $Y(t) - T(t)$ для каждого сезона.<br>#ARIMAПосчитать остаток, SARIMAкак $R(t) = Y(t) - T(t)-S(t)$.<br>#GARCH[[Файл:SeasonallyAdjustedIndustrial.png |thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 7.] Сезонные индексы ряда]]#Динамические линейные моделиКлассическое разложение можно расширить несколькими способами.<br>#TBATSРасширение позволяет использовать данный метод при:#Prophet* непостоянной величине сезона;#NNETAR* посчитать начальные и конечные значения декомпозиции;#LSTM* избежать лишнего сглаживания;
<br>
===TBATS===
Больше информации можно прочиать [https://robjhyndman.com/papers/ComplexSeasonality.pdf тут].<br>[[Файл:DLM+Decomposition.png]]<br><br>
===Prophet===
<br>Ещё одна модель, способная взаимодействовать с несколькими сезонностями(рис. 16). Это ПО с открытым исходным кодом от Фейсбука([https://facebook.github.io/prophet/ ссылка]).<br>[[Файл:Prophet.png |right|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 16.] Prophet]] Prophet считает, что временной ряд может быть расложен разложен следующим образом:<br><code>$y(t) = g(t) + s(t) + h(t) + ε(t)</code>$,<br>$g(t) $ {{---}} тренд,<br>$s(t) $ {{---}} сезонность,<br>$h(t) $ {{---}} каникулы, т.е аномальные данные,<br>$ε(t) $ {{---}} ошибки.<br>
Подгонка модели представляет собой упражнение по подгонке кривой, поэтому она явно не учитывает структуру временной зависимости в данных. Это также позволяет проводить наблюдения с нерегулярным интервалом.<br>
Есть два варианта временных рядов тренда: модель насыщающего роста и кусочно-линейная модель. Модель многопериодной сезонности основана на рядах Фурье<ref>[[Определение ряда Фурье]]</ref>. Эффект известных и заказных выходных дней может быть легко включен в модель.<br>Модель пророка Prophet вставлена в байесовскую структуру и позволяет сделать полный апостериорный вывод, чтобы включить неопределенность параметров модели в неопределенность прогноза.<br>
===NNETAR===
<br>[[Файл:NNETARElectriacalequipmntManufacturing.png |left|300px|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 17.] NNETAR]]Модель авторегрессии нейронной сети (англ. Neural NETwork AutoRegression, NNETAR ) представляет собой полностью связанную полносвязную [https://neerc.ifmo.ru/wiki/index.php?title=Нейронные_сети,_перцептрон нейронную сеть]. Модель NNETAR принимает на вход последние элементы последовательности до момента времени $t$ и выводит прогнозируемое значение в момент времени $t + 1$. Для выполнения многоэтапных прогнозов сеть применяется итеративно. Модель можно описать уравнением$y_t = f(y_{t-1}) + \epsilon_t$ <br>где $y_{t-1} = (y_{t-1}, y_{t-2}, ...)'$ {{---}} вектор, содержащий запаздывающие значения, <br>f {{---}} нейронная сеть, с 4 скрытыми узлами в каждом слое, <br>$\epsilon_t$ {{---}} считаем, что ряд ошибок [https://ru.wikipedia.org/wiki/Гомоскедастичность гомокседастичен] (и возможно имеет нормальное распределение).<br>[[Файл:NNETARElectriacalequipmntManufacturingDecomposition.png |right|300px|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 18.] NNETAR c декомпозицией]] Мы можем моделировать будущие выборочные пути этой модели итеративно, случайным образом генерируя значение для $\epsilon_t$ либо из нормального распределения, либо путем повторной выборки из исторических значений. Аббревиатура расшифровывается как Neural NETwork AutoRegression<br> Так что если$\epsilon^*_{T+1}${{---}} случайная выборка из распределения ошибок в момент времени $T+1$,<br> тогда $y^*_{T+1} = f(y_T) + \epsilon^*_{T+1}$ {{---}} один из возможных вариантов распределения прогнозов для $y_{T+1}$ <br>Установив $y^*_{T+1} = (y^*_{T+1}, y_{T})'$, мы можем повторить процесс, чтобы получить $y^*_{T+2} = f(y_{T+1}) + \epsilon_{T+2}$.<br>
===LSTM===
Состояние сети LSTM представлено через вектор пространства состояний. Этот метод позволяет отслеживать зависимости новых наблюдений от прошлых (даже очень далеких).<br>
Вообще говоря, LSTM представляют собой сложные модели, и они редко используются для прогнозирования одного временного ряда, поскольку для их оценки требуется большой объем данных.<br>Однако они обычно используются, когда необходимы прогнозы для большого количества временных рядов(проверьте как показано [https://arxiv.org/abs/1704.04110 здесь]).
==Оценка==
==Заключительные замечания==
==См. Также==
* [[Кластеризация]]
* [[Рекомендательные системы]]
* [[Анализ социальных сетей]]
* [[Графовые нейронные сети]]
* [[Компьютерное зрение]]
== Примечания ==
<references/>
==Источники Информации==
* Филатов, А[http://www. Вmachinelearning. Заметки профайлера ru/ Аwiki/index. Вphp?title=Временной_ряд machinelearning. Филатовru]*[https://ru.wikipedia. -Москваorg/wiki/Временной_ряд Википедия: Временной ряд]*[http: Издательские решения, 2019//statsoft. -522ru/home/textbook/modules/sttimser.html StatSoft: Анализ временных рядов]* http[https://wwwchaos.phys.machinelearningmsu.ru/loskutov/PDF/Lectures_time_series_analysis.pdf Лоскутов А.Ю. физ. фак. МГУ: Анализ Временных Рядов]*[https://wiki/index.php?title=Временной_ряд machinelearningloginom.ru/articles/garch-model.html loginom: Garch-модель]*[https://otexts.com/fpp2/nnetar.html Otexts: NNETAR]
[[Категория: Машинное обучение]]
[[Категория: Анализ временных рядов]]