Обзор моделей прогнозирования временных рядов: проба пера

  • Tutorial
В рамках своей диссертации «Модель прогнозирования по выборке максимального подобия» мне нужно было делать обзор моделей прогнозирования. Кроме обзора, я сделала вариант классификации, который мне тогда не очень удался. Классификацию уже немного поправила, теперь хочется разобраться в существующих моделях прогнозирования временных рядов. Такие модели называют стохастическими моделями (stochastic models).

По оценке некто Тихонова в его «Прогнозировании в условиях рынка» на сегодняшний день (2006 год) существует около 100 методов и моделей прогнозирования. Эта оценка звучит бредово, я полно разбирала ее! Давайте теперь вместе разберемся, какие же модели прогнозирования временных рядов существуют на сегодняшний день.

  1. Регрессионные модели прогнозирования
  2. Авторегрессионные модели прогнозирования (ARIMAX, GARCH, ARDLM)
  3. Модели экспоненциального сглаживания (ES)
  4. Модель по выборке максимального подобия (MMSP)
  5. Модель на нейронных сетях (ANN)
  6. Модель на цепях Маркова (Markov chains)
  7. Модель на классификационно-регрессионных деревьях (CART)
  8. Модель на основе генетического алгоритма (GA)
  9. Модель на опорных векторах (SVM)
  10. Модель на основе передаточных функций (TF)
  11. Модель на нечеткой логике (FL)
  12. Что еще?...


Регрессионные модели прогнозирования


Регрессионные модели прогнозирования одни из старейших, однако нельзя сказать, что она нынче очень популярны. Регрессионными моделями являются:

  • Простая линейная регрессия (linear regression)
  • Множественная регрессия (multilple regression)
  • Нелинейная регрессия (nonlinear regression)

Лучшая книга по регрессии — архигениальная книга — Draper N., Smith H. Applied regression analysis. Ее можно скачать в сети в djvu. Лучше читать в английском варианте, написано в высшей степени для людей.

Авторегрессионные модели прогнозирования


Это широчайший и один из двух наиболее широко применимых классов моделей! Книг по этим моделям много, примеров применения много.

  • ARIMAX (autoregression integrated moving average extended), об этом написано чрезвычайно много. Основой основ является книга Box, George and Jenkins, Gwilym (1970) Time series analysis: Forecasting and control. Лучше читать на английском!
  • GARCH (generalized autoregressive conditional heteroskedasticity), здесь множество модификаций FIGARCH, NGARCH, IGARCH, EGARCH, GARCH-M.
  • ARDLM (autoregression distributed lag model), об этом только в учебниках по эконометрике.

Вопрос к аудитории: посоветуйте хорошую и понятную (!) книгу/статью по GARCH и MLE.

Модели экспоненциального сглаживания


  • Экспоненциальное сглаживание (exponential smoothing)
  • Модель Хольта или двойное экспоненциальное сглаживание (double exponential smoothing)
  • Модель Хольта-Винтерса или тройное экспоненциальное сглаживание (triple exponential smoothing)

По всем трем моделям лучшая из мною читанного статья Prajakta S.K. Time series Forecasting using Holt-Winters Exponential Smoothing.

Модель по выборке максимального подобия


Это моя модель (model on the most similar pattern), на ряде задач показывает высокую эффективность. К рядам FOREX и бирж применять не стоит, проверяли, работает неважно. Ее описание можно найти в диссертации по ссылке выше, кроме того, можно скачать пример реализации в MATLAB.

Модель на нейронных сетях


Вторая из двух наиболее популярных моделей прогнозирования временных рядов. Лучшая книга с примерами, на мой вкус, Хайкин С. Нейронные сети: полный курс. Книгу с примерами в MATLAB можно скачать по ссылке.

Модель на цепях Маркова


Модель на цепях Маркова фигурирует в множестве обзоров, однако мне не удалось найти ни хорошей книги, ни хорошей статьи о ее конкретном применении для прогнозирования временных рядов. Сама эту модель разбирала в курсе теории надежности (учебник Гнеденко), принцип ее расчета хорошо понимаю, кроме того, читала, что ее часто применяют для моделирования финансовых временных рядов.

Вопрос к аудитории: посоветуйте хорошую и понятную (!) книгу/статью по применению цепей Маркова для прогнозирования временных рядов.

Модель на классификационно-регрессионных деревьях


Вот тут материалов немного, но они есть. В частности, неплохая статья по применению этой модели для прогнозирования Hannes Y.Y., Webb P. Classification and regression trees: A User Manual for IdentifyingIndicators of Vulnerability to Famine and Chronic Food Insecurity.

Модель на основе генетического алгоритма


Это странный зверь, такого рода решения я называю «иезуитскими», потому что кажется, что они рождены только для обоснования научной новизны, однако эффективность их невысока. Например, генетический алгоритм применяется для решения задач оптимизации (поиска экстремума), однако некоторые приплели его к прогнозированию временных рядов. Найти внятного материала по этой теме мне не удалось.

Вопрос к аудитории: посоветуйте хорошую и понятную (!) книгу/статью по применению генетического алгоритма для прогнозирования временных рядов.

Модель на опорных векторах


Модель на основе передаточных функций


Модель на нечеткой логике


Все эти модели принадлежат, на мой вкус, классу иезуитских. Например, опорные векторы (SVM) применяется в основном для задач классификации. Нечеткая логика где только не применяется, однако найти ее понятно описанное применение для прогнозирования временных рядов мне не удалось. Хотя в обзорах специалисты почти всегда ее указывают.

Вопрос к аудитории тот же!

Итого


Моделей мы наберем с десяток, со всеми модификациями — два десятка. Хотелось бы, чтобы в комментариях вы не только высказывали мнение, а по возможности делали полезные ссылки на понятные материалы. Лучше на английском!

PS. Всех любителей FOREX и всякого рода бирж большая просьба не долбится ко мне в личку! Вы мне ужасно надоели!
Поделиться публикацией
Комментарии 33
    +1
    Существует еще один довольно мощный метод, основанный на нелинейной динамике. Это метод реконструкции исходных уравнений процесса. Суть его в том, что вы из одномерного ряда получаете многомерный а далее на его основе восстанавливаете уравнения системы (точнее их приближение) в аналитическом виде. Кроме этого существует так же метод SSA ru.wikipedia.org/wiki/SSA_метод
      0
      Существует еще один довольно мощный метод, основанный на нелинейной динамике. Это метод реконструкции исходных уравнений процесса. Суть его в том, что вы из одномерного ряда получаете многомерный а далее на его основе восстанавливаете уравнения системы (точнее их приближение) в аналитическом виде

      Как он называется?

      Кроме этого существует так же метод SSA

      Есть ли ссылки на применение SSA для прогнозирования именно? Ссылка на википедию нерабочая.
        0
        Сорри, вот ссылка ru.wikipedia.org/wiki/SSA_(метод)
        Вот пример с прогнозированием SSA

        «Как он называется?»

        Он так и называется «Реконструкция обыкновенных дифференциальных уравнений по временным рядам»
          0
          За ссылку спасибо, открыла, выглядит солидно!

          Не, модели на каких-либо диффурах я как-то не отношу к стохастическим моделям. Вероятно, это ближе к детерминированным моделям.
            +1
            По-мимо стохастических моделей есть еще модели, основанные на детерминированном хаосе
            Метод реконструкции именно с такими и работает. К слову, хаотическая динамика довольно неплохо описывает финансовые временные ряды
              0
              Моделей много всяких разных. Спасибо за пояснение! Хочется прежде со стохастическими разобраться, а потом уж пошире смотреть.

              Вы сам этим занимались? Или просто про это слышали?
                0
                Я нелинейной динамикой занимался. А эти методы там используются. Ну прогнозом тоже немного занимался
                  0
                  Я помогал одногруппнику делать диплом 5 лет назад, у него как раз было прогнозирование расходов методом гусеницы. Кажется, я так понимал его смысл: при нахождении собственных векторов матрицы по сути находим константы разложения ряда Фурье. Дальше, соответственно, выбираем бОльшие из них, по ним и строим прогноз.
              0
              Он так и называется «Реконструкция обыкновенных дифференциальных уравнений по временным рядам»


              Это более-менее общеизвестная общая идея, а не название метода. Это примерно как на вопрос о некоем методе оптимизации сказать «Он так и называется — 'Минимизация функции n аргументов'».
                +1
                Использование нейронных сетей в этом смысле — тоже всего лишь идея. Просто каких-то общепринятых алгоритмов в этой сфере пока нет — она динамично развивается. Многомерный ряд восстанавливаете методом задержек, размерность пространства ищете методом ближайшего соседа. Вот кстати, неплохая работа по этой теме Анализ временных рядов
                  0
                  За ссылку спасибо, я полистала — очень интересно! Ознакомлюсь, тем более, рассматривается целая группа задач, а не только прогнозирование.
                    0
                    Использование нейронных сетей — это даже меньше, чем идея, это — отсутствие идей :)

                    А если серьезно, то использование нейронных сетей — это действительно не метод. Метод — это, например, «использование двухслойного перцептрона» (да, я знаю, что он почти никогда не работает на практике).

                    каких-то общепринятых алгоритмов в этой сфере пока нет — она динамично развивается


                    А что, разве есть хоть какие-то, пусть и необщепринятые? Про «метод задержек» и «размерность пространства вложения» (а на самом деле — инерциального многообразия) — это все уже навязло в зубах у всех. А вот полноценная реконструкция динамической системы по временному ряду — тут я вообще ни одной разумной работы не видел. Ваша ссылка очень хорошая (как все учебные книжки Лоскутова), но там тоже про это почти ничего нет. К тому же это учебник, содержащий более-менее общеизвестные вещи. Собственно, я даже в целом понимаю, почему это ни у кого не получается, но вдруг Вы видели что-то интересное в этой области.
                0
                Вот ещё одна ссылка, если ещё не видели
                Гусеница
              +1
              Ого! Тоже интересуюсь этим вопросом, но не знал что их так много!
                0
                В качестве полезного дополнения предлагаю обратить внимание на спектральные методы.
                Интуитивно понятно, что сложно-периодические процессы можно представить набором синусоид,
                а потом по ним производить прогноз.
                Но там много тонкостей. Если просто сделать преобразование Фурье данных на отрезке времени,
                то обратное преобразование в последующие моменты даст… те же самые данные!
                Поэтому надо что-то отбрасывать, что-то менять. Начальные подробности
                  0
                  Не кидайте ссылки на википедию, там только самая общая информация. Если у вас есть конкретные полезные статьи, как тот или иной метод применяется конкретно для задачи прогнозирования временных рядов, то именно такие ссылки и хочется получить. Я со своей стороны постаралась выдать только отфильтрованные и действительно качественные ссылки, где все понятно написано.
                    0
                    В принципе, это справедливо. Но попсовость и «общая общность» — это скорее недостатки российской вики.
                    В западной по статье из Wiki можно вполне реально углубиться в материал.
                    И главное, там много ссылок на конкретные статьи. По LSSA мне, например, вот эта пригодилась.
                0
                Подскажите, какие из списка литературы вашего диссера понастоящему стоит читать? Перечисление это хорошо, но всё-таки для обзора не дотягивает, или топик будет пополняться?
                  +2
                  Дело в том, что хороший обзор мне найти не удалось: они или узкие, или специализированные.

                  Узкие. То есть откровенная халтура, как на английском, так и на русском, где перечисляется от силы половина указанного списка. И все, на этом автор начинает двигаться дальше.

                  Специализированные. Вот это встречается чаще. Если человек прогнозирует, например, временной ряд энергопотребления, то он делает обзор моделей, на которых именно такого рода ряд прогнозируется. В связи с этим снова выходит усечение.

                  Наверное, самый приличный обзор методов + оценка их достоинств и недостатков на русском — в моей диссертации: Обзор моделей прогнозирования и Сравнение моделей прогнозирования.

                  На английском мне понравилось пару обзоров: Forecasting Spot Electricity Market Prices Using Time Series Models и A Computing Model of Artificial Intelligent Approaches to Mid-term Load Forecasting: a state-of-the-art-survey for the researcher. Однако эти материалы как раз из категории специализированных.

                  Из обзоров, к сожалению, порекомендовать больше нечего.

                  В дальнейшем, коли у меня руки дойдут, то я бы хотела описать все перечисленные модели с примерами реализации. Кое-что я уже сделала для своего сайта, кое-что еще только предстоит делать. Мне здесь бы просто хотелось получить ссылки полезные, если кто-то нашел, видел, использует модели. Разбираться мне приходится много, но найти из кучи материала то, что действительно просто и полезно, непросто и очень трудоемко.
                    0
                    Спасибо за ответ. Надеюсь, на продолжение постов от вас.
                    0
                    Я хоть и не автор, но порекомендую вот эту книжку
                      0
                      Чем она хороша?
                        +1
                        Книг по современным нелинейным моделям очень мало (как правило нужно читать статьи), и это одна из них. В частности, в ней подробно разбирается TAR/STAR/MSM и сравнивается с ARIMA. Книжка также показывает правильный подход к тестированию и сравнению моделей.
                          0
                          Большое спасибо за пояснения! Попробуй найти в электронном виде.
                    0
                    Модель на основе генетического алгоритма
                    Это странный зверь, такого рода решения я называю «иезуитскими»


                    Зато в паре с нейронными сетями ГА вполне жизнеспособны. Обычно их используют для выбора оптимальных параметров обучения сети (сигма функции, количество слоев, метод обучения...)
                      0
                      Да, ANN + GA часто используют в связке. Просто обычно при помощи GA как раз сеть учат, как вы и написали, но это не совсем решение задачи прогнозирования. Прогнозирует, то есть находит будущее значение, именно ANN. А вот когда прогнозируют на GA — вот это иезуитство.
                        0
                        Есть еще так называемое генетическое программирование, на основе генетических алгоритмов оптимизации конструируется функция аппроксимации. Принцип действия в общем и целом, как и у ГА в нейросетях, функциональные блоки разнообразнее. Году в 2000-м, когда интересовался данной тематикой, вроде лидером был российский продукт Polyanalist
                      0
                      Не подскажете ли, к какому классу относится HTM?
                        0
                        Я поглядела документ бегло, нужно смотреть внимательнее, чтобы точно разобраться. Я просто такого раньше не встречала. Давайте, как гляну, то напишу тут ответ.
                          0
                          en.wikipedia.org/wiki/Hierarchical_Temporal_Memory — вот тут компактное описание. Модель эта структурная, в частности по ссылке написано: «HTM can be viewed as an artificial neural network». Наверное, на ней можно делать прогноз, но я не видела примеров такого рода прогнозов.
                            0
                            вот пример программы, занимающейся прогнозированием временных рядов на HTM: numenta.com/grok
                          +2
                          Старый добрый GMDH не упомянут — ему лет 45 уже.

                          По генетике — вы смотрели на ГА, т.е. оптимизацию.
                          В прогнозировании обычно используют ГП — генетическое программирование.
                          Вот пример очень старого и успешного коммерческого применения:
                          www.tradingsystemlab.com/introgeneticprograms.aspx

                            0
                            Точно! В диссере-то я не забыла МГУА, а тут забыла! Есть такое дело.
                            За пояснение по поводу ГА и ГП спасибо, деталей тут действительно не знаю.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое