Найти в Дзене
25 подписчиков

Об автоматическом (или около того) прогнозировании


#лонгрид

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

Условие домашней работы было достаточно простым - нужно было взять любой ряд цен из Pink Sheet Всемирного Банка (месячные ряды цен на разные биржевые продукты, от нефти до креветок) и построить его прогноз рядом простых авторегрессионных (когда текущее значения ряда определяется предыдущими значениями) моделей, сделать это много раз и посчитать среднюю точность таких прогнозов на 1 месяц вперёд.

Набор моделей был вполне стандартный для базового курса по прогнозированию: ARIMA (с автоматическим подбором параметров), ETS, гибриды, прогнозирующие ансамблем из других моделей (вплоть до простейших нейронных сетей - и когда-нибудь я напишу отдельный текст про бессмысленную и беспощадную любовь некоторых людей к нейронным сетям там, где они не работают)

В целом, идея "а давайте придумаем какую-нибудь модель, чтобы просто нажимать на кнопочку и получать хорошие прогнозы" выглядит очень привлекательно, и на каком-то этапе возникает ощущение, что сейчас заживём! Но чаще всего, увы, "зажить" не получается, и результаты этого небольшого домашнего задания это прекрасно подтвердили: больше чем в половине работ лучшей моделью оказалась... Наивная модель! Которая просто повторяет последнее наблюдение в качестве прогноза ("завтра равно сегодня").

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

Как показывает практика, даже при существенном усложнении моделей редко получается получить кардинальный прирост точности. Я наблюдал хорошо работающие LSTM (более сложный вид нейронных сетей), но в основном на более высокочастотных данных, когда в выборке хотя бы несколько тысяч наблюдений. Я слышал про хорошо работающий Prophet, но для специфичных типов данных (долей). И видел гораздо больше случаев, когда ни LSTM, ни Prophet, не способны значимо улучшить точность по сравнению с наивным прогнозом. А там, где точность улучшается - это достигается долгим и аккуратным подбором параметров моделей, а вовсе не "нажал на кнопочку - и всё работает".

Мораль сей басни? Не бывает волшебных палочек :) Если вам нужен хороший прогноз - то даже при использовании авторегрессионной модели вам, скорее всего, придётся довольно много времени потратить на подбор оптимальной модели и её параметров. А лучше использовать модель с внешними объясняющими переменными - но тогда придётся потратить на неё ещё больше времени и сил. Но они точно окупятся!
2 минуты