Изменения

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

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

326 байт убрано, 18:59, 20 января 2021
Garch
Также как и экспоненциальное сглаживание, интегрированная модель авторегрессии скользящего среднего (англ. autoregressive integrated moving average, ARIMA) также часто используются для прогноза временных рядов.
{{Определение|definition ='''Авторегрессионная модель''' {{---}} модель временных рядов, в которой значения временного ряда в данный момент линейно зависят от предыдущих значений этого же ряда.}}
{{Определение
|definition =
В предыдущих моделях считалось, что слагаемое ошибки в стохастическом процессе генерации временного ряда имело одинаковую дисперсию.
В GARСH-модели (англ. Generalized 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$ {{---}} коэффициент задержки. ARCH модель моделирует <br>$\sigma^2(t)$ - волатильность в виде суммы базовой волатильности и линейной функции <br>$\sum_{i = 1}^{\alpha}b_ir^{2}_{t-1}$ - линенйная комбинация абсолютных значений нескольких последних изменений значений.
Позднее была создана GARCH {{---}} обобщённая ARCH модель, которая также учитывает предыдущие оценки дисперсии. Формула может быть записана так:
[[Файл: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$. Для выполнения многоэтапных прогнозов сеть применяется итеративно.[[Файл:NNETARElectriacalequipmntManufacturingDecomposition.png |left|300px|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 18.] NNETAR c декомпозицией]]
Модель можно описать уравнением
$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_epsilon^*_{T+1}*${{---}} случайная выборка из распределения ошибок в момент времени $T+1$,<br> тогда $y_y^*_{T+1}* = f(y_T) + \epsilon_epsilon^*_{T+1}*$ {{---}} один из возможных вариантов распределения прогнозов для $y_{T+1}$ <br>Установив $y_y^*_{T+1}* = (y_y^*_{T+1}*, y_{T})'$, мы можем повторить процесс, чтобы получить $y_y^*_{T+2}* = f(y_{T+1}) + \epsilon_{T+2}$. <br>
Таким образом, мы можем итеративно моделировать будущий путь выборки. Повторно моделируя выборочные пути, мы накапливаем знания о распределении всех будущих значений на основе подобранной нейронной сети.<br><br>
===LSTM===
Блок [[:Долгая_краткосрочная_память|cети долго-краткосрочной памяти]] (англ. Long short-term memory, LSTM) могут использоваться для прогнозирования временных рядов (а также других рекуррентных нейронных сетей). <br>
Состояние сети LSTM представлено через вектор пространства состояний. Этот метод позволяет отслеживать зависимости новых наблюдений от прошлых (даже очень далеких).<br>
Вообще говоря, LSTM представляют собой сложные модели, и они редко используются для прогнозирования одного временного ряда, поскольку для их оценки требуется большой объем данных.<br>Однако они обычно используются, когда необходимы прогнозы для большого количества временных рядов (как показано [https://arxiv.org/abs/1704.04110 здесь]).<br><br><br><br><br><br>
==Оценка==
[[Файл:Evaluation.png |right|600px|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 19.] MAE с перекрестной проверкой для каждой модели]]
Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.<br>
На следующем рисунке показана [[Оценка качества в задачах классификации и регрессии|sсредняя средняя абсолютная ошибка]] (англ. Mean Absolute Error, MAE) с перекрестной проверкой для каждой модели и для каждого временного горизонта (рис. 17):
Модель NNETAR по сезонно скорректированным данным была лучшей моделью для данной задачи, поскольку она соответствовала самому низкому значению MAE, прошедшему перекрестную проверку.<br>
==Источники Информации==
* Филатов, А. В. Заметки профайлера / А. В. Филатов. -Москва: Издательские решения, 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]
[[Категория: Машинное обучение]]
[[Категория: Анализ временных рядов]]
53
правки

Навигация