Прогноз временных рядов с трендом и сезонностью нужен для планирования нагрузки, спроса и посещаемости. Для задач с небольшим объёмом данных используют простые методы: скользящее среднее, экспоненциальное сглаживание и его расширения (двойное и тройное сглаживание Хольта и Уинтерса), регрессионные модели [1]. Сравнение классических методов (SARIMA, Хольта и Уинтерса, ETS) и методов машинного обучения на реальном сезонном ряду показывает, что выбор определяется компромиссом между точностью и скоростью расчёта [2]. Цель работы состоит в том, чтобы на ряду с известным устройством выяснить, какой из простых методов точнее и как это зависит от уровня шума.
Синтетический ряд моделирует посещаемость сайта по дням: y ( t ) = 1000 + 2 t + s ( t mod 7) + ε. Недельная компонента s принимает значения от −80 до +100 посетителей в сутки с нулевым средним (есть дни с пониженной и повышенной посещаемостью), ε нормальный шум с σ = 25, 75 или 150. Ряд состоит из 300 суток обучающей выборки и 28 суток тестовой. Для оценки использованы 300 реализаций на каждый уровень шума с разными начальными значениями генератора.
Сравнивались четыре метода. Скользящее среднее по последним 7 суткам даёт постоянный прогноз, равный среднему за неделю. Простое экспоненциальное сглаживание строит уровень l ( t ) = α y ( t ) + (1 − α) l ( t − 1) и тоже прогнозирует константу, α выбирается перебором от 0,05 до 0,95 с шагом 0,05 по минимуму суммы квадратов ошибок на обучающей части (в среднем получилось 0,39). Линейная регрессия по номеру суток описывает тренд, но не сезонность. Четвёртый метод добавляет к регрессии шесть индикаторов дней недели. Качество оценивалось средней абсолютной ошибкой (MAE) и среднеквадратической ошибкой (RMSE) на тестовых 28 сутках. Расчёт выполнен на Python с numpy.
Рис. 1. Прогнозы на 28 суток при σ = 75 (пример одной реализации)
Таблица 1
Ошибки прогноза на 28 суток, посетителей в сутки (среднее по 300 реализациям)
|
Метод |
σ = 25: MAE |
RMSE |
σ = 75: MAE |
RMSE |
σ = 150: MAE |
RMSE |
|
Скользящее среднее (7) |
66,7 |
84,2 |
90,8 |
112,1 |
142,9 |
176,5 |
|
Экспоненциальное сглаживание |
85,7 |
99,2 |
88,5 |
109,4 |
138,5 |
171,4 |
|
Линейная регрессия |
62,3 |
71,4 |
82,1 |
100,0 |
131,8 |
163,1 |
|
Регрессия + сезонность |
20,1 |
25,0 |
60,4 |
75,0 |
120,8 |
150,1 |
Результаты приведены в таблице 1. Скользящее среднее и экспоненциальное сглаживание строят горизонтальный прогноз и не учитывают тренд: за 28 суток ряд растёт примерно на 56 посетителей, поэтому прогноз систематически занижен. Кроме того, ошибки этих методов включают недельные колебания. При σ = 25 MAE равна 66,7 для скользящего среднего и 85,7 для сглаживания, причём сглаживание хуже, вероятно потому, что подобранный по обучающей части коэффициент α делает оценку уровня чувствительной к последним значениям, на которые влияет недельная сезонность. Линейная регрессия снижает ошибку до 62,3, так как учитывает тренд, а регрессия с индикаторами дней недели до 20,1.
С ростом шума различия сокращаются. При σ = 75 MAE методов составляет 90,8, 88,5, 82,1 и 60,4, а при σ = 150 142,9, 138,5, 131,8 и 120,8. Отношение ошибки регрессии с сезонностью к ошибке простой регрессии растёт с 0,32 при σ = 25 до 0,74 при σ = 75 и 0,92 при σ = 150. Объясняется это тем, что для нормального шума абсолютная ошибка даже идеального прогноза равна примерно 0,8σ (то есть 19,9, 59,8 и 119,7). Лучший метод приближается к этой границе, а у остальных основная часть ошибки приходится на неучтённые тренд и сезонность, значимые только при малом шуме.
Отдельно проверено влияние горизонта прогноза при σ = 75. Для горизонтов 7, 14 и 28 суток MAE скользящего среднего равна 87,0, 87,7 и 90,8, регрессии с сезонностью 60,1, 59,9 и 60,4. Ошибка методов с постоянным прогнозом с горизонтом растёт, но слабо: тренд 2 посетителя в сутки мал по сравнению с недельной амплитудой и шумом. Для рядов с более крутым трендом разница будет заметнее.
Для регрессии с сезонностью отношение RMSE к MAE при всех уровнях шума близко к 1,24, что почти совпадает с теоретическим значением √(π/2) ≈ 1,25 для нормально распределённой ошибки. Это означает, что остаток этой модели по форме близок к нормальному шуму и неучтённой структуры в ряду не осталось. У сглаживания и простой регрессии при σ = 25 отношение ниже (около 1,15), так как их ошибка складывается из почти постоянного смещения, а не из случайного шума. Сравнение RMSE и MAE поэтому можно использовать как грубую проверку того, остался ли в остатках неучтённый эффект.
Выводы можно свести к следующему. Метод нужно выбирать по структуре ряда: если известны тренд и сезонность, регрессия с соответствующими признаками даёт наименьшую ошибку на всех уровнях шума. Скользящее среднее и простое сглаживание подходят только для рядов без тренда и сезонности или для очень короткого горизонта. Нужно учитывать, что ошибка постоянного прогноза растёт с горизонтом из-за тренда, хотя при заданной скорости роста слабо. Ограничения работы: ряд синтетический, структура ряда в методах задана верно, а на реальных данных тренд и сезонность меняются со временем. Поэтому для практических задач результаты следует проверять на фактических данных, например, методом скользящей кроссвалидации [1], и рассматривать также адаптивные модели сглаживания с трендом и сезонностью.
Литература:
- Сергеев Д. Открытый курс машинного обучения. Тема 9. Анализ временных рядов с помощью Python // Хабр. 2017. 24 апр. URL: https://habr.com/en/companies/ods/articles/327242/ (дата обращения: 14.10.2026).
- Альчаков В. В., Крамарь В. А. Оценка методов машинного обучения для прогнозирования сезонных временных рядов // Известия ЮФУ. Технические науки. 2023. № 2. С. 250–263.

