Мы все как-то так или иначе прогнозируем в уме. Интуитивно или рационально. В период отпусков обычно меняем половину отложенных рублей на доллары (или даже все), если собираемся за границу. А похоже на то, что возможно формализовать интуитивный подход.

Анатомия временного ряда

Прогнозируются ли одномерные временные ряды? Можно сказать "иногда". Когда ряд удается декомпозировать на регулярные шаблоны - прогнозировать достаточно несложно.

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

Но все мы знаем, что кажущиеся случайными траектории - часто зависят от некоторых факторов. Курс доллара, скажем, - функция множества сложных взаимодействий. Но как одномерный ряд информативно он не прогнозируется. Информативно - это с узким вероятностным интервалом:

  • точечное (даже многомерное) продолжение ряда имеет нулевую вероятность,

  • узкое интервальное продолжение - из теории информации чем ниже вероятность, тем больше информации, - информативно, но менее, вероятно,

  • аналогично противоположное: широкий интервал более вероятен, но менее информативен.

Декомпозировать, пусть даже на нерегулярные компоненты, можно любой ряд. Этими компонентами как минимум могут быть дрейф (снос, тренд), волатильность (разброс, частный случай - сезонность), и "пробои" (условно так назовём) - это резкие изменения в ряде, которые меняют дрейф.

Обычно "пробоев" не происходит, пока некоторое внутреннее время системы не оказывается под влиянием некоторой надсистемы. Число способов (энтропия как тут принято), в котором может пребывать система в зависимости от её внутренних состояний пропорционально логарифму количества её микросостояний (для сохранения меры при объединении систем). И пока система замкнута - её макрохарактеристики относительно предсказуемы.

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

Правота Нассима Талеба

Так как быть с непрогнозируемыми "в лоб" временными рядами? Талеб в своей книге про жирные хвосты пишет, что Черные Лебеди неизбежны, так как теоремы теории вероятностей и мат. статистики работают в асимптотике, часто недостижимой на реальных экономических рядах. И он прав.

Если видели событие на 4-сигма, знайте (говорит Талеб), это не последний Черный Лебедь ("пробой" ряда). Талеб предлагает сконцентрироваться не столько на оценке вероятности, сколько на платежной функции (потерь или выигрышей), и работать с ней. Весьма agile (anti-fragile), но не отменять же нам прогнозирование, верно?

Прогноз нужен нужен как baseline для оценки рисков в анализе "что-если" (равно как и в сценарном анализе), чтобы отталкиваться не от того как есть, а от экстраполированного будущего.

Интуитивное прогнозирование

Существует методика форсайта, когда (поверхностное описание, методики форсайта обычно на десятки страниц):

  • идентифицируют тренды,

  • смотрят события на пути этих трендов,

  • протягивают тренды в будущее до пересечения,

  • смотрят, к чему это приведет,

  • придумывают, как избежать проблемных ситуаций или приблизить хорошие.

Метод рабочий, но требует экспертов и лиц, имеющих влияние на ситуацию. И прилично много времени, как и усилий по фасилитации. LLM в помощь, в том числе.

Здесь же приведен способ как можно прогнозировать ментально ("в голове"), основываясь на методе стэкинга из машинного обучения. Не нужно быть противником интуиции, скорее её сторонником, с оговоркой что её результаты потом нужно обрабатывать аналитически.

Предпосылки:

  • нужно использовать внутренние и внешние факторы в прогнозе,

  • не нужно опираться только на историю поведения величины, бесполезно,

  • нужно делать прогноз относительно быстро :)

Легкой версией алгоритма будет подобие форсайта:

  1. Выделяем возможные факторы влияния на величину,

  2. Строим модель момента - зависимость величины от факторов в моменте/периоде,

  3. Забрасываем тренды и разбросы факторов наперед,

  4. Варьируем значения факторов в их прогнозных интервалах, в том числе их влияние,

  5. Получаем множество значений величины, которое следует "нарезать" по плотности на вероятностные сценарии.

При использовании Excel или что потяжелее, python скажем, алгоритм усложняется:

  1. Делим историю на две части (водораздел можно менять итеративно),

  2. На первой части прогнозируем факторы как одномерные ряды с разбросом,

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

  4. На скорректированных значениях факторов обучаем модель момента,

  5. Продолжаем факторы в неизвестное будущее и корректируем их,

  6. Прогнозируем в пределах прогнозных интервалов факторов целевую величину моделью момента,

  7. Анализируем вероятностной мерой полученное множество значений: смотрим средние и медианные значения на момент, смотрим вероятности отклонений от них.

Если не делать пункт 3, часто можно будет столкнуться с ситуацией накопления ошибки - и последующим появлением разрыва (gap) между последним значением целевой величины и первым её прогнозным.

Чем интересны средние и медианные значения? Если среднее больше медианы, величина будет тяготеть вниз, и в наоборот. Что по факту является прогнозом? Если хочется снизить среднее абсолютное отклонение, то медиана. Однако среднее, как чувствительное к выбросам в данных, в большой разнице с медианой указывает на потенциальный "пробой".

В итоге, вместо модели h(t) = h(t, X_1(t-1), ..., X_1(t-k), X_n(t-1), ..., X_n(t-k), y(t-1), ..., y(t-k)) мы переходим к модели f(t) = f(t, X_1(t), ..., X_n(t)).

Почему модель момента лучше

Для того чтобы сравнить MAE или RMSE надо определенный набор данных. В целом же методы-модели можно сравнить и "без них", оценкой Bayesian Information Criterion (BIC).

BIC = k * ln(n) - 2 ln (L), где

  • k - число параметров модели,

  • n - размер выборки,

  • L - максимум функции правдоподобия, где функция правдоподобия это вероятность получить данные (или вместе, или при условии) параметров модели. При условии рассматривать не до конца корректно для авторегрессионных моделей временных рядов (модели AR и, скажем, те же трансформеры), в них параметры обусловлены прошлыми данными, поэтому можно говорить о совместном распределении.

Если не рассматривать феномен double descent (для очень больших нейросетей, которые ментально не вычисляются), чем больше у модели параметров, тем она более склонна переобучаться, и следовательно тем выше правдоподобие. То есть мы можем предполагать что L(f) < L(h), где f и h - функции выше. Несложными выкладками, если рассматривать весь стэкинг как единую модель, можно прийти что BIC(f) < BIC(h), в случае когда число параметров приведенного алгоритма ниже, чем у алгоритма на лагах.

Алгоритм на лагах вынужден экстраполировать имплицитно в лучшем (без переобучения) случае, да и входов у него больше, как и параметров. Если говорить про ментальное прогнозирование конкретно, то там и подавно параметров меньше. В машинном обучении можно приближенно представить, что для каждого ряда факторов мы имеем по два оцениваемых параметра (два на тренд, или два: снос и волатильность), для лаговых моделей надо забирать все лаги для учета той же сезонности. Более того, если модель момента рассматривать как в том же факторном пространстве данных - у неё меньше набор данных в виду стэкинга, и её BIC опять же ниже (чем меньше использовали информации, тем лучше).

Это, конечно, не стопроцентно строгое сравнение, но некоторое свидетельство в пользу. На практике стэкинг сложнее, чем зарядить лаговую модель. Зато прогнозы чаще полезнее.

В конце концов

В конце концов у нас есть только два способа прогнозировать на данных:

  1. "так было и так будет" - экстраполяция по аналогии,

  2. "так зависит от факторов, которые будут такими" - моделью момента.

Любой третий, основанный на данных способ, будет комбинацией этих двух, по определению регрессии как калибруемой функции от признаков. Суть метода ментального прогнозирования - переход в пространство признаков без дрейфа, во внутреннее время системы. Несмотря на предположение более низкого правдоподобия, модель момента получить проще (и с меньшим числом параметров). При поиске самих параметров, тем более, в машинном обучении - используют MAP-оценку, правдоподобие умножают еще на вероятность самого параметра - а чем больше размерность параметрического пространства, тем последняя ниже. "Наткнуться" на более хорошую модель в случае стэкинга шанс больше - на этом и построены все ансамблевые подходы, и бустинги, которые хорошо себя показывают.

Весь этот текст - не индивидуальная инвестиционная рекомендация, а больше предостережение. Если не готовы к не вполне точно определенному риску, лучше не надо.

Ну и в завершение. Вся эта история не претендует ни на конечную истину, ни на что-либо инновационное. Большинство из сказанного известно и используется уже давно, но помнить обо всём сложно - поэтому кратко.

Удачных прогнозов!

Комментарии (3)


  1. Emelian
    08.06.2025 14:45

    Ментальное прогнозирование

    Весь текст, как и любой поток сознания от нейросети, пусть и слегка разбавленный личностными вставками, довольно тяжел для восприятия. А формулы и графики здесь ни в одно пикантное, и ни в одно импозантное место. Покажите, как работают ваши формулы, если считаете, что им тут место.

    В конце концов у нас есть только два способа прогнозировать на данных:
    "так было и так будет" - экстраполяция по аналогии,
    "так зависит от факторов, которые будут такими" - моделью момента.

    Как по мне более ценны, для прогноза, простые истины:

    1. Ничто ни вечно под Луной.

    2. Ничто ни ново под Луной.

    3. Пришла беда – отворяй ворота.

    Исходя из этого, можно сделать выводы:

    1. Если тебе сегодня хорошо, то завтра будет плохо.

    2. Если тебе сегодня плохо, то завтра будет хорошо.

    3. Судьба злодейка изощрена, но не злонамеренна.

    4. Безнадежно плохая ситуация может быть разрешена полностью либо частично если ты готов бороться на ментальном уровне. Особенно если плохое идет не от людей, а от «обстоятельств неодолимой силы».

    И т.д. и т.п. Зайти в своей ментальной деятельности можно очень далеко, вплоть до чёрной либо белой магии, но, сейчас, речь не об этом…


    1. S_A Автор
      08.06.2025 14:45

      Спасибо за комментарий. Искусственной нейросетью не было сгенерированно ни слова, сплошь только естественной.


    1. S_A Автор
      08.06.2025 14:45

      по остальному могу заметить, что наверное я потенциально промахнулся хабом. те кто занимается ML, для них такого рода стэкинг вообще давно не новость.

      Что касается судьбы-злодейки, я пишу о том как можно мышлением проделать примерно то же, что и машинным обучением. Но и ограничения упоминаю. И если говорить про непредсказуемые события, то есть в тексте и диагностика их потенциального наличия, и в целом (в том числе ML) подход может находить редкие аномальные события. Проблема в том что им не придают значения.

      Я про ментальное прогнозирование не на хрустальном шаре пишу, а на фактах основанное. Поэтому не уверен, что все что вы пишете справедливо.

      Про графики - они иллюстрации к сопутствующему тексту: первый это про (честно спрогнозированные) тренд + сезонность, второй про продолжение серии через geometric brownian motion, а третий просто немного пространное хоть, но приложение к мысли о вероятностных интервалах и нечто среднем между случайным процессом и регулярным паттерном.