Анализ временных рядов (ИИ25, 2-3 модули)
Дополнительные действия
О курсе
Занятия проводятся в Zoom по четвергам в 18:10. При переносе занятия проводятся в Zoom по понедельникам в 18:10.
Контакты
Канал курса в TG: https://t.me/c/3194229958/10
Чат курса в TG: https://t.me/c/3194229958/1
Преподаватели: Алина Костромина (@elineii), Азиз Темирханов (@MrDredD).
| Ассистент | Контакты |
|---|---|
| Саламашенкова Дарья | @salamashenkovadasha |
| Родионов Никита | @white_shpengler |
| Чуйкин Никита | @darcy_tremor |
| Журович Яна | @janinaal |
| Демиденко Никита | @kalxon |
| Анастасия Струнова | @bloodaggie |
Материалы курса
Ссылка на плейлист курса на YouTube: YouTube-playlist
Ссылка на плейлист курса в VK: VK-playlist
GitHub репозиторий: https://github.com/elineii/HSE-Time-Series-2025
| Занятие | Тема | Дата | |
|---|---|---|---|
| 1 Запись | Введение, EDA, предобработка, метрики, валидация | 13.11.2025 | |
| 2 Запись | Практика. EDA, метрики, STL-разложение | 24.11.2025 | |
| 3 Запись | Модели экспоненциального сглаживания. ETS-модели | 27.11.2025 | |
| 4 Запись | Стационарность. ACF, PACF. SARIMA(X)-модели | 01.12.2025 | |
| 5 Запись | Автоподбор спецификаций, анализ прогнозов и остатков, многомерные ряды | 04.12.2025 | |
| 6 Запись | Практика. Перевод задачи прогнозирования в задачу машинного обучения. Feature eng. Глобальные модели | 11.12.2025 | |
| 7 Запись | Практика. Стратегии многомерного и многошагового прогнозирования | 22.01.2026 | |
| 8 Запись | Нейронные сети для прогнозирования временных рядов. RNN, LSTM. Специализированные Dlinear, CycleNet | 29.01.2026 | |
| 9 Запись | Нейронные сети для прогнозирования временных рядов. CNN. Специализированные DeepAR, WaveNet, TCN, LSTNet, xLST | 05.02.2026 | |
| 10 Запись | Нейронные сети для прогнозирования временных рядов. Transformer. Специализированные TFT, Informer, Autoformer, FEDformer, PatchTST, iTransformer. Фундаментальные модели LLMTime, Chronos, TimesFM, Moirai, Moirai-MOE | 12.02.2026 | |
| 11 Запись | Практика. Нейронные сети для прогнозирования временных рядов. Практические советы по обучению и отладке. Сравнение моделей | 26.02.2026 | |
| 12 Запись | Генеративные модели | 05.03.2026 | |
| 13 Запись | Бонусные темы. ML & DL | 12.03.2026 |
Заметки "после лекций"
Лекция 2:
Могла возникнуть путаница относительно того, какая симметрия есть у метрики SMAPE, а какой — нет.
Есть симметрия при перестановке реального значения y и прогноза y^: SMAPE(y, y^) = SMAPE(y^, y).
| y | y^ | MAPE | SMAPE |
|---|---|---|---|
| 100 | 110 | 10% | 9.52% |
| 110 | 100 | 9.09% | 9.52% |
Есть симметрия при перепрогнозе и недопрогнозе в одинаковое количество раз k != 0 при одинаковом знаке y и y^: SMAPE(y, y * k) = SMAPE(y, y / k).
| y | y^ | MAPE | SMAPE |
|---|---|---|---|
| 100 | 200 | 100% | 66.67% |
| 100 | 50 | 50% | 66.67% |
В общем случае нет симметрии при перепрогнозе и недопрогнозе на одинаковое количество единиц измерения e: SMAPE(y, y + e) != SMAPE(y, y - e).
| y | y^ | MAPE | SMAPE |
|---|---|---|---|
| 100 | 120 | 20% | 18.18% |
| 100 | 80 | 20% | 22.22% |
Видно при этом, что MAPE симметричен только в третьем случае.
Лекция 3:
Подробнее про фундаментальные модели для временных рядов: ссылка. Полноценная лекция по ним будет позже.
Лекция 4:
- Подробнее про урвнения Юла-Уокера (о том, как оценивать значения PACF): более понятно, но на аглийском, на русском
- Почему PACF для MA выглядит именно так: есть интуиция, до которой мы сначала не дошли, а потом было уже слишком поздно возвращаться — это условие инвертируемости (MA можно представить как AR(∞)). Для AR мы успешно посмотрели, как формируется PACF и почему для него есть резкий обрыв. Теперь представьте, что если при AR(2) будет обрыв на 2-м лаге, то при AR(∞) будет постепенное затухание.
- Как в тесте KPSS проверяется стационарность ряда, если мы явно выносим тренд: В KPSS проверяется unit root (то есть наличие случайного тренда), а линейный тренд обычно выносится a + bt.
- Оба теста показывают, что ряд не является стационарным — ряд не является стационарным
- Оба теста показывают, что ряд является стационарным — ряд является стационарным
- KPSS (ПРИ УЧЕТЕ ТРЕНДА — т. е. как было у нас a + bt) указывает на стационарность, а ADF — на нестационарность — ряд является трендовым стационарным. Для того чтобы сделать ряд строго стационарным, необходимо удалить тренд. Детрендированный ряд проверяется на стационарность.
- KPSS указывает на нестационарность, а ADF — на стационарность — ряд является дифференциально стационарным. Для приведения ряда в стационарное состояние необходимо использовать дифференцирование. Дифференцированный ряд проверяется на стационарность.
- Я перепутала эксцесс (4-й момент) со скошенностью (3-й момент): То, что я пыталась показать с распределением Лапласа хорошо показано тут. А скошенность — это просто смещение горба распределения (но это тоже пример момента наряду с мат. ожиданием и дисперсией).
Лекция 6:
К сожалению, к нам в код закралась ошибка с отсутствием shift() при формировании признаков log, и diff от исходного ряда, что привело к утечке целевой переменной в признаки. Обратите внимание на то, как это исправлено в ноутбуке в репозитории (и в начале 7-й лекции, если вы смотрите записи лекций). Давайте постараемся, чтобы эта досадная ошибка ни у кого из нас не вышла за пределы наших занятий и не появилась в боевой задаче :)
Лекция 11:
Было довольно много дополнительных материалов, которые мы рассматривали на лекции. Приводим их:
- https://huggingface.co/spaces/Salesforce/GIFT-Eval — бенчмарк GIFT-Eval, где можно посмотреть ранжирование моделей по множеству фильтров.
- https://arxiv.org/abs/2410.10393 — статья про GIFT-Eval.
- https://github.com/Nixtla/neuralforecast — репозиторий от Nixtla, где можно запустить нейронные сети для прогнозирования TS из интерфейса, схожего с statsforecast.
- https://github.com/thuml/Time-Series-Library — репозиторий от авторов TimesNet, где менее удобный запуск, но доступно больше моделей.
- https://github.com/sb-ai-lab/tsururu — библиотека от нашей команды также поддерживает запуск нейронных сетей в разных стратегиях (Пример — https://www.kaggle.com/code/elineii/tsururu-demo).
- https://github.com/amazon-science/chronos-forecasting — репозиторий одной из самых известных фундаментальных моделей, которые вы можете опробовать на своих задачах (другие можно найти в GIFT-Eval).
- https://cs.hse.ru/mirror/pubs/share/1017921910.pdf — материалы с другого доклады от нашей команды, часть из которых мы показывали на лекции, когда говорили про проблемы статей и про запуск и результаты фундаментальных моделей.
Формула оценивания
Итог = Округление(0.5 * ДЗ + 0.1 * Тесты + 0.2 * Проект + 0.2 * Э),
- ДЗ — средняя оценка за все домашние задания,
- Тесты — оценка за тесты после группы объединенных одной темой лекций,
- Э — оценка за экзамен.
Округление арифметическое.
Автомат: Определим накопленную оценку как Накоп = MIN(10, Округление((0.5 * ДЗ + 0.1 * Тесты + 0.2 * Проект) / 0.8)).
Если среднее по каждому из элементов Накопа >=8, то студент может получить Накоп в качестве итоговой оценки, не приходя на экзамен.
Домашние задания
- ДЗ1. Выдается после лекции 3. Дедлайн через 14 дней.
ДЗ посвящено построению end-to-end пайплайна прогнозирования от EDA, предобработки ряда до сравнения между собой нескольких классических моделей из изучаемых на лекциях.
Первое домашнее задание уже ждет, когда вы его начнете решать: https://github.com/elineii/HSE-Time-Series-2025/blob/main/HW_1/HW_1__unsolved.ipynb
Срок сдачи: 16.12.2025 23:59 MSK
- ДЗ2. Выдается после Лекции 6. Дедлайн через 14 дней.
ДЗ посвящено построению признаков и применению градиентного бустинга для решения задачи прогнозирования многомерного временного ряда.
- ДЗ3. Выдается после Лекции 9. Дедлайн через 14 дней.
ДЗ посвящено применению и модификации изучаемых DL подходов для решения задачи прогнозирования многомерного временного ряда.
- Проект! Выдается после Лекции 11. Дедлайн через 14 дней.
Проект посвящен проверке исследовательской гипотезы, которая расширяет рассматриваемые на занятиях темы ЛИБО end-to-end решения боевой задачи анализа TS.
Тесты
- Тест 1 (Введение и классические модели). Выдан после Лекции 5.
https://forms.yandex.ru/u/6931633f9029027681970280
В каждом вопросе может быть от 1 до 4 (включительно) правильных вариантов ответа.
Срок сдачи: 14.12 23:59
Литература (будет пополняться)
Хорошие вводные учебники по временным рядам:
- Р. Хайндман, Дж. Атанасопулос — Прогнозирование: принципы и практика (рус.).
- https://otexts.com/fpppy/ — он же в оригинале и с примерами на Python (англ.). Есть еще несколько других версий этого учебника. Например, https://otexts.com/fpp3/ с примерами на R, но зато с сопровождением в видеоформате.
- Э. Нильсон — Практический анализ временных рядов. Прогнозирование со статистикой и машинное обучение (рус.)
Статьи (все англ.):
- Wang, Y., Wu, H., Dong, J., Liu, Y., Wang, C., Long, M., & Wang, J. (2024). Deep time series models: A comprehensive survey and benchmark. arXiv preprint arXiv:2407.13278.
- Hewamalage, H., Ackermann, K., & Bergmeir, C. (2023). Forecast evaluation for data scientists: common pitfalls and best practices. Data Mining and Knowledge Discovery, 37(2), 788-832.
- Liang, Y., Wen, H., Nie, Y., Jiang, Y., Jin, M., Song, D., ... & Wen, Q. (2024, August). Foundation models for time series analysis: A tutorial and survey. In Proceedings of the 30th ACM SIGKDD conference on knowledge discovery and data mining (pp. 6555-6565).