Изменения

Перейти к: навигация, поиск

Анализ временных рядов

2992 байта добавлено, 19:11, 4 сентября 2022
м
rollbackEdits.php mass rollback
$Ŷ(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 года , с использованием модели экспоненциального сглаживания и декомпозиции]]
Заметно, что прогнозы равны взвешенному среднему от старых наблюдений, и что соответствующие веса убывают экспоненциально по мере хода времени.
Экспоненциальное сглаживание состоит из 9 моделей, которые подробно описаны [https://otexts.com/fpp2/taxonomy.html здесь].
Следующие графики (рис. 9, 10) описывают прогнозы данных полученные для 2007 года , с использованием модели экспоненциального сглаживания (выбраны автоматически), которые подходили исходному и сезонно-чувствительному временному ряду.<br>
===ARIMA, SARIMA===
Также как и экспоненциальное сглаживание, интегрированная модель авторегрессии скользящего среднего (англ. autoregressive integrated moving average, ARIMA) также часто используются для прогноза временных рядов.
{{Определение|definition ='''Авторегрессивность''' {{---}} линейная комбинация старых значений.}}
{{Определение
|definition =
'''Процесс авторегрессии''' {{---}} последовательная зависимость элементов временного ряда, выразается следующим уравнением:
$x(t) = \psi + \phi_1 * x_(t-1) + \phi_2 * x_(t-2) + \phi_3 * x_(t-3) + ... + \epsilon$<br>
Где $\psi$ {{- --}} свободный член(константа).<br>$\phi_1, \phi_2, \phi_3, ...$ {{-- -}} параметры авторегрессии.
}}
{{Определение
'''Процесс скользящего среднего''' {{---}} в процессе скользящего среднего каждый элемент ряда подвержен суммарному воздействию предыдущих ошибок. В общем виде это можно записать следующим образом:
$x_t = \mu + \epsilon_t - \theta_1 * \epsilon_{t-1} - \theta_2 * \epsilon_{t-2} - ...$ <br>
Где $\mu$ {{- --}} константа.<br>$\theta_1, \theta_2, \theta_3, ...$ {{-- -}} параметры скользящего среднего.
}}
[[Файл:SARIMA_Decomposition.png|thumb|right|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 12.] SARIMA декомпозированная]]
Сезонная интегрированная модель авторегрессии скользящего среднего (англ. season autoregressive integrated moving average, SARIMA) учитывает сезонность, добавляя линейную комбинацию прошлых сезонных значений и/или прошлых ошибок прогноза.
Для полного ввода в Более подробную информацию про ARIMA, SARIMA читайте по [https://otexts.com/fpp2/arima.html ссылке].
Данные графики показывают предсказания полученные для 2007 года , с использованием модели SARIMA (рис. 11,12).
===Garch===
В предыдущих моделях считалось, что слагаемое ошибки в стохастическом процессе генерации временного ряда имело одинаковую дисперсию.
В GARСH-модели (рисангл. 13Generalized AutoRegressive Conditional Heteroscedasticity, GARCH) предполагается, что слагаемое ошибки следуют следует авторегрессионному скользящему среднему (англ. AutoRegressive Moving Average, ARMA), соответственно слагаемое меняется по ходу времени. Это особенно полезно при моделировании финансовых временных рядов, так как диапазон изменений тоже постоянно меняется(рис. 13).
В 1982 году была предложена ARCH {{---}} модель, описываемая формулой: <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}$ - линенйная комбинация абсолютных значений нескольких последних изменений значений. Позднее была создана 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>с {{---}} весовые коэффициенты предыдущих оценок. Обычно ARMA используется и для учёта среднего, более подробное введение в Garsh и различные варианты можно найти [https://cran.r-project.org/web/packages/rugarch/vignettes/Introduction_to_the_rugarch_package.pdf здесь].<br><br><br>
===Динамические линейные модели===
[[Файл:DLM+Decomposition.png|right|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 14.] DLM]]<br>
Динамические линейные модели представляют другой класс моделей предсказания временных рядов(рис. 14).
Идея заключается в том, что в каждый момент времени $t$ эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется. <br>Пример динамической линейной модели ниже:<br>
$y(t) = ⍺(t) + tβ(t) + w(t)$,<br>$⍺(t) = ⍺(t-1) + m(t)$,<br>$β(t) = β(t-1) + r(t)$,<br>$w(t)$ ~ $N(0,W)$, $m(t)$ ~ $N(0,M)$, $r(t)$ ~ $N(0,R)$.<br>
В предыдущей модели коэффициенты $a(t)$ и $b(t)$ следуют случайному блужданию.
<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>
Больше информации можно прочиать [https://robjhyndman.com/papers/ComplexSeasonality.pdf тут].<br><br><br><br>
===Prophet===
<br>
Ещё одна модель, способная взаимодействовать с несколькими сезонностями(рис. 16). Это ПО с открытым исходным кодом от Фейсбука (рис[https://facebook.github. 16io/prophet/ ссылка]).<br>
[[Файл:Prophet.png |right|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 16.] Prophet]]
Prophet считает, что временной ряд может быть расложен разложен следующим образом:<br>$y(t) = g(t) + s(t) + h(t) + ε(t)$,<br>$g(t)$ {{---}} тренд.,<br>$s(t)$ {{---}} сезонность.,<br>$h(t)$ {{---}} каникулы, т.е аномальные данные,<br>
$ε(t)$ {{---}} ошибки.<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$ либо из нормального распределения, либо путем повторной выборки из исторических значений.<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>
Модель NNETAR принимает Таким образом, мы можем итеративно моделировать будущий путь выборки. Повторно моделируя выборочные пути, мы накапливаем знания о распределении всех будущих значений на вход последние элементы последовательности до момента времени $t$ и выводит прогнозируемое значение в момент времени $t + 1$. Для выполнения многоэтапных прогнозов сеть применяется итеративнооснове подобранной нейронной сети.
===LSTM===
<br>
Модели Блок [[:Долгая_краткосрочная_память|cети долго-краткосрочной памяти]] (англ. Long short-term memory, LSTM) могут использоваться для прогнозирования временных рядов (а также других рекуррентных нейронных сетей). <br>
Состояние сети LSTM представлено через вектор пространства состояний. Этот метод позволяет отслеживать зависимости новых наблюдений от прошлых (даже очень далеких).<br>
Вообще говоря, LSTM представляют собой сложные модели, и они редко используются для прогнозирования одного временного ряда, поскольку для их оценки требуется большой объем данных.<br>Однако они обычно используются, когда необходимы прогнозы для большого количества временных рядов (как показано [https://arxiv.org/abs/1704.04110 как показано здесь]).
==Оценка==
[[Файл:Evaluation.png |right|600px|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 1719.] MAE с перекрестной проверкой для каждой модели]]
Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.<br>
На следующем рисунке показана [[Оценка качества в задачах классификации и регрессии|средняя абсолютная ошибка]] (англ. Mean Absolute Error, MAE) с перекрестной проверкой для каждой модели и для каждого временного горизонта (рис. 17):
Модель NNETAR по сезонно скорректированным данным была лучшей моделью для данной задачи, поскольку она соответствовала самому низкому значению MAE, прошедшему перекрестную проверку.<br>
Чтобы получить объективную оценку наилучшей производительности модели, вычислим MAE на тестовом наборе (рис. 18), получив оценку, равную 5,24. На следующем рисунке можно увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.<br>
[[Файл:Cross-validated MAE.png |left|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 1820.] MAE, тестовый набор]]<br><br><br>=== Методы увеличения производительности=== *Использование разных моделей для разных временных горизонтов,*Объединение нескольких прогнозов (например, с учетом среднего прогноза),*Агрегация начальных данных.
<br><br><br>
===Как еще больше повысить производительность===
Другие методы повышения производительности моделей:
*Использование разных моделей для разных временных горизонтов;
*Объединение нескольких прогнозов (например, с учетом среднего прогноза);
*'''Агрегация начальных данных;'''
<br><br>
Последний метод можно резюмировать следующим образом:
*Разложение исходного временного ряда;
*Создание набора похожих временных рядов путем случайного перемешивания фрагментов оставшейся компоненты;
*Подбор модели для каждого временного ряда;
*Вывод средних прогнозов каждой модели;
==Заключительные замечания==
Большинство ранее описанных моделей позволяют легко включать изменяющиеся во времени предикторы. Они могут быть извлечены из одного и того же временного ряда или могут соответствовать внешним предикторам (например, временному ряду другого индекса). В последнем случае необходимо обратить внимание на то, чтобы не использовать информацию из будущего, которая могла бы быть удовлетворена путем прогнозирования предикторов или использования версий c ошибками.<br>
Обратите внимание, что в данном конспекте рассматривается случай, когда у нас есть один временной ряд для прогнозирования. Когда у нас много временных рядов, может быть предпочтительнее глобальный подход, поскольку он позволяет нам оценивать более сложную и потенциально более точную модель. Чтобы ознакомиться с глобальным подходом, щелкните Подробнее о глобальном подходе [https://arxiv.org/abs/1704.04110 здесь].
==См. Также==
==Источники Информации==
* Филатов, А. В. Заметки профайлера / А. В. Филатов. -Москва: Издательские решения, 2019. -522.* [http://www.machinelearning.ru/wiki/index.php?title=Временной_ряд machinelearning.ru]
*[https://ru.wikipedia.org/wiki/Временной_ряд Википедия: Временной ряд]
*[http://statsoft.ru/home/textbook/modules/sttimser.html StatSoft: Анализ временных рядов]
*[https://chaos.phys.msu.ru/loskutov/PDF/Lectures_time_series_analysis.pdf Лоскутов А.Ю. физ. фак. МГУ: Анализ Временных Рядов]
*[https://wiki.loginom.ru/articles/garch-model.html loginom: Garch-модель]
*[https://otexts.com/fpp2/nnetar.html Otexts: NNETAR]
[[Категория: Машинное обучение]]
[[Категория: Анализ временных рядов]]
1632
правки

Навигация