Какие современные методы для временных рядов эффективны
Что проверяют
Умеете ли вы выбрать метод под данные, а не назвать самый модный. Главный уточняющий вопрос: как вы валидировали прогноз и с каким бейзлайном сравнивали.
Как отвечать
Стройте ответ лестницей от простого к сложному:
- бейзлайны: наивный и сезонно наивный прогноз. Модель, которая их не обыгрывает, не нужна;
- статистические модели: ETS, ARIMA и SARIMAX, Theta. Быстрые, интерпретируемые, дают интервалы. Тысячи рядов удобно гонять в
statsforecast; - бустинг на признаках: LightGBM или CatBoost на лагах, скользящих средних, календаре и праздниках, одна глобальная модель на все ряды. В соревновании M5 верх таблицы заняли именно такие решения. Лаг строится через
df.groupby("sku")["y"].shift(7), окна считаются только по прошлому; - нейросети: N-BEATS, N-HiTS, TFT, PatchTST, DeepAR для вероятностных прогнозов, библиотеки
neuralforecastиdarts. Оправданы на большом числе связанных рядов; - foundation-модели: Chronos, TimesFM, Moirai дают zero-shot прогноз без обучения. Хороший быстрый бейзлайн, но на своих данных их обязательно сравнивают с бустингом.
Дальше валидация. Никакого случайного разбиения: только по времени, скользящим или расширяющимся окном (TimeSeriesSplit в scikit-learn), с тем же горизонтом, что в проде. Метрики: MAE, RMSE, MASE, WAPE, для вероятностных прогнозов quantile loss. Если нужны согласованные прогнозы по иерархии товаров и регионов, упомяните reconciliation.
Где спотыкаются
Перемешивают данные или строят признаки с заглядыванием в будущее: скользящее среднее, включающее текущую точку, или нормировку по всему ряду. Метрика выходит отличной, а в проде модель проваливается.
Берут MAPE на рядах с нулями и маленькими значениями. Метрика взрывается или поощряет занижение прогноза, поэтому для спроса обычно берут WAPE или MASE.
Сразу предлагают LSTM и приводят прогноз курса акций как пример успеха. Без сравнения с сезонно наивным прогнозом и ARIMA такой ответ слабый, а на коротких рядах LSTM обычно проигрывает простым моделям.