Лекция 2.6. Прогнозирование в логистике: методы и точность
Содержание
- Лекция 2.6. Прогнозирование в логистике: методы и точность
- Содержание
- Сущность и проблемы прогнозирования
- Прямое и косвенное прогнозирование
- Методы экспертных оценок
- Формы прогноза
- Анализ временных рядов
- Казуальные методы (регрессия)
- Имитационное моделирование в прогнозировании
- Машинное обучение в прогнозировании
- Оценка точности прогноза
- Применение на машиностроительном предприятии
- Связь с лабораторной работой
- Ключевые выводы по лекции
- Контрольные вопросы
- Рекомендуемая литература
Сущность и проблемы прогнозирования
Прогнозирование — процесс предсказания будущих значений показателей на основе анализа исторических данных и выявления закономерностей развития.
В логистике прогноз является входом для всех плановых решений: объёма закупок, уровня запасов, потребности в транспорте и складских мощностях, численности персонала. Ошибка прогноза мультиплицируется по всей цепи поставок — от закупки сырья до отгрузки готовой продукции.
Роль прогноза в логистической системе
| Логистическое решение | Какой прогноз нужен | Последствие ошибки |
|---|---|---|
| Закупка материалов | Потребность производства (месяц, квартал) | Дефицит → простой; излишек → неликвиды |
| Управление запасами | Спрос + его вариабельность (σ) | Заниженный страховой запас → срыв; завышенный → заморозка средств |
| Транспортное планирование | Объём и направление грузопотоков | Недозагрузка парка или дефицит подвижного состава |
| Складские мощности | Объём хранения, пиковые нагрузки | Нехватка ячеек в пик, простой площадей вне пика |
| Персонал | Трудозатраты по периодам | Переработки в пик, простой в межсезонье |
| Бюджетирование | Выручка, логистические затраты | Отклонение бюджета, кассовые разрывы |
Основные проблемы прогнозирования в логистике
| Проблема | Описание | Влияние |
|---|---|---|
| Нестабильность спроса | Сезонность, маркетинговые акции, кризисы | Ошибки прогноза до 50% |
| Недостаток данных | Отсутствие истории по новым товарам/рынкам | Невозможность использования статистических методов |
| Множественность факторов | Погода, политика, законодательство | Сложность учёта всех влияний |
| Задержки информации | Несвоевременное получение данных от участников цепи | Устаревшие прогнозы |
| Эффект хлыста (Bullwhip) | Усиление колебаний спроса вверх по цепи | Избыточные запасы у поставщиков |
| Структурные сдвиги | Санкции, уход поставщиков, смена рынков | Исторические закономерности перестают работать |
Горизонты прогнозирования
| Горизонт | Период | Задачи | Методы |
|---|---|---|---|
| Краткосрочный | До 3 месяцев | Оперативные закупки, графики отгрузок, комплектование смен | Временные ряды, скользящая средняя, экспоненциальное сглаживание |
| Среднесрочный | 3 месяца — 2 года | Планирование производства, запасов, мощностей | Регрессия, SARIMA, Prophet, имитационное моделирование |
| Долгосрочный | Более 2 лет | Стратегия, инвестиции в инфраструктуру | Экспертные методы, сценарное моделирование, казуальные модели |
Правило: чем короче горизонт, тем выше достижимая точность. Краткосрочный прогноз на месяц обычно в 2–3 раза точнее годового, поскольку случайные отклонения успевают компенсировать друг друга, а структура закономерностей не успевает измениться.
Самый распространённый способ — экстраполяция
Принцип: Распространение тенденций, сложившихся в прошлом, на будущее. Метод предполагает, что текущие закономерности сохранятся в ближайшей перспективе.
Пример. Прогнозирование спроса на мороженое:
- Анализ продаж за 3 года показывает рост спроса на 25% в июне–августе.
- На основе экстраполяции компания увеличивает закупки на 20% перед летним сезоном.
- Фактический спрос вырос на 22% — ошибка прогноза = 3%.

Ограничение экстраполяции: метод работает только при сохранении структуры ряда. При структурных сдвигах (пандемия, санкции, изменение законодательства) экстраполяция даёт систематическую ошибку, и её необходимо дополнять экспертной корректировкой.
Прямое и косвенное прогнозирование
Прямое прогнозирование
Определение: Определение будущих значений самой прогнозируемой величины без привлечения дополнительных факторов.
Примеры:
- Прогноз цен на нефть на основе исторических котировок.
- Прогноз объёма продаж компании по данным за предыдущие периоды.
- Прогноз тарифов на грузоперевозки на основе динамики прошлых лет.
Косвенное прогнозирование
Определение: Основывается на знании зависимости прогнозируемой величины от базового фактора. Сначала прогнозируется фактор, затем — целевая величина.
Пример 1. Прогноз грузопотока в новом жилом районе:
- Базовый фактор: количество зарегистрированных жителей.
- Зависимость: на 1000 жителей приходится ~15 тонн грузопотока в месяц.
- Прогноз населения на год вперёд: +5000 человек.
- Прогноз грузопотока: 5 × 15 = 75 тонн/месяц дополнительно.
Пример 2. Прогноз объёма перевозок по Северному морскому пути:
- Базовый фактор: количество судов, вводимых в эксплуатацию.
- Зависимость: 1 новое судно = +50 тыс. тонн грузооборота в год.
- Прогноз ввода судов: 8 единиц.
- Прогноз грузооборота: +400 тыс. тонн.
Сравнение подходов
| Критерий | Прямое | Косвенное |
|---|---|---|
| Сложность | Низкая | Высокая (требует выявления зависимостей) |
| Точность при стабильном спросе | Высокая | Средняя |
| Точность при изменении рынка | Низкая | Высокая (учитывает факторы-драйверы) |
| Требуемые данные | История целевого показателя | История фактора + коэффициент связи |
| Когда применять | Стабильные зрелые рынки | Новые рынки, структурные изменения |
Методы экспертных оценок
Суть экспертного подхода
Основывается на субъективной оценке текущего момента и перспектив развития специалистами (экспертами) в отрасли. Экспертные методы формализуют интуицию и опыт специалистов, превращая их в количественные оценки.
Когда применяется
- Отсутствуют исторические данные (новый рынок, новый продукт).
- Невозможно получить информацию путём измерения (политические риски).
- Происходят резкие структурные изменения рынка (пандемия, санкции).
- Необходимо учесть факторы, не имеющие количественного выражения.
Важно: экспертные оценки дополняют количественные методы, но не заменяют их. Оптимальный подход — комбинация статистических моделей и экспертной корректировки.
Метод Дельфи
- Анонимный опрос экспертов (исключает давление авторитетов).
- Итеративное уточнение оценок (3–4 раунда).
- После каждого раунда участники видят обобщённые оценки группы и могут скорректировать свою.
- Результат — консенсусный прогноз с оценкой разброса мнений.
Пример. Оценка грузопотоков в Арктике:
- Компания планирует запустить логистический хаб в Мурманске.
- Исторических данных по региону недостаточно.
- Привлечены 12 экспертов: логисты, экономисты, представители портов.
- Метод Дельфи: 3 раунда опроса → консенсусный прогноз грузопотока = 120 тыс. тонн в год.
Мозговой штурм и согласованность мнений
Мозговой штурм:
- Генерация идей группой специалистов.
- Запись всех предложений без критики на первом этапе.
- Последующая оценка и отбор.
Оценка согласованности мнений:
- Выявление консенсуса между экспертами.
- Расчёт коэффициента конкордации (согласованности рангов).
- При низкой согласованности — дополнительный раунд обсуждения.
Пример. Прогноз влияния новых таможенных правил:
- Вводится обязательная электронная декларация с 01.01.2025.
- Эксперты оценивают увеличение времени прохождения таможни на 4–8 часов.
- Корректировка графиков поставок: добавление 1 дня резерва.
Сравнение экспертных методов
| Метод | Плюсы | Минусы | Когда применять |
|---|---|---|---|
| Дельфи | Анонимность, сходимость к консенсусу, документированность | Длительность (недели), утомляемость экспертов | Стратегические прогнозы, оценка новых рынков |
| Мозговой штурм | Скорость, синергия идей | Давление группы, доминирование лидеров | Генерация сценариев, поиск решений |
| Комиссии | Коллективная ответственность | Усреднение оценок, конформизм | Быстрые оперативные оценки |
| Опросы потребителей | Прямая информация о намерениях | Намерения ≠ действия | Прогноз спроса на новый продукт |
Формы прогноза
Точечный прогноз
Определение: Прогноз конкретной цифры без указания границ погрешности.
Пример: «Объём продаж в 2025 году составит 150 млн руб.»
Недостаток: Не учитывает неопределённость; на практике фактическое значение редко совпадает с прогнозом точно.
Интервальный прогноз
Определение: Установление границ, внутри которых будет находиться прогнозируемое значение с заданным уровнем значимости (обычно 95%).
Пример: «Объём продаж в 2025 году составит от 142 до 158 млн руб. с вероятностью 95%»
Преимущество: Позволяет оценить риски и подготовить сценарные планы. Ширина интервала напрямую связана с ошибкой модели: при нормальном распределении ошибок 95%-интервал ≈ прогноз ± 1,96σ.
Прогноз распределения вероятностей
Определение: Определение вероятности попадания фактического значения в одну из нескольких групп (пессимистичный, базовый, оптимистичный сценарии).
Пример. Прогноз спроса на новую модель смартфона:
- Пессимистичный сценарий (20% вероятность): 50 тыс. шт.
- Базовый сценарий (60% вероятность): 85 тыс. шт.
- Оптимистичный сценарий (20% вероятность): 120 тыс. шт.
Ожидаемое значение: $E = 0{,}2 \cdot 50 + 0{,}6 \cdot 85 + 0{,}2 \cdot 120 = 10 + 51 + 24 = 85$ тыс. шт.
Сравнение форм прогноза
| Форма | Результат | Оценка ошибки | Сложность | Применение |
|---|---|---|---|---|
| Точечный | Одно число | Нет | Низкая | Краткосрочные решения с низкими рисками |
| Интервальный | Диапазон | Да (границы) | Средняя | Планирование запасов, бюджетирование |
| Вероятностный | Распределение | Да (вероятности) | Высокая | Стратегическое планирование, управление рисками |
Рекомендация: для ответственных решений (инвестиции в складскую инфраструктуру, закупка автопарка, государственный контракт (44-ФЗ)) использовать интервальный или вероятностный прогноз.
Анализ временных рядов
Временной ряд — численные значения показателя, расположенные в хронологическом порядке за последовательные интервалы или моменты времени.
Компоненты временного ряда
| Компонент | Обозначение | Описание |
|---|---|---|
| Тренд | T | Долгосрочная тенденция развития (рост, снижение, стабильность) |
| Сезонность | S | Регулярные колебания с фиксированным периодом (месяц, квартал, год) |
| Циклические колебания | C | Волнообразные изменения с переменным периодом (экономические циклы) |
| Случайная компонента | ε | Непрогнозируемые отклонения |
Модели разложения ряда:
- Аддитивная: $Y_t = T_t + S_t + C_t + \varepsilon_t$ — амплитуда колебаний постоянна во времени.
- Мультипликативная: $Y_t = T_t \cdot S_t \cdot C_t \cdot \varepsilon_t$ — амплитуда растёт вместе с уровнем ряда (типично для растущих продаж).
Показатели анализа динамики
Абсолютный прирост:
\[\Delta = Уровень_{отч} - Уровень_{баз}\]Темп роста:
\[Т_р = \frac{Уровень_{отч}}{Уровень_{баз}} \cdot 100\%\]Темп прироста:
\[Т_{пр} = Т_р - 100\%\]Абсолютное значение 1% прироста:
\[А = \frac{\Delta}{Т_{пр}}\]Пример анализа динамики
Данные продаж логистической компании (тыс. руб.):
| Месяц | Янв | Фев | Мар | Апр | Май | Июн |
|---|---|---|---|---|---|---|
| Продажи | 1200 | 1250 | 1300 | 1400 | 1550 | 1600 |
| Абс. прирост | — | +50 | +50 | +100 | +150 | +50 |
| Темп роста | — | 104,2% | 104,0% | 107,7% | 110,7% | 103,2% |
Вывод: Устойчивый рост продаж с ускорением в апреле–мае (сезонный пик).

Метод скользящей средней
Простая скользящая средняя MA(k) сглаживает случайные колебания, усредняя k последних наблюдений:
\[MA_t(k) = \frac{Y_{t} + Y_{t-1} + ... + Y_{t-k+1}}{k}\]Прогноз на следующий период: $\hat{Y}_{t+1} = MA_t(k)$.
Пример. Ряд потребления электронных компонентов за последние месяцы: …, 240, 225, 250, 230, 260.
\[MA(3) = \frac{250 + 230 + 260}{3} = 246{,}7 \text{ шт.}\]Выбор k: большое k — сильное сглаживание, но запаздывание при тренде; малое k — быстрая реакция, но шум. Для рядов с трендом скользящая средняя систематически отстаёт от факта.
Экспоненциальное сглаживание
Простое экспоненциальное сглаживание рекурсивно обновляет прогноз, придавая больший вес последним наблюдениям:
\[F_{t+1} = F_t + \alpha (Y_t - F_t), \quad 0 < \alpha \leq 1\]где $\alpha$ — параметр сглаживания.
Пример. Пусть $F_1 = 182$ (первое наблюдение), $\alpha = 0{,}3$, факт $Y_1 = 182$:
- $F_2 = 182 + 0{,}3 \cdot (182 - 182) = 182{,}0$
- $F_3 = 182 + 0{,}3 \cdot (190 - 182) = 184{,}4$
- $F_4 = 184{,}4 + 0{,}3 \cdot (178 - 184{,}4) = 182{,}5$
- и так далее.
Выбор α: при α → 1 модель близка к наивной (прогноз = последнее значение), при α → 0 — к среднему за весь период. Типичные значения: 0,1–0,3 для стабильных рядов, 0,3–0,5 для быстро меняющихся. Модификации — сглаживание с трендом (Холта) и с сезонностью (Холта–Уинтерса).
Линейный тренд по методу наименьших квадратов
Линейная трендовая модель $Y_t = b_0 + b_1 t$ оценивается по МНК:
\[b_1 = \frac{\sum (t - \bar{t})(Y_t - \bar{Y})}{\sum (t - \bar{t})^2}, \quad b_0 = \bar{Y} - b_1 \bar{t}\]Полный расчётный пример. Ряд месячного потребления электронных компонентов на предприятии (24 наблюдения) с трендом и сезонностью:
| t | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Y | 182 | 190 | 178 | 205 | 212 | 198 | 220 | 215 | 230 | 225 | 240 | 250 |
| t | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Y | 195 | 205 | 192 | 222 | 230 | 214 | 238 | 232 | 248 | 243 | 260 | 272 |
Шаг 1. Средние значения: $\bar{t} = 12{,}5$; $\bar{Y} = 220{,}7$ шт.
Шаг 2. Коэффициенты тренда (по МНК): $b_1 = 2{,}61$; $b_0 = 220{,}7 - 2{,}61 \cdot 12{,}5 = 187{,}98$.
Трендовая модель: $\hat{Y}_t = 187{,}98 + 2{,}61 t$.
Шаг 3. Прогноз на следующие 3 месяца (без учёта сезонности):
- t = 25: $\hat{Y} = 187{,}98 + 2{,}61 \cdot 25 = 253{,}2$ шт.
- t = 26: $\hat{Y} = 187{,}98 + 2{,}61 \cdot 26 = 255{,}8$ шт.
- t = 27: $\hat{Y} = 187{,}98 + 2{,}61 \cdot 27 = 258{,}4$ шт.
Интерпретация $b_1$: потребление электронных компонентов растёт в среднем на 2,6 шт./мес.
Сезонность: индексы и десезонализация
Шаг 1. Индексы сезонности — среднее значение месяца за полные годы, делённое на общее среднее:
| Месяц | Янв | Фев | Мар | Апр | Май | Июн |
|---|---|---|---|---|---|---|
| Среднее за 2 года | 188,5 | 197,5 | 185,0 | 213,5 | 221,0 | 206,0 |
| Индекс | 0,854 | 0,895 | 0,838 | 0,968 | 1,002 | 0,934 |
| Месяц | Июл | Авг | Сен | Окт | Ноя | Дек |
|---|---|---|---|---|---|---|
| Среднее за 2 года | 229,0 | 223,5 | 239,0 | 234,0 | 250,0 | 261,0 |
| Индекс | 1,038 | 1,013 | 1,083 | 1,060 | 1,133 | 1,183 |
Вывод: декабрьский пик (индекс 1,183) связан с закрытием годовых планов по государственным контрактам, весенний провал (март, 0,838) — с межбюджетным периодом.
Шаг 2. Сезонно-скорректированный прогноз — тренд умножается на индекс месяца:
| Период | Тренд | Индекс | Прогноз |
|---|---|---|---|
| t = 25 (январь) | 253,2 | 0,854 | 216,3 |
| t = 26 (февраль) | 255,8 | 0,895 | 229,0 |
| t = 27 (март) | 258,4 | 0,838 | 216,6 |
Шаг 3. Десезонализация фактических данных для выявления «чистого» тренда: $Y_{десез} = Y_t / S_t$. Например, факт 250 шт. в декабре: $250 / 1{,}183 = 211{,}3$ — это ниже среднего уровня ряда, т. е. декабрьский «пик» объясняется только сезонностью.
Казуальные методы (регрессия)
Суть казуального подхода
Построение модели поведения экономического объекта на основе причинно-следственных связей между прогнозируемой величиной и факторами-драйверами. В отличие от временных рядов, казуальные модели объясняют, почему меняется показатель, и позволяют прогнозировать последствия управляющих воздействий.
Модель линейной регрессии
\[Y = b_0 + b_1 X_1 + b_2 X_2 + ... + b_n X_n\]Где:
- $Y$ — прогнозируемая величина;
- $X_i$ — факторы-драйверы;
- $b_0$ — свободный член (базовый уровень при нулевых факторах);
- $b_i$ — коэффициенты модели (влияние каждого фактора).
Пример применения
Прогноз грузоперевозок:
\[Грузоперевозки = b_0 + b_1 \cdot ВВП + b_2 \cdot Промпроизводство + b_3 \cdot Цены\_на\_топливо\]Результаты моделирования:
- $b_1 = 0{,}8$ (рост ВВП на 1% → рост перевозок на 0,8%);
- $b_2 = 0{,}6$ (рост промпроизводства на 1% → рост перевозок на 0,6%);
- $b_3 = -0{,}3$ (рост цен на топливо на 1% → снижение перевозок на 0,3%).
Пример прогноза спроса на бытовую технику в регионе:
- Факторы: $X_1$ = средний доход населения (тыс. руб.), $X_2$ = количество магазинов электроники (шт.).
- Уравнение регрессии: $Y = -50 + 2{,}5 X_1 + 8 X_2$.
- Прогноз на следующий год: $X_1 = 65$ тыс. руб., $X_2 = 120$ магазинов.
- $Y = -50 + 2{,}5 \cdot 65 + 8 \cdot 120 = -50 + 162{,}5 + 960 = 1072{,}5$ тыс. шт.
Требования к факторам модели
| Критерий | Описание |
|---|---|
| Экономический смысл | Фактор должен иметь логическую связь с прогнозируемой величиной |
| Доступность данных | Информация о факторе должна быть доступна для прогнозного периода |
| Отсутствие мультиколлинеарности | Факторы не должны сильно коррелировать друг с другом |
| Статистическая значимость | Коэффициенты регрессии должны быть значимыми (p < 0,05) |
Важно: выбор факторов требует глубокого экономического анализа, а не только статистической значимости. Ошибочный выбор факторов приводит к некорректным прогнозам: модель может «подогнаться» под исторические данные (переобучение) и потерять предсказательную силу.
Имитационное моделирование в прогнозировании
Суть метода
Имитационное моделирование — метод прогнозирования, при котором создаётся компьютерная модель реальной логистической системы для проведения экспериментов в виртуальной среде (подробно — Мицель, Грибанова; см. также лекцию 2.5).
Преимущества:
- Детальный учёт структуры и технологии логистической системы.
- Прогнозирование с учётом случайных факторов (поломки оборудования, задержки поставок).
- Проведение «что, если»-анализа без риска для реальной операционной деятельности.
- Визуализация процессов и выявление «узких мест».
Области применения:
- Оптимизация складских операций (размещение зон хранения, количество погрузчиков).
- Планирование транспортных потоков (количество рейсов, тип подвижного состава).
- Анализ пропускной способности терминалов и узлов.
- Оценка влияния срывов поставок на устойчивость цепи.
Сценарное прогнозирование на имитационной модели
Имитационная модель — инструмент вероятностного прогноза: результат — не одно число, а распределение исходов по множеству прогонов (метод Монте-Карло).
Пример. Моделирование работы распределительного центра:
- Модель включает: 12 зон хранения, 8 погрузчиков, 40 операторов комплектации, 15 отгрузочных рамп.
- Имитация пиковой нагрузки («чёрная пятница»): +300% заказов за 4 часа.
- Результаты:
- Текущая конфигурация: простои на отгрузке 45 минут, 12% заказов не успевают на вечернюю доставку.
- Оптимизированный сценарий (+2 погрузчика, +10 операторов): простои сокращены до 8 минут, 99% заказов отгружены вовремя.
- Экономический эффект: дополнительные затраты на персонал окупаются за 3 месяца за счёт снижения штрафов за просрочку.
Типовая схема эксперимента: задать распределения входных случайных величин (интенсивность заявок, время обработки, время поставки) → прогнать N реализаций (1000+) → построить распределение выходного показателя → выбрать решение по квантилям (например, мощность, обеспечивающую выполнение плана в 95% сценариев).
Машинное обучение в прогнозировании
ARIMA и SARIMA
ARIMA(p, d, q) — авторегрессионная интегрированная скользящая средняя:
- AR(p) — текущее значение зависит от p предыдущих (авторегрессия);
- I(d) — ряд приводится к стационарному d-кратным дифференцированием;
- MA(q) — ошибка зависит от q предыдущих случайных возмущений (скользящее среднее ошибок).
SARIMA(p, d, q)(P, D, Q, s) добавляет сезонные компоненты с периодом s (для месячных данных s = 12). Подбор порядков — по автокорреляционной (ACF) и частичной автокорреляционной (PACF) функциям или автоматическим поиском (auto_arima) по информационным критериям AIC/BIC.
Prophet
Аддитивная модель (разработка Meta): $y(t) = g(t) + s(t) + h(t) + \varepsilon_t$, где g — кусочно-линейный или логистический тренд с точками изменения, s — ряд Фурье для сезонности, h — эффекты праздников и событий. Устойчива к пропускам и выбросам, настраивается без глубоких знаний статистики.
LSTM
Рекуррентная нейронная сеть с долгой краткосрочной памятью: удерживает зависимости на больших горизонтах благодаря вентилям (забвения, входа, выхода). Требует много данных и тщательной настройки, работает как «чёрный ящик».
XGBoost
Градиентный бустинг на решающих деревьях: каждое следующее дерево исправляет ошибки предыдущих. Для прогнозирования временных рядов ряд преобразуется в таблицу признаков (лаги, скользящие статистики, календарные признаки). Лидер по точности на табличных данных, умеренно интерпретируем (важности признаков).
Сравнение ML-методов
| Метод | Плюсы | Минусы | Когда применять |
|---|---|---|---|
| ARIMA/SARIMA | Строгая статистическая база, доверительные интервалы, автоподбор | Плохо ловит нелинейности и внешние факторы | Стабильные ряды 50+ наблюдений с автокорреляцией |
| Prophet | Простота, устойчивость к пропускам, учёт праздников | Ниже точность на сложных нелинейных зависимостях | Ряды 30+ наблюдений с выраженной сезонностью и событиями |
| LSTM | Максимальная точность на сложных зависимостях, много факторов | Требует 1000+ наблюдений, GPU, неинтерпретируема | Большие данные, множество внешних регрессоров |
| XGBoost | Высокая точность на табличных данных, важности признаков, скорость | Требуется конструирование признаков из ряда | Прогноз с множеством факторов (пробки, погода, тип груза) |
Пример построения модели SARIMA в Python
import pandas as pd
from statsmodels.tsa.statespace.sarimax import SARIMAX
from sklearn.metrics import mean_absolute_error
import math
# Ряд месячного потребления электронных компонентов (24 наблюдения)
data = [182, 190, 178, 205, 212, 198, 220, 215, 230, 225, 240, 250,
195, 205, 192, 222, 230, 214, 238, 232, 248, 243, 260, 272]
ts = pd.Series(data, index=pd.date_range("2023-01", periods=24, freq="MS"))
# Разделение на обучающую и тестовую выборки (последние 6 месяцев)
train, test = ts[:-6], ts[-6:]
# Модель SARIMA(1,0,0)(1,1,0)[12]: AR(1) + сезонное дифференцирование
model = SARIMAX(train, order=(1, 0, 0),
seasonal_order=(1, 1, 0, 12))
result = model.fit()
# Прогноз на тестовый период + доверительные интервалы
forecast = result.get_forecast(steps=6)
pred = forecast.predicted_mean
ci = forecast.conf_int(alpha=0.05) # 95%-й интервал
# Метрики точности
mae = mean_absolute_error(test, pred)
rmse = math.sqrt(((test - pred) ** 2).mean())
mape = (abs((test - pred) / test)).mean() * 100
print(f"MAE={mae:.2f} RMSE={rmse:.2f} MAPE={mape:.2f}%")
# Прогноз на следующие 3 месяца с визуализацией
future = result.get_forecast(steps=3)
future.predicted_mean.plot()
Общая схема выбора метода прогнозирования
---
config:
look: handDrawn
theme: neutral
---
flowchart TD
A{Есть исторические данные?} -->|нет| B[Экспертные методы<br/>Дельфи, мозговой штурм]
A -->|да| C{Длина ряда}
C -->|меньше 30 наблюдений| D[Скользящая средняя,<br/>экспоненциальное сглаживание]
C -->|30-100| E{Есть сезонность<br/>и внешние факторы?}
C -->|более 1000| F[LSTM, XGBoost<br/>с внешними признаками]
E -->|только сезонность| G[SARIMA, Prophet]
E -->|много факторов| H[Регрессия, XGBoost]
D --> I[Оценка точности<br/>MAE, RMSE, MAPE]
G --> I
H --> I
F --> I
B --> I
I --> J{MAPE в норме<br/>для группы ABC?}
J -->|да| K[Прогноз в планирование<br/>запасов и закупок]
J -->|нет| L[Смена метода /<br/>больше данных]
L --> C
Оценка точности прогноза
Основные метрики
Пусть $y_i$ — фактические значения, $\hat{y}_i$ — прогнозные, $n$ — число наблюдений проверочного периода.
MAE (Mean Absolute Error) — средняя абсолютная ошибка:
\[MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|\]Измеряется в единицах показателя; интерпретируется как «среднее отклонение прогноза от факта».
RMSE (Root Mean Square Error) — среднеквадратичная ошибка:
\[RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}\]Штрафует крупные ошибки сильнее, чем MAE (квадратично). Если RMSE ≫ MAE — ошибки распределены неравномерно: есть редкие, но крупные промахи.
MAPE (Mean Absolute Percentage Error) — средняя абсолютная процентная ошибка:
\[MAPE = \frac{100\%}{n}\sum_{i=1}^{n}\left|\frac{y_i - \hat{y}_i}{y_i}\right|\]Относительная метрика — позволяет сравнивать точность прогнозов разных по масштабу показателей и номенклатурных позиций.
Пример расчёта метрик по шагам
Данные (потребление электронных компонентов, шт.):
| Период | Факт $y_i$ | Прогноз $\hat{y}_i$ | Ошибка $e_i = y_i - \hat{y}_i$ | $ | e_i | $ | $e_i^2$ | $ | e_i | /y_i$ |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 240 | 232 | 8 | 8 | 64 | 0,0333 | ||||
| 2 | 225 | 228 | −3 | 3 | 9 | 0,0133 | ||||
| 3 | 250 | 241 | 9 | 9 | 81 | 0,0360 | ||||
| 4 | 230 | 238 | −8 | 8 | 64 | 0,0348 | ||||
| 5 | 260 | 249 | 11 | 11 | 121 | 0,0423 | ||||
| Сумма | — | — | — | 39 | 339 | 0,1598 |
Шаг 1. MAE:
\[MAE = \frac{39}{5} = 7{,}8 \text{ шт.}\]Прогноз в среднем отклоняется от факта на 7,8 шт.
Шаг 2. RMSE:
\[RMSE = \sqrt{\frac{339}{5}} = \sqrt{67{,}8} = 8{,}23 \text{ шт.}\]RMSE больше MAE (8,23 > 7,8) — есть период с повышенной ошибкой (период 5, e = 11).
Шаг 3. MAPE:
\[MAPE = \frac{100\%}{5} \cdot 0{,}1598 = 3{,}2\%\]Вывод: отличная точность прогноза (MAPE = 3,2% ≤ 10%, категория A).
Проверка расчётов в Python:
import math
fact = [240, 225, 250, 230, 260]
pred = [232, 228, 241, 238, 249]
n = len(fact)
mae = sum(abs(f - p) for f, p in zip(fact, pred)) / n
rmse = math.sqrt(sum((f - p) ** 2 for f, p in zip(fact, pred)) / n)
mape = 100 * sum(abs((f - p) / f) for f, p in zip(fact, pred)) / n
print(f"MAE={mae:.2f} RMSE={rmse:.2f} MAPE={mape:.2f}%")
# MAE=7.80 RMSE=8.23 MAPE=3.20%
Сравнение моделей на тестовой выборке
Условия: обучающая выборка — 18 месяцев ряда электронных компонентов из примера выше, тестовая — последние 6 месяцев (факт: 238, 232, 248, 243, 260, 272 шт.).
| Метрика | Линейный тренд | MA(3) | Наивный прогноз |
|---|---|---|---|
| MAE, шт. | 8,23 | 14,18 | 13,33 |
| RMSE, шт. | 10,77 | 15,94 | 14,87 |
| MAPE, % | 3,20 | 5,60 | 5,35 |
Выводы:
- Трендовая модель точнее скользящей средней в 1,7 раза (по MAE): MA(3) систематически отстаёт от растущего ряда.
- Наивный прогноз («завтра = сегодня») оказался лучше MA(3) — классический признак ряда с трендом, где сглаживание вносит запаздывание.
- Любую модель обязательно сравнивают с наивным прогнозом: если модель не превосходит наивную, её сложность не оправдана.
Интерпретация MAPE
| MAPE | Оценка точности | Рекомендация |
|---|---|---|
| ≤ 10% | Отличная (A) | Прогноз можно использовать для планирования |
| 10–20% | Хорошая (B) | Прогноз приемлем для оперативного планирования |
| 20–30% | Удовлетворительная (C) | Требуется улучшение модели |
| > 30% | Неудовлетворительная | Прогноз ненадёжен, нужен другой метод |
Дифференцированные нормативы по группам ABC-анализа (связь с лекцией 1.6):
| Группа номенклатуры | Целевой MAPE | Обоснование |
|---|---|---|
| A (дорогие, высокий спрос) | ≤ 10% | Цена ошибки высока: дефицит срывает производство, излишек замораживает значительные средства |
| B (средняя стоимость) | ≤ 20% | Баланс затрат на точность и последствий ошибки |
| C (дешёвые, низкий спрос) | ≤ 30–40% | Точность дороже самой ошибки; допустим укрупнённый прогноз |
Ограничения MAPE: не определён при $y_i = 0$; асимметричен (штрафует занижение прогноза сильнее, чем завышение). Альтернативы: WAPE (взвешенная по объёму), MASE (относительно наивного прогноза).
Связь точности прогноза и страхового запаса
Точность прогноза напрямую конвертируется в уровень запасов. Страховой запас при нормальном распределении ошибки прогноза:
\[Z = z \cdot \sigma_{ош}\]где $z$ — квантиль нормального распределения (для 95% уровня обслуживания $z = 1{,}65$), $\sigma_{ош}$ — стандартная ошибка прогноза (≈ RMSE модели).
| Модель | RMSE = σош, шт. | Страховой запас Z = 1,65·σ | Относительно базовой модели |
|---|---|---|---|
| Линейный тренд | 10,8 | 17,8 шт. | 100% |
| MA(3) | 15,9 | 26,3 шт. | 148% |
| SARIMA (прогноз) | 6,8 | 11,2 шт. | 63% |
Экономический смысл: переход от MA(3) к SARIMA снижает страховой запас на ~57%. При цене хранения электронных компонентов 100 руб./шт. в год и среднем цикле пополнения 1 месяц экономия на хранении составляет: $(26{,}3 - 11{,}2) \cdot 100 / 12 \approx 126$ руб. на позицию в месяц; при номенклатуре 500 позиций группы A — ~63 тыс. руб./мес., плюс высвобождение оборотных средств.

Применение на машиностроительном предприятии
Прогнозирование на машиностроительном предприятии, выполняющем государственные контракты (кейс курса — АО «Ракета», см. лекцию 1.1), имеет принципиальные отличия от коммерческого сектора.
Особенности прогнозирования на промышленном предприятии
| Особенность | Следствие для методов прогнозирования |
|---|---|
| План по государственному контракту задаётся сверху | Спрос на продукцию не прогнозируется, а устанавливается контрактом; прогнозируется потребность в материалах и комплектующих |
| Длинные циклы поставки электронных компонентов (до 90 дней) | Прогноз должен опережать точку заказа минимум на L + горизонт закупки |
| Единичное и мелкосерийное производство | По многим позициям ряды короткие и прерывистые (мало наблюдений) — статистические методы неприменимы, нужна декомпозиция спецификаций |
| Импортозамещение | Структурные сдвиги: история по старым поставщикам нерелевантна, нужны экспертные оценки |
| Сезонность закрытия государственных контрактов | Пик потребления и отгрузок в IV квартале — обязательный учёт сезонных индексов |
| Ответственность за срыв | Уровень обслуживания ~100% → высокие квантили z → критична точность прогноза (RMSE) |
Прогноз потребности в электронных компонентах для АО «Ракета»
Постановка: спрогнозировать месячную потребность в микросхеме операционной (позиция группы AX из лекции 1.3) на I квартал следующего года для планирования закупок.
Шаг 1. Декомпозиция спроса. Потребность производства = выпуск составных частей промышленных агрегатов × норма расхода комплектующих по спецификации. Ряд consumption формируется из плана государственного контракта (детерминированная часть) и истории ремонтов/брака (стохастическая часть).
Шаг 2. Построение модели. Для 24-месячного ряда применяем тренд-сезонную модель из примера выше:
\[\hat{Y}_t = (187{,}98 + 2{,}61 t) \cdot S_{мес}\]Шаг 3. Прогноз с доверительным интервалом (I квартал, t = 25–27):
| Месяц | Тренд × индекс | Точечный прогноз | 95%-интервал (±1,96·6,8) | Заказ с учётом L = 90 дней |
|---|---|---|---|---|
| Январь (t=25) | 253,2 · 0,854 | 216 шт. | 203–230 | размещается в октябре |
| Февраль (t=26) | 255,8 · 0,895 | 229 шт. | 216–242 | размещается в ноябре |
| Март (t=27) | 258,4 · 0,838 | 217 шт. | 203–230 | размещается в декабре |
Шаг 4. Увязка с точкой заказа. Поскольку L = 90 дней (3 месяца), заказ на январь размещается в октябре текущего года — прогноз должен быть готов не позднее сентября. Это определяет горизонт опережения прогнозирования: $H = L + T_{закупки} + T_{входного\ контроля}$.
Шаг 5. Экспертная корректировка. План государственного контракта следующего года может быть пересмотрен — прогнозы корректируются на величину подтверждённого изменения выпуска составных частей промышленных агрегатов (косвенное прогнозирование: фактор-драйвер — объём выпуска).
Связь с лабораторной работой
Материал лекции является теоретической основой лабораторной работы «Прогнозирование спроса методами временных рядов» (семестр 2, выполняется в Python: statsmodels, matplotlib).
| Этап ЛР | Теоретическая база лекции |
|---|---|
| Предобработка временных рядов спроса (выделение тренда, сезонности) | Компоненты ряда, аддитивная и мультипликативная модели, индексы сезонности |
| Построение модели SARIMA (statsmodels) | Структура ARIMA/SARIMA, подбор порядков, доверительные интервалы |
| Визуализация прогноза и доверительных интервалов (matplotlib) | Интервальный прогноз, уровень значимости 95% |
| Расчёт метрик точности MAE, RMSE, MAPE | Формулы метрик, пошаговый пример расчёта |
| Сравнение точности с трендовыми моделями семестра 1 | Сравнение моделей на тестовой выборке, наивный прогноз как базовый уровень |
Рекомендации по выполнению:
- Разделите ряд на обучающую (первые 70–80%) и тестовую (последние 20–30%) выборки — метрики считайте только на тестовой.
- Обязательно сравните SARIMA с линейным трендом и наивным прогнозом; результат оформите таблицей MAE/RMSE/MAPE.
- Проверьте MAPE по нормативам ABC-групп вашего варианта (A ≤ 10%, B ≤ 20%, C ≤ 30–40%).
- Пересчитайте страховой запас по формуле $Z = 1{,}65 \cdot RMSE$ и сравните с запасом из ЛР семестра 1 (EOQ) — это покажет экономический эффект повышения точности прогноза.
Типовые ошибки при выполнении ЛР:
- Расчёт метрик на обучающей выборке (занижение ошибки).
- Подбор порядка SARIMA «на глаз» вместо AIC/BIC.
- Игнорирование сезонности при её наличии (остатки модели автокоррелированы).
- Сравнение моделей по одной метрике (MAPE) без RMSE.
Ключевые выводы по лекции
- Прогнозирование — предсказание будущих значений на основе исторических данных; прогноз является входом для всех плановых логистических решений.
- Горизонты прогнозирования: краткосрочный (до 3 мес.), среднесрочный (до 2 лет), долгосрочный (более 2 лет); чем короче горизонт, тем выше точность.
- Прямое прогнозирование использует историю целевого показателя, косвенное — факторы-драйверы.
- Методы экспертных оценок (Дельфи, мозговой штурм) применяются при отсутствии данных и структурных сдвигах.
- Формы прогноза: точечный (одно число), интервальный (диапазон), вероятностный (распределение).
- Временной ряд включает компоненты: тренд, сезонность, цикл, случайная составляющая; базовые методы — скользящая средняя, экспоненциальное сглаживание, линейный тренд МНК, сезонные индексы.
- Казуальные методы строятся на причинно-следственных связях (регрессия); факторы должны иметь экономический смысл и быть статистически значимыми.
- Имитационное моделирование даёт вероятностный прогноз через множество сценарных прогонов.
- Машинное обучение: ARIMA/SARIMA (автокорреляция и сезонность), Prophet (тренд + праздники), LSTM (длинные ряды), XGBoost (табличные данные с факторами).
- Оценка точности: MAE, RMSE, MAPE; нормативы по группам ABC: A ≤ 10%, B ≤ 20%, C ≤ 30–40%; любая модель сравнивается с наивным прогнозом.
- Точность прогноза конвертируется в запасы: $Z = z \cdot \sigma_{ош}$; снижение RMSE на 40% сокращает страховой запас пропорционально.
Контрольные вопросы
- Какие основные проблемы прогнозирования в логистике вы знаете?
- В чём различие между прямым и косвенным прогнозированием?
- Когда применяются методы экспертных оценок?
- Какие формы прогноза существуют?
- Какие компоненты включает временной ряд?
Рекомендуемая литература
Основная:
- Романюк П. В. Модели прогнозирования спроса в логистике: машинное обучение. — 2024.
- Методы машинного обучения в прогнозировании спроса. — 2024.
Дополнительная:
- Мицель А. А., Грибанова Е. Б. Имитационное моделирование экономических процессов в Excel. — Томск, 2019.
Полный каталог и содержание источников — в обзоре литературы.