Анализ временных рядов — различия между версиями
(→Модели прогнозирования временных рядов) |
|||
Строка 10: | Строка 10: | ||
==Валидирование и тестирование модели временного ряда== | ==Валидирование и тестирование модели временного ряда== | ||
Из-за зависимости данных временных рядов, нельзя пользоваться обычными способами валидации. Чтобы избежать смещения оценки необходимо удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.<br> | Из-за зависимости данных временных рядов, нельзя пользоваться обычными способами валидации. Чтобы избежать смещения оценки необходимо удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.<br> | ||
− | [[Файл:TimeSeriesCross-validation.png |thumb|left|400px| | + | [[Файл:TimeSeriesCross-validation.png |thumb|left|400px|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 1. кросс-валидация временного ряда]]]<br> |
Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано [https://robjhyndman.com/hyndsight/tscv/ здесь]. Эта процедура называется [[Кросс-валидация|кросс-валидацией]] временного ряда и может быть вкратце описана следующей картинкой (рис. 1), в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.<br> | Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано [https://robjhyndman.com/hyndsight/tscv/ здесь]. Эта процедура называется [[Кросс-валидация|кросс-валидацией]] временного ряда и может быть вкратце описана следующей картинкой (рис. 1), в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.<br> | ||
Строка 19: | Строка 19: | ||
==Краткое исследование данных== | ==Краткое исследование данных== | ||
− | [[Файл:ManufactureOfElectricalEquipment.png|thumb|right|300px| | + | [[Файл:ManufactureOfElectricalEquipment.png|thumb|right|300px|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 2. Набор данных описывающий график производства электрооборудования]]]<br> |
В данной части используется несколько разных моделей для предсказания изменений в промышленном производстве,<br> которое для примера будем оценивать численно, как количество электрооборудования, произведённого в зоне Евро (рис. 2, 3).<br> | В данной части используется несколько разных моделей для предсказания изменений в промышленном производстве,<br> которое для примера будем оценивать численно, как количество электрооборудования, произведённого в зоне Евро (рис. 2, 3).<br> | ||
− | [[Файл:SeasonalPlotMonthluSeasonalPattern.png|thumb|right|300px| | + | [[Файл:SeasonalPlotMonthluSeasonalPattern.png|thumb|right|300px|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 3. Сезонные колебания]]] |
Набор данных описывает ежемесячное производство электрооборудования (компьютеры электрические и оптические приборы) в зоне евро(17 стран) в период с января 1996 по март 2012 года (см. график ниже). Последние два года будем использовать при тестировании.<br><br><br><br><br> | Набор данных описывает ежемесячное производство электрооборудования (компьютеры электрические и оптические приборы) в зоне евро(17 стран) в период с января 1996 по март 2012 года (см. график ниже). Последние два года будем использовать при тестировании.<br><br><br><br><br> | ||
Строка 31: | Строка 31: | ||
===Наивная=== | ===Наивная=== | ||
− | [[Файл:NaiveElectricalEquipmentManufacturing.png|thumb| | + | [[Файл:NaiveElectricalEquipmentManufacturing.png|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 4. Наивная]]]<br> |
Предсказания для каждого горизонта соотвествуют последнему наблюдаему значению | Предсказания для каждого горизонта соотвествуют последнему наблюдаему значению | ||
Строка 37: | Строка 37: | ||
Такие предскания предполагают, что стохастическая<ref>[https://ru.wikipedia.org/wiki/Стохастичность Википедия: Стохастичность]</ref> модель генерирует случайное блуждание.<br> | Такие предскания предполагают, что стохастическая<ref>[https://ru.wikipedia.org/wiki/Стохастичность Википедия: Стохастичность]</ref> модель генерирует случайное блуждание.<br> | ||
− | [[Файл:SeasonalNaiveElectricalEquipmentManufacturing.png|thumb|left| | + | [[Файл:SeasonalNaiveElectricalEquipmentManufacturing.png|thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 5. Сезонно наивная]]]<br> |
Расширение наивной модели SNAIVE {{---}} сезонно-наивная модель предполагает, что временной ряд имеет сезонную компоненту, и что период сезонности T.<br> | Расширение наивной модели SNAIVE {{---}} сезонно-наивная модель предполагает, что временной ряд имеет сезонную компоненту, и что период сезонности T.<br> | ||
Строка 47: | Строка 47: | ||
===Разделение по сезонам + любая модель=== | ===Разделение по сезонам + любая модель=== | ||
− | [[Файл:STL_docompositionOnIndustrialProductionIndexData.png|thumb| | + | [[Файл:STL_docompositionOnIndustrialProductionIndexData.png|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 6. Методы разложения ряда]]]<br> |
Если данные показывают, что они воспроиимчивы к периодическим-сезонным изменениям(ежедневно, еженедельно, ежеквартально, ежегодно), то будет полезным разложить исходный временной ряд на сумму трёх компонентов.<br> | Если данные показывают, что они воспроиимчивы к периодическим-сезонным изменениям(ежедневно, еженедельно, ежеквартально, ежегодно), то будет полезным разложить исходный временной ряд на сумму трёх компонентов.<br> | ||
Строка 60: | Строка 60: | ||
Посчитать остаток, как <br> | Посчитать остаток, как <br> | ||
R(t) = Y(t) - T(t)-S(t)<br> | R(t) = Y(t) - T(t)-S(t)<br> | ||
− | [[Файл:SeasonallyAdjustedIndustrial.png |thumb|left| | + | [[Файл:SeasonallyAdjustedIndustrial.png |thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 7. Сезонные индексы ряда]]] |
Классическое разложение можно расширить несколькими способами.<br> | Классическое разложение можно расширить несколькими способами.<br> | ||
Расширение позволяет использовать данный метод при: | Расширение позволяет использовать данный метод при: | ||
Строка 73: | Строка 73: | ||
2)посчитать сезонное отклонение ряда Y(t)-S(t), используя любую модель для прогнозирования сезоно-чувствительного временного ряда.<br> | 2)посчитать сезонное отклонение ряда Y(t)-S(t), используя любую модель для прогнозирования сезоно-чувствительного временного ряда.<br> | ||
3)Добавить прогнозам сезонность последнего временного периода во временном ряду(в нашем случае S(t) для прошлого года).<br> | 3)Добавить прогнозам сезонность последнего временного периода во временном ряду(в нашем случае S(t) для прошлого года).<br> | ||
− | [[Файл:SeasonallyAdjustedTimeSeries.png|right|thumb| | + | [[Файл:SeasonallyAdjustedTimeSeries.png|right|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 8. Декомпозиция и наивная модель]]]<br> |
На следующем графике показаны сезонные индексы ряда с учётом сезонности (рис. 7):<br> | На следующем графике показаны сезонные индексы ряда с учётом сезонности (рис. 7):<br> | ||
Строка 82: | Строка 82: | ||
===Экспоненциальное сглаживание === | ===Экспоненциальное сглаживание === | ||
− | [[Файл:ExpSmoothing.png|thumb|left| | + | [[Файл:ExpSmoothing.png|thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 9. данные полученные для 2007 года с использованием модели экспоненциального сглаживания]]] |
Экспоненциальное сглаживание<ref>[https://ru.wikipedia.org/wiki/Экспоненциальное_сглаживание Википедия: Экспоненциальное сглаживание]</ref> {{---}} один из наиболее успешных классических методов предсказаний. В своей базовой форме оно называется простым экспоненциальный сглаживанием и его прогнозы описываются формулами: | Экспоненциальное сглаживание<ref>[https://ru.wikipedia.org/wiki/Экспоненциальное_сглаживание Википедия: Экспоненциальное сглаживание]</ref> {{---}} один из наиболее успешных классических методов предсказаний. В своей базовой форме оно называется простым экспоненциальный сглаживанием и его прогнозы описываются формулами: | ||
<code>Ŷ(t+h|t) = ⍺y(t) + ⍺(1-⍺)y(t-1) + ⍺(1-⍺)²y(t-2) + …</code> | <code>Ŷ(t+h|t) = ⍺y(t) + ⍺(1-⍺)y(t-1) + ⍺(1-⍺)²y(t-2) + …</code> | ||
'''''with 0<⍺<1.'''''<br> | '''''with 0<⍺<1.'''''<br> | ||
− | [[Файл:ExpSmoothing+Decomposition.png|thumb|right| | + | [[Файл:ExpSmoothing+Decomposition.png|thumb|right|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 10. данные полученные для 2007 года с использованием модели экспоненциального сглаживания и декомпозиции]]] |
Заметно, что прогнозы равны взвешенному среднему от старых наблюдений, и что соответствующие веса убывают экспоненциально по мере хода времени. | Заметно, что прогнозы равны взвешенному среднему от старых наблюдений, и что соответствующие веса убывают экспоненциально по мере хода времени. | ||
Строка 96: | Строка 96: | ||
===ARIMA, SARIMA=== | ===ARIMA, SARIMA=== | ||
− | [[Файл:SARIMA.png |thumb|left| | + | [[Файл:SARIMA.png |thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 11. SARIMA]]] |
Также как и экспоненциальное сглаживание, ARIMA также часто используются для прогноза временных рядов. Название является акронимом AutoRegressive Integrated Moving Average Саморегрессивное интегрированное скользящее среднее | Также как и экспоненциальное сглаживание, ARIMA также часто используются для прогноза временных рядов. Название является акронимом AutoRegressive Integrated Moving Average Саморегрессивное интегрированное скользящее среднее | ||
Строка 102: | Строка 102: | ||
Скользящее среднее {{---}} линейная комбинация прошлых ошибок. | Скользящее среднее {{---}} линейная комбинация прошлых ошибок. | ||
− | [[Файл:SARIMA_Decomposition.png|thumb|right| | + | [[Файл:SARIMA_Decomposition.png|thumb|right|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 12. SARIMA декомпозированная]]] |
ARIMA {{---}} комбинация этих двух подходов. Так как эти подходы требуют стационарности временного ряда, может понадобится продифференциировать/проинтегрировать ряд | ARIMA {{---}} комбинация этих двух подходов. Так как эти подходы требуют стационарности временного ряда, может понадобится продифференциировать/проинтегрировать ряд | ||
То есть рассматировать ряд разностей, а не исходный ряд | То есть рассматировать ряд разностей, а не исходный ряд | ||
Строка 112: | Строка 112: | ||
===Garch=== | ===Garch=== | ||
− | [[Файл:GARCH.png |thumb|left| | + | [[Файл:GARCH.png |thumb|left|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 13. ARMA]]]<br> |
В предыдущих моделях считалось, что слагаемое ошибки в стохастическом процессе генерации временного ряды имели одинаковую дисперсию. | В предыдущих моделях считалось, что слагаемое ошибки в стохастическом процессе генерации временного ряды имели одинаковую дисперсию. | ||
Строка 121: | Строка 121: | ||
===Динамические линейные модели=== | ===Динамические линейные модели=== | ||
− | [[Файл:DLM+Decomposition.png|right|thumb| | + | [[Файл:DLM+Decomposition.png|right|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 14. DLM]]]<br> |
Динамические линейные модели представляют другой класс моделей предсказания временных рядов(рис. 14). | Динамические линейные модели представляют другой класс моделей предсказания временных рядов(рис. 14). | ||
Идея заключается в том, что в каждый момент времени t эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется. <br>Пример динамической линейной модели ниже:<br> | Идея заключается в том, что в каждый момент времени t эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется. <br>Пример динамической линейной модели ниже:<br> | ||
Строка 134: | Строка 134: | ||
===TBATS=== | ===TBATS=== | ||
− | [[Файл:TBATS_Electrical.png |left|thumb| | + | [[Файл:TBATS_Electrical.png |left|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 15. DLM]]] |
TBATS {{---}} это модели, которые основаны на экспоненциальном сглаживании(рис. 15).<br> Главной особенностью TBATS является возможность взаимодействия с несколькими сезонностями. Моделируя каждую функцию сезонности отдельным тригонометрическим отображением построенным на рядах Фурье. <br><br>Классическим примером комплексной сезонности будет отображение ежедневных объемов продаж, которые имеет, как еженедельные колебания, так и ежегодные.<br> | TBATS {{---}} это модели, которые основаны на экспоненциальном сглаживании(рис. 15).<br> Главной особенностью TBATS является возможность взаимодействия с несколькими сезонностями. Моделируя каждую функцию сезонности отдельным тригонометрическим отображением построенным на рядах Фурье. <br><br>Классическим примером комплексной сезонности будет отображение ежедневных объемов продаж, которые имеет, как еженедельные колебания, так и ежегодные.<br> | ||
Строка 142: | Строка 142: | ||
Ещё одна модель, способная взаимодействовать с несколькими сезонностями. | Ещё одна модель, способная взаимодействовать с несколькими сезонностями. | ||
Это ПО с открытым исходным кодом от Фейсбука (рис. 16).<br> | Это ПО с открытым исходным кодом от Фейсбука (рис. 16).<br> | ||
− | [[Файл:Prophet.png |right|thumb| | + | [[Файл:Prophet.png |right|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 16. Prophet]]] |
Prophet считает, что временной ряд может быть расложен следующим образом:<br> | Prophet считает, что временной ряд может быть расложен следующим образом:<br> | ||
Строка 166: | Строка 166: | ||
==Оценка== | ==Оценка== | ||
− | [[Файл:Evaluation.png |right|600px|thumb| | + | [[Файл:Evaluation.png |right|600px|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 17. MAE с перекрестной проверкой для каждой модели]]] |
Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.<br> | Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.<br> | ||
На следующем рисунке показывало MAE с перекрестной проверкой для каждой модели и для каждого временного горизонта(рис. 17): | На следующем рисунке показывало MAE с перекрестной проверкой для каждой модели и для каждого временного горизонта(рис. 17): | ||
Строка 176: | Строка 176: | ||
Чтобы получить объективную оценку наилучшей производительности модели, вычислим MAE на тестовом наборе(рис. 18), получив оценку, равную 5,24. На следующем рисунке можно увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.<br> | Чтобы получить объективную оценку наилучшей производительности модели, вычислим MAE на тестовом наборе(рис. 18), получив оценку, равную 5,24. На следующем рисунке можно увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.<br> | ||
− | [[Файл:Cross-validated MAE.png |left|thumb| | + | [[Файл:Cross-validated MAE.png |left|thumb|[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb Рисунок 18. MAE, тестовый набор]]] |
===Как еще больше повысить производительность=== | ===Как еще больше повысить производительность=== |
Версия 22:29, 13 января 2021
Временные ряды это актуальный инструмент применимый во множестве решений, от предсказания цен на акции, прогнозов погоды, планирования бизнеса, до распределения ресурсов. Несмотря на то, что прогнозирование может быть сведено к построению контролируемой регрессии, существуют особенноссти, связанные с временным характером наблюдений, которые необходимо учитывать, используя специальные инструменты.
Содержание
Временной ряд
Определение: |
Временно́й ряд (или ряд динамики) — собранный в разные моменты времени статистический материал о значении каких-либо параметров (в простейшем случае одного) исследуемого процесса. Каждая единица статистического материала называется измерением или отсчётом. Во временном ряде для каждого отсчёта должно быть указано время измерения или номер измерения по порядку. Временной ряд существенно отличается от простой выборки данных, так как при анализе учитывается взаимосвязь измерений со временем, а не только статистическое разнообразие и статистические характеристики выборки. |
Валидирование и тестирование модели временного ряда
Из-за зависимости данных временных рядов, нельзя пользоваться обычными способами валидации. Чтобы избежать смещения оценки необходимо удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.
Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано здесь. Эта процедура называется кросс-валидацией временного ряда и может быть вкратце описана следующей картинкой (рис. 1), в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.
Если необходимо предсказать следующие n шагов, то можно заранее кросс-валидировать 1,2,...,n — n как формулу.
Таким образом можно также сравнить качество предсказаний для разных временных горизонтов.
Определив лучшую модель, можно применить её ко всему обучающему набору и оценить его работу на следующем во времени наборе данных. Оценка работы может быть дана с использованием метода скользящего окна[1], который используем при кросс-валидации, но без переподсчёта параметра модели.
Краткое исследование данных
В данной части используется несколько разных моделей для предсказания изменений в промышленном производстве,
которое для примера будем оценивать численно, как количество электрооборудования, произведённого в зоне Евро (рис. 2, 3).
Набор данных описывает ежемесячное производство электрооборудования (компьютеры электрические и оптические приборы) в зоне евро(17 стран) в период с января 1996 по март 2012 года (см. график ниже). Последние два года будем использовать при тестировании.
Модели прогнозирования временных рядов
Существует 10 моделей прогнозирования, у каждой имеются свои плюсы и недостатки. Ниже для каждой из модели предскажем 12 месяцев, соответственно, значение t+1, t+2, …, t + 12.
Имеет смысл использовать среднюю абсолютную ошибку для работы оценки модели.
Наивная
Предсказания для каждого горизонта соотвествуют последнему наблюдаему значению
Y(t + h|t) = Y(t)
.
Такие предскания предполагают, что стохастическая[2] модель генерирует случайное блуждание.
Расширение наивной модели SNAIVE — сезонно-наивная модель предполагает, что временной ряд имеет сезонную компоненту, и что период сезонности T.
Прогнозы SNAIVE - модели описываются формулой Y*(t+h|t) = Y(t+h-T)
.
Получаемые прогнозы следующий T шагов совпадают с предыдущими T шагами.
Эти модели часто используются как ориентировочные модели. Следующий график показывает предсказания двух моделей для 2007 года (рис. 4, 5).
Разделение по сезонам + любая модель
Если данные показывают, что они воспроиимчивы к периодическим-сезонным изменениям(ежедневно, еженедельно, ежеквартально, ежегодно), то будет полезным разложить исходный временной ряд на сумму трёх компонентов.
Y(t) = S(t) + T(t) + R(t)
S(t) — сезонный компонент
T(t) — компонент трендового цикла
R(t)— остаток
Существуют несколько способов для такого разложения, но наиболее простой называется классическим разложением и заключается в том, чтобы
Оценить тренд T(t) через скользящее среднее
Посчитать S(t), как среднее без тренда Y(t) - T(t) для каждого сезона
Посчитать остаток, как
R(t) = Y(t) - T(t)-S(t)
Классическое разложение можно расширить несколькими способами.
Расширение позволяет использовать данный метод при:
- непостоянной величине сезона
- посчитать начальные и конечные значение декомпозиции
- избежать лишнего сглаживания
Обзор методов разложений ряда можно увидеть по ссылке. Используется реализация из стандартной библиотеки(рис. 6).
Одним из способов использования декомпозиции для прогнозирования будет:
1)разложить обучающий набор алгоритмом из STL.
2)посчитать сезонное отклонение ряда Y(t)-S(t), используя любую модель для прогнозирования сезоно-чувствительного временного ряда.
3)Добавить прогнозам сезонность последнего временного периода во временном ряду(в нашем случае S(t) для прошлого года).
На следующем графике показаны сезонные индексы ряда с учётом сезонности (рис. 7):
Следующий график показывает предсказания полученные для 2007 года с использованием STL декомпозиции и наивной модели(рис. 8) для сезонно-изменяемого временного ряда:
Декомпозиция была исплементирована с помощью встроенной в стандартную библиотеку функции.
Экспоненциальное сглаживание
Экспоненциальное сглаживание[3] — один из наиболее успешных классических методов предсказаний. В своей базовой форме оно называется простым экспоненциальный сглаживанием и его прогнозы описываются формулами:
Ŷ(t+h|t) = ⍺y(t) + ⍺(1-⍺)y(t-1) + ⍺(1-⍺)²y(t-2) + …
with 0<⍺<1.
Заметно, что прогнозы равны взвешенному среднему от старых наблюдений, и что соответствующие веса убывают экспоненциально по мере хода времени.
Некоторые методы для расширения алгоритма позволяют добавить тренд, его затухание и сезонность. Экспоненциальное сглаживание состоит из 9 моделей, которые подробно описаны здесь(ссылка)
Следующие графики(рис. 9, 10) описывают прогнозы данные полученные для 2007 года с использованием модели экспоненциального сглаживания(выбраны автоматически), которые подходили исходному и сезонно-чувствительному временному ряду.
ARIMA, SARIMA
Также как и экспоненциальное сглаживание, ARIMA также часто используются для прогноза временных рядов. Название является акронимом AutoRegressive Integrated Moving Average Саморегрессивное интегрированное скользящее среднее
Саморегрессивность — линейная комбинация старых значений. Скользящее среднее — линейная комбинация прошлых ошибок.
ARIMA — комбинация этих двух подходов. Так как эти подходы требуют стационарности временного ряда, может понадобится продифференциировать/проинтегрировать ряд То есть рассматировать ряд разностей, а не исходный ряд
SARIMA учитывает сезонность, добавляя линейную комбинацию прошлых сезонных значений и/или прошлых ошибок прогноза Для полного ввода в ARIMA, SARIMA читайте по ссылке
Данные графики показывают предсказания полученные для 2007 года с использованием модели SARIMA(рис. 11,12).
Garch
В предыдущих моделях считалось, что слагаемое ошибки в стохастическом процессе генерации временного ряды имели одинаковую дисперсию.
В GARSH-модели(рис. 13) предполагаем, что слагаемое ошибки следуют ARMA процессу(саморегрессирующее скользящее среднее), соответственно слагаемое меняется по ходу времени. Это особенно полезно при моделировании финансовых временных рядов, так как диапазон изменений тоже постоянно меняется.
Обычно ARMA используется и для учёта среднего, для подробного введения в Garsh модели смотри здесь
Динамические линейные модели
Динамические линейные модели представляют другой класс моделей предсказания временных рядов(рис. 14).
Идея заключается в том, что в каждый момент времени t эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется.
Пример динамической линейной модели ниже:
y(t) = ⍺(t) + tβ(t) + w(t)
⍺(t) = ⍺(t-1) + m(t)
β(t) = β(t-1) + r(t)
w(t)~N(0,W) , m(t)~N(0,M) , r(t)~N(0,R)
В предыдущей модели коэффициенты a(t) и b(t) следуют случайному блужданию.
Динамические линейные модели могут быть построены в рамках Байесовской системы. Тем не менее и этот метод можно улучшить, подробности читайте тут.
TBATS
TBATS — это модели, которые основаны на экспоненциальном сглаживании(рис. 15).
Главной особенностью TBATS является возможность взаимодействия с несколькими сезонностями. Моделируя каждую функцию сезонности отдельным тригонометрическим отображением построенным на рядах Фурье.
Классическим примером комплексной сезонности будет отображение ежедневных объемов продаж, которые имеет, как еженедельные колебания, так и ежегодные.
Больше информации можно прочиать тут.
Prophet
Ещё одна модель, способная взаимодействовать с несколькими сезонностями.
Это ПО с открытым исходным кодом от Фейсбука (рис. 16).
Prophet считает, что временной ряд может быть расложен следующим образом:
y(t) = g(t) + s(t) + h(t) + ε(t)
g(t) — тренд
s(t) — сезонность
h(t) — каникулы
ε(t) — ошибки
Подгонка модели представляет собой упражнение по подгонке кривой, поэтому она явно не учитывает структуру временной зависимости в данных. Это также позволяет проводить наблюдения с нерегулярным интервалом.
Есть два варианта временных рядов тренда: модель насыщающего роста и кусочно-линейная модель. Модель многопериодной сезонности основана на рядах Фурье[4]. Эффект известных и заказных выходных дней может быть легко включен в модель.
Модель пророка вставлена в байесовскую структуру и позволяет сделать полный апостериорный вывод, чтобы включить неопределенность параметров модели в неопределенность прогноза.
NNETAR
Модель NNETAR представляет собой полностью связанную нейронную сеть. Аббревиатура расшифровывается как Neural NETwork AutoRegression.
Модель NNETAR принимает на вход последние элементы последовательности до момента времени t и выводит прогнозируемое значение в момент времени t + 1. Для выполнения многоэтапных прогнозов сеть применяется итеративно.
LSTM
Модели LSTM могут использоваться для прогнозирования временных рядов (а также других рекуррентных нейронных сетей).
LSTM — это аббревиатура от Long-Short Term Memories.
Состояние сети LSTM представлено через вектор пространства состояний. Этот метод позволяет отслеживать зависимости новых наблюдений от прошлых (даже очень далеких).
Вообще говоря, LSTM представляют собой сложные модели, и они редко используются для прогнозирования одного временного ряда, поскольку для их оценки требуется большой объем данных.
Однако они обычно используются, когда необходимы прогнозы для большого количества временных рядов(проверьте здесь).
Оценка
Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.
На следующем рисунке показывало MAE с перекрестной проверкой для каждой модели и для каждого временного горизонта(рис. 17):
Видно, что для временных горизонтов больше 4 модель NNETAR с сезонно скорректированными данными работает лучше, чем другие. Давайте проверим общую MAE, вычисленную путем усреднения по разным временным горизонтам.
Модель NNETAR по сезонно скорректированным данным была лучшей моделью для этого приложения, поскольку она соответствовала самому низкому значению MAE, прошедшему перекрестную проверку.
Чтобы получить объективную оценку наилучшей производительности модели, вычислим MAE на тестовом наборе(рис. 18), получив оценку, равную 5,24. На следующем рисунке можно увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.
Как еще больше повысить производительность
Другие методы повышения производительности моделей:
- Использование разных моделей для разных временных горизонтов
- Объединение нескольких прогнозов (например, с учетом среднего прогноза)
- Агрегация начальных данных
Последний метод у можно резюмировать следующим образом:
- Разложите исходный временной ряд (например, используя STL)
- Создайте набор похожих временных рядов путем случайного перемешивания фрагментов оставшейся компоненты.
- Подбирайте модель для каждого временного ряда
- Средние прогнозы каждой модели
Заключительные замечания
Большинство ранее описанных моделей позволяют легко включать изменяющиеся во времени предикторы. Они могут быть извлечены из одного и того же временного ряда или могут соответствовать внешним предикторам (например, временному ряду другого индекса). В последнем случае мы должны обратить внимание на то, чтобы не использовать информацию из будущего, которая могла бы быть удовлетворена путем прогнозирования предикторов или использования версий c ошибками.
Наконец, обратите внимание, что в этой статье мы рассмотрели только случай, когда у нас есть один временной ряд для прогнозирования. Когда у нас много временных рядов, может быть предпочтительнее глобальный подход, поскольку он позволяет нам оценивать более сложную и потенциально более точную модель. Чтобы ознакомиться с глобальным подходом, щелкните здесь.
См. Также
- Кластеризация
- Уменьшение размерности
- Рекомендательные системы
- Анализ социальных сетей
- Графовые нейронные сети
- Компьютерное зрение
Примечания
Источники Информации
- Филатов, А. В. Заметки профайлера / А. В. Филатов. -Москва: Издательские решения, 2019. -522.
- machinelearning.ru
- Википедия: Временной ряд