Изменения

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

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

595 байт убрано, 22:29, 13 января 2021
Нет описания правки
==Валидирование и тестирование модели временного ряда==
Из-за зависимости данных временных рядов, нельзя пользоваться обычными способами валидации. Чтобы избежать смещения оценки необходимо удостовериться, что обучающие наборы данных содержат только наблюдения, которые произошли до событий из валидирующий наборов.<br>
[[Файл:TimeSeriesCross-validation.png |thumb|left|400px|Рисунок 1. кросс-валидация временного ряда<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 1.comкросс-валидация временного ряда]</ref>]]<br>
Возможным способом преодоления данной проблемы будет использование скользящего окна, как описано [https://robjhyndman.com/hyndsight/tscv/ здесь]. Эта процедура называется [[Кросс-валидация|кросс-валидацией]] временного ряда и может быть вкратце описана следующей картинкой (рис. 1), в которой синие точки обозначают тренировочный набор данных, а красные соответствующие валидационные наборы данных.<br>
==Краткое исследование данных==
[[Файл:ManufactureOfElectricalEquipment.png|thumb|right|300px|Рисунок 2. Набор данных описывающий график производства электрооборудования<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 2.comНабор данных описывающий график производства электрооборудования]</ref>]]<br>
В данной части используется несколько разных моделей для предсказания изменений в промышленном производстве,<br> которое для примера будем оценивать численно, как количество электрооборудования, произведённого в зоне Евро (рис. 2, 3).<br>
[[Файл:SeasonalPlotMonthluSeasonalPattern.png|thumb|right|300px|Рисунок 3. Сезонные колебания<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 3.comСезонные колебания]</ref>]]
Набор данных описывает ежемесячное производство электрооборудования (компьютеры электрические и оптические приборы) в зоне евро(17 стран) в период с января 1996 по март 2012 года (см. график ниже). Последние два года будем использовать при тестировании.<br><br><br><br><br>
===Наивная===
[[Файл:NaiveElectricalEquipmentManufacturing.png|thumb|Рисунок 4. Наивная<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 4.comНаивная]</ref> ]]<br>
Предсказания для каждого горизонта соотвествуют последнему наблюдаему значению
Такие предскания предполагают, что стохастическая<ref>[https://ru.wikipedia.org/wiki/Стохастичность Википедия: Стохастичность]</ref> модель генерирует случайное блуждание.<br>
[[Файл:SeasonalNaiveElectricalEquipmentManufacturing.png|thumb|left|Рисунок 5. Сезонно наивная<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 5.comСезонно наивная]</ref>]]<br>
Расширение наивной модели SNAIVE {{---}} сезонно-наивная модель предполагает, что временной ряд имеет сезонную компоненту, и что период сезонности T.<br>
===Разделение по сезонам + любая модель===
[[Файл:STL_docompositionOnIndustrialProductionIndexData.png|thumb|Рисунок 6. Методы разложения ряда<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 6.comМетоды разложения ряда]</ref>]]<br>
Если данные показывают, что они воспроиимчивы к периодическим-сезонным изменениям(ежедневно, еженедельно, ежеквартально, ежегодно), то будет полезным разложить исходный временной ряд на сумму трёх компонентов.<br>
Посчитать остаток, как <br>
R(t) = Y(t) - T(t)-S(t)<br>
[[Файл:SeasonallyAdjustedIndustrial.png |thumb|left|Рисунок 7. Сезонные индексы ряда<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 7.comСезонные индексы ряда]</ref>]]
Классическое разложение можно расширить несколькими способами.<br>
Расширение позволяет использовать данный метод при:
2)посчитать сезонное отклонение ряда Y(t)-S(t), используя любую модель для прогнозирования сезоно-чувствительного временного ряда.<br>
3)Добавить прогнозам сезонность последнего временного периода во временном ряду(в нашем случае S(t) для прошлого года).<br>
[[Файл:SeasonallyAdjustedTimeSeries.png|right|thumb|Рисунок 8. Декомпозиция и наивная модель<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 8.comДекомпозиция и наивная модель]</ref>]]<br>
На следующем графике показаны сезонные индексы ряда с учётом сезонности (рис. 7):<br>
===Экспоненциальное сглаживание ===
[[Файл:ExpSmoothing.png|thumb|left|Рисунок 9. данные полученные для 2007 года с использованием модели экспоненциального сглаживания<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 9.comданные полученные для 2007 года с использованием модели экспоненциального сглаживания]</ref>]]
Экспоненциальное сглаживание<ref>[https://ru.wikipedia.org/wiki/Экспоненциальное_сглаживание Википедия: Экспоненциальное сглаживание]</ref> {{---}} один из наиболее успешных классических методов предсказаний. В своей базовой форме оно называется простым экспоненциальный сглаживанием и его прогнозы описываются формулами:
<code>Ŷ(t+h|t) = ⍺y(t) + ⍺(1-⍺)y(t-1) + ⍺(1-⍺)²y(t-2) + …</code>
'''''with 0<⍺<1.'''''<br>
[[Файл:ExpSmoothing+Decomposition.png|thumb|right|Рисунок 10. данные полученные для 2007 года с использованием модели экспоненциального сглаживания и декомпозиции<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 10.comданные полученные для 2007 года с использованием модели экспоненциального сглаживания и декомпозиции]</ref>]]
Заметно, что прогнозы равны взвешенному среднему от старых наблюдений, и что соответствующие веса убывают экспоненциально по мере хода времени.
===ARIMA, SARIMA===
[[Файл:SARIMA.png |thumb|left|Рисунок 11. SARIMA<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 11.comSARIMA]</ref>]]
Также как и экспоненциальное сглаживание, ARIMA также часто используются для прогноза временных рядов. Название является акронимом AutoRegressive Integrated Moving Average Саморегрессивное интегрированное скользящее среднее
Скользящее среднее {{---}} линейная комбинация прошлых ошибок.
[[Файл:SARIMA_Decomposition.png|thumb|right|Рисунок 12. SARIMA декомпозированная<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 12.comSARIMA декомпозированная]</ref>]]
ARIMA {{---}} комбинация этих двух подходов. Так как эти подходы требуют стационарности временного ряда, может понадобится продифференциировать/проинтегрировать ряд
То есть рассматировать ряд разностей, а не исходный ряд
===Garch===
[[Файл:GARCH.png |thumb|left|Рисунок 13. ARMA<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 13.comARMA]</ref>]]<br>
В предыдущих моделях считалось, что слагаемое ошибки в стохастическом процессе генерации временного ряды имели одинаковую дисперсию.
===Динамические линейные модели===
[[Файл:DLM+Decomposition.png|right|thumb|Рисунок 14. DLM<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 14.comDLM]</ref>]]<br>
Динамические линейные модели представляют другой класс моделей предсказания временных рядов(рис. 14).
Идея заключается в том, что в каждый момент времени t эти модели соответствуют линейной модели, но коэффициент регрессии постоянно меняется. <br>Пример динамической линейной модели ниже:<br>
===TBATS===
[[Файл:TBATS_Electrical.png |left|thumb|Рисунок 15. DLM<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 15.comDLM]</ref>]]
TBATS {{---}} это модели, которые основаны на экспоненциальном сглаживании(рис. 15).<br> Главной особенностью TBATS является возможность взаимодействия с несколькими сезонностями. Моделируя каждую функцию сезонности отдельным тригонометрическим отображением построенным на рядах Фурье. <br><br>Классическим примером комплексной сезонности будет отображение ежедневных объемов продаж, которые имеет, как еженедельные колебания, так и ежегодные.<br>
Ещё одна модель, способная взаимодействовать с несколькими сезонностями.
Это ПО с открытым исходным кодом от Фейсбука (рис. 16).<br>
[[Файл:Prophet.png |right|thumb|Рисунок 16. Prophet<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 16.comProphet]</ref>]]
Prophet считает, что временной ряд может быть расложен следующим образом:<br>
==Оценка==
[[Файл:Evaluation.png |right|600px|thumb|Рисунок 17. MAE с перекрестной проверкой для каждой модели<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 17.comMAE с перекрестной проверкой для каждой модели]</ref>]]
Выполнен выбор модели с помощью процедуры перекрестной проверки, описанной ранее. Не рассчитывая его для динамических линейных моделей и моделей LSTM из-за их высокой вычислительной стоимости и низкой производительности.<br>
На следующем рисунке показывало MAE с перекрестной проверкой для каждой модели и для каждого временного горизонта(рис. 17):
Чтобы получить объективную оценку наилучшей производительности модели, вычислим MAE на тестовом наборе(рис. 18), получив оценку, равную 5,24. На следующем рисунке можно увидеть MAE, оцененную на тестовой выборке для каждого временного горизонта.<br>
[[Файл:Cross-validated MAE.png |left|thumb|Рисунок 18. MAE, тестовый набор<ref>[https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb towardsdatascienceРисунок 18.comMAE, тестовый набор]</ref>]]
===Как еще больше повысить производительность===
Анонимный участник

Навигация