Прогнозирование спроса: взвешенное среднее, экспоненциальное сглаживание и метод наименьших квадратов

•0•0Comment iconComment iconComment iconComment icon

Как прогнозировать спрос: учитывать последние данные с большим весом, корректировать прогноз с помощью экспоненциального сглаживания и выявлять тренд методом наименьших квадратов.

Writer image

Translated byEditorial

Writer image

Revised byEditorial

Edit Article

Введение

На прошлом занятии мы разобрали два самых простых способа прогнозирования: взять значение последнего периода или рассчитать скользящее среднее за последние месяцы. У обоих один недостаток: они не учитывают, как меняется спрос со временем. Первый способ отбрасывает всю историю, кроме последнего периода. Скользящее среднее придает одинаковый вес недавним и более ранним месяцам, поэтому не сразу замечает, когда спрос выходит на новый уровень.

Теперь рассмотрим еще три метода:

  • Взвешенное скользящее среднее: недавние месяцы получают больший вес.
  • Экспоненциальное сглаживание: способ учесть всю историю продаж, храня всего два числа.
  • Метод наименьших квадратов (линейная регрессия): первая из рассматриваемых моделей, которая учитывает тренд — устойчивый рост или снижение спроса.

В конце сравним методы по величине ошибки. Идеальных прогнозов не бывает; важно понять, какой метод точнее для конкретного товара.

Взвешенное скользящее среднее

При расчете скользящего среднего за 12 месяцев каждый месяц получает вес 1/12. Но для большинства компаний прошлый месяц говорит о следующем больше, чем события годичной давности. Взвешенное скользящее среднее позволяет это учесть: каждому периоду присваивается вес (W) в зависимости от его значимости.

Прогноз = Σ (Dᵢ × Wᵢ) ÷ Σ Wᵢ

Здесь Dᵢ — спрос в период i, а Wᵢ — вес этого периода. Если сумма весов уже равна 1 (например, 0,5; 0,3; 0,2), достаточно сложить произведения.

Пример. За последние три месяца расход составил 99, 100 и 102 единицы. Присвоим этим месяцам веса 1, 2 и 3: самый недавний получит наибольший вес.

МесяцРасходВесРасход × вес
199199
21002200
31023306
Итого6605

Прогноз на месяц 4 = 605 ÷ 6 = 100,83 единицы. Простое среднее дало бы 100,33. Взвешенное ближе к последнему значению (102), поскольку на него приходится половина общего веса.

Веса обычно подбирают опытным путем: проверяют несколько вариантов на исторических данных и выбирают тот, который дает наименьшую ошибку (об этом — в последнем разделе). Если все веса равны, взвешенное среднее превращается в обычное скользящее среднее.

За последние три месяца магазин продал 200, 260 и 300 единиц товара (от самого раннего месяца к последнему). Каков прогноз на следующий месяц при весах 0,2; 0,3 и 0,5?

Loading icon

Правильный ответ: 268 единиц — 200 × 0,2 + 260 × 0,3 + 300 × 0,5 = 40 + 78 + 150 = 268. Сумма весов уже равна 1, поэтому делить не нужно. 253,3 — простое среднее, которое не учитывает веса.

Экспоненциальное сглаживание

Экспоненциальное сглаживание (exponential smoothing) — один из самых распространенных методов прогнозирования временных рядов в системах управления запасами. Это взвешенное среднее, в котором вес прошлых периодов уменьшается экспоненциально по мере удаления от текущего момента. Отсюда и название. Формула выглядит так:

P(t+1) = α × D(t) + (1 − α) × P(t)

где:

  • P(t+1) — прогноз на следующий период;
  • D(t) — фактический спрос за только что завершившийся период;
  • P(t) — прогноз, который был составлен для этого периода;
  • α (альфа) — коэффициент сглаживания, число от 0 до 1.

Если преобразовать формулу, ее смысл становится понятнее:

P(t+1) = P(t) + α × [D(t) − P(t)]

Новый прогноз — это прежний прогноз с поправкой на долю α от только что полученной ошибки. Если продажи оказались выше ожидаемых, прогноз повышается; если ниже — снижается. Величину поправки задает α.

Почему сглаживание называется «экспоненциальным»?

Если вместо P(t) подставить выражение для его расчета, затем сделать то же самое с P(t−1) и продолжить дальше, получится:

P(t+1) = α × D(t) + α(1 − α) × D(t−1) + α(1 − α)² × D(t−2) + α(1 − α)³ × D(t−3) + ...

Вес каждого более раннего значения спроса равен весу предыдущего, умноженному на (1 − α). Метод учитывает всю историю, но влияние давних периодов постепенно сходит на нет. При этом для расчета следующего прогноза достаточно хранить лишь два числа: последний прогноз и последний фактический спрос.

Вес спроса за прошлые периоды в прогнозе при трех значениях α
Вес спроса за прошлые периоды в прогнозе при трех значениях α

График показывает, как влияет α:

  • Малое α (от 0,1 до 0,2): веса снижаются медленно, поэтому значимыми остаются многие прошлые периоды. Прогноз устойчив к случайным колебаниям, но медленно реагирует на реальные изменения.
  • Большое α (0,5 и выше): почти весь вес приходится на последние два-три периода. Прогноз быстро реагирует на изменения, но вслед за ними может повторять и случайные колебания.

Для стабильного спроса чаще всего используют значения от 0,1 до 0,3. Подходящее для товара α находят, проверяя разные значения на исторических данных и выбирая то, которое дает наименьшую ошибку.

Чтобы начать пользоваться методом, нужны α и начальный прогноз. Поскольку предыдущего прогноза еще нет, за отправную точку обычно берут первое наблюдавшееся значение спроса или среднее за первые несколько месяцев.

Пример

Компания использует α = 0,30. Прогноз на первую неделю июля составлял 800 единиц, а фактический спрос — 850. Каков прогноз на вторую неделю?

P(2) = 0,30 × 850 + 0,70 × 800 = 255 + 560 = 815 единиц

То же можно посчитать через ошибку: спрос оказался выше прогноза на 850 − 800 = 50 единиц. Поправка составляет 30% от этой разницы, то есть 15 единиц. 800 + 15 = 815.

Важно: простое сглаживание не учитывает тренд

Простое экспоненциальное сглаживание корректирует прогноз с опорой на уже наблюдавшийся спрос. Если спрос растет каждый месяц, прогноз будет постоянно отставать и систематически занижать результат. Для рядов с трендом существуют другие варианты метода — например, метод Хольта, который также сглаживает наклон. Но классический и более простой инструмент для учета тренда — линейная регрессия. Ее мы рассмотрим дальше.

Компания использует экспоненциальное сглаживание с α = 0,2. Прогноз на прошлый месяц составлял 1.000 единиц, а фактический спрос — 1.200. Каков прогноз на следующий месяц?

Loading icon

Правильный ответ: 1.040 единиц — ошибка составила 1.200 − 1.000 = 200; поправка равна 20% от нее: 1.000 + 0,2 × 200 = 1.040. Результат 1.160 получится, если поменять веса местами и присвоить фактическому спросу вес 0,8, то есть использовать α = 0,8.

Спрос на товар стабилен, но сильно колеблется от недели к неделе по случайным причинам. Какое значение α, скорее всего, даст более полезный прогноз?

Loading icon

Правильный ответ: малое α, например 0,1, чтобы отфильтровать случайные колебания. При малом α прогноз учитывает много периодов и не зависит слишком сильно от одной нетипичной недели. При α, близком к 1, прогноз практически повторяет последний спрос, а вместе с ним и случайные колебания.

Метод наименьших квадратов (линейная регрессия)

Средние — простые, взвешенные и экспоненциальные — имеют свойство возвращаться к некоторому среднему уровню. Посмотрим, что произойдет, если спрос растет на 50 единиц каждый месяц, а мы продолжаем прогнозировать его по среднему за последние три месяца, каждый раз подставляя предыдущий прогноз вместо фактического значения:

МесяцРасход
150 (факт)
2100 (факт)
3150 (факт)
4100,00
5116,67
6122,22
7112,96
8117,28
9117,49
10115,91
11116,90
12116,77

Прогноз стабилизируется около 116–117, хотя фактические данные показывают рост на 50 единиц в месяц. По одному лишь среднему нельзя определить, что спрос растет.

Чтобы учесть тренд, проведем через исторические данные прямую:

Y = b + a × X

где:

  • X — номер периода (1, 2, 3, ...);
  • Y — прогноз спроса на этот период;
  • a — коэффициент наклона прямой: он показывает, насколько спрос растет (если a положительно) или снижается (если a отрицательно) за период;
  • b — свободный член, то есть значение в точке пересечения прямой с вертикальной осью.

Из всех возможных прямых метод наименьших квадратов выбирает ту, для которой сумма квадратов отклонений фактических значений от значений на прямой минимальна. Возведение в квадрат не дает положительным и отрицательным отклонениям взаимно компенсироваться и сильнее учитывает крупные ошибки. Расчетные формулы таковы:

a = [N × ΣXY − ΣX × ΣY] ÷ [N × ΣX² − (ΣX)²]

b = [ΣY − a × ΣX] ÷ N

Здесь N — число периодов в исторических данных. Сначала вычисляют a, затем b.

Разбор примера

Компания Beta, выпускающая детали HR, продала в этом году: в январе — 2.400; в феврале — 2.100; в марте — 2.550; в апреле — 2.700; в мае — 2.750; в июне — 2.800; в июле — 3.000. Каков прогноз на август по линии тренда?

Составим таблицу с данными для расчета:

МесяцXY (спрос)X²X × Y
Январь12.40012.400
Февраль22.10044.200
Март32.55097.650
Апрель42.7001610.800
Май52.7502513.750
Июнь62.8003616.800
Июль73.0004921.000
Итого2818.30014076.600

При N = 7:

a = [7 × 76.600 − 28 × 18.300] ÷ [7 × 140 − 28²] = [536.200 − 512.400] ÷ [980 − 784] = 23.800 ÷ 196 = 121,43

b = [18.300 − 121,43 × 28] ÷ 7 = [18.300 − 3.400] ÷ 7 = 2.128,57

Уравнение прямой: Y = 2.128,57 + 121,43 × X. В среднем продажи растут примерно на 121 деталь в месяц. Для августа X = 8:

Y = 2.128,57 + 121,43 × 8 = 3.100 деталей

Линия, построенная методом наименьших квадратов, отражает рост продаж; простое среднее отстает
Линия, построенная методом наименьших квадратов, отражает рост продаж; простое среднее отстает

На графике видно: простое среднее за семь месяцев (2.614) почти на 500 деталей ниже прогноза с учетом тренда. Если рост спроса сохранится, компания, которая ориентируется на среднее, столкнется с нехваткой товара.

При использовании регрессии важно помнить о двух ограничениях:

  • Она предполагает продолжение тренда. Строить прогноз на много периодов вперед рискованно: продажи не могут бесконечно расти по прямой. Используйте метод для коротких горизонтов и пересчитывайте линию тренда при появлении новых данных.
  • Она не учитывает сезонность. Если в отдельные месяцы спрос на товар резко возрастает, дополните тренд индексом сезонности из прошлого занятия: рассчитайте прогноз по тренду и умножьте его на индекс соответствующего месяца.

В электронной таблице все эти столбцы не обязательно считать вручную: функции НАКЛОН и ОТРЕЗОК в Excel или LibreOffice возвращают a и b, а функция ПРЕДСКАЗ (или ПРЕДСКАЗ.ЛИНЕЙН) сразу рассчитывает Y для заданного X. Но один раз пройти весь расчет вручную полезно, чтобы понять происхождение результата.

За последние три месяца продажи товара составили 100, 120 и 140. Каков прогноз на месяц 4 по прямой, построенной методом наименьших квадратов при X = 1, 2 и 3?

Loading icon

Правильный ответ: 160 — точки уже лежат на одной прямой: ΣX = 6, ΣY = 360, ΣXY = 100 + 240 + 420 = 760, ΣX² = 14. a = (3 × 760 − 6 × 360) ÷ (3 × 14 − 36) = 120 ÷ 6 = 20, а b = (360 − 20 × 6) ÷ 3 = 80. Y = 80 + 20 × 4 = 160. Результат 120 дает простое среднее — именно такую ошибку позволяет избежать регрессия.

Как выбрать метод: оцениваем ошибку

Любой системе прогнозирования нужен способ измерять расхождения между прогнозом и фактическим спросом. Одна из самых простых мер — среднее абсолютное отклонение (MAD, от английского mean absolute deviation): среднее ошибок, взятых по модулю.

MAD = Σ |фактический спрос − прогноз| ÷ число периодов

Если применить экспоненциальное сглаживание к продажам Beta, приняв прогноз на февраль равным январским продажам — 2.400, MAD для разных значений α будет таким:

МетодMAD (с февраля по июль)
Сглаживание, α = 0,1331 деталь
Сглаживание, α = 0,3290 деталей
Сглаживание, α = 0,5254 детали
Сглаживание, α = 0,8216 деталей
Прямая по методу наименьших квадратов (с января по июль)94 детали

Из этой таблицы следуют два вывода. Во-первых, спрос на продукцию Beta растёт, поэтому простое экспоненциальное сглаживание даёт большую ошибку. Чем выше α, тем меньше ошибка: прогноз быстрее реагирует на изменения. Во-вторых, прогноз по прямой ошибается значительно реже. Это подтверждает, что для таких данных лучше подходит модель с учётом тренда. Есть, однако, важная оговорка: MAD для прямой рассчитан по тем же данным, на которых её строили, а это даёт ей преимущество. Более честная проверка — построить модель по части истории и оценить ошибку на последующих месяцах.

MAD пригодится и на занятии о страховом запасе: чем выше типичная ошибка прогноза, тем больше дополнительный запас, необходимый для предотвращения дефицита.

Аналитик проверил два метода на одних и тех же данных за 12 месяцев: средняя абсолютная ошибка (MAD) трёхмесячного скользящего среднего составила 40 единиц, а экспоненциального сглаживания с α = 0,2 — 25 единиц. Какой вывод следует сделать?

Loading icon

Ответ: для этого товара больше подходит сглаживание с α = 0,2, поскольку в среднем оно даёт меньшую ошибку. MAD как раз позволяет сравнивать методы на одних и тех же исторических данных: предпочтителен метод с меньшей средней абсолютной ошибкой. Ошибается любой прогноз; задача — выбрать метод, который ошибается меньше.

Упражнения

Простые

1) Долгосрочный спрос на товар относительно стабилен, а коэффициент экспоненциального сглаживания 0,30 считается подходящим. Прогноз на предыдущий период составлял 1.100 единиц, фактический спрос — 1.000 единиц. Каков прогноз на текущий период?

2) (Экзамен по логистике, CEFET/RJ, 2018) Компания применяет экспоненциальное сглаживание с α = 0,30. Прогноз на первую неделю июля составлял 800 единиц, фактический спрос — 850 единиц. Рассчитайте прогноз на вторую неделю июля.

3) Компания Vitória применяет экспоненциальное сглаживание с α = 0,8. Прогноз на месяц 1 составлял 1.800 единиц, фактический спрос — 1.500 единиц. Каков прогноз на месяц 2?

4) (Экзамен по логистике, CEFET/RJ, 2018) Предыдущий прогноз составлял 820 единиц, а последний фактический спрос — 750 единиц. Каков прогноз на следующий период по методу экспоненциального сглаживания с α = 0,2?

5) Используя значения из раздела о взвешенном среднем (99, 100 и 102), рассчитайте прогноз на месяц 4 с весами 0,2; 0,3 и 0,5 и сравните его с результатом для весов 1, 2 и 3.

Сложные

6) За последние 7 месяцев продажи линейки бытовой техники в коробках составили указанное ниже количество. Спрогнозируйте продажи на август, сентябрь и октябрь с помощью прямой, построенной методом наименьших квадратов.

МесяцКоробки
Январь100
Февраль110
Март125
Апрель135
Май140
Июнь153
Июль167

7) Компании нужно спрогнозировать продажи сезонного товара. Она собрала данные о потреблении по кварталам за последние 4 года. Каким будет потребление в каждом квартале года 5, если прогноз на весь год составляет 3.000 единиц? (Используйте индексы сезонности из предыдущего занятия.)

КварталГод 1Год 2Год 3Год 4
1150180230210
2340420510650
3190260350390
4410700750980

8) Компания прогнозирует недельный спрос на коробки с банками пива методом экспоненциального сглаживания с α = 0,1. На первую неделю февраля прогноз составлял 500 коробок, фактический спрос — 450.
a) Каков прогноз на вторую неделю февраля?
b) Если фактический спрос во вторую неделю составил 515 коробок, каков прогноз на третью неделю?

9) Решите упражнение 8 для α = 0,15 и сравните результаты.

10) Спрос на товар за последние 7 месяцев составил: 40, 44, 43, 48, 50, 53 и 55 единиц.
a) Рассчитайте прогнозы на месяцы с 4 по 7 с помощью простого трёхмесячного скользящего среднего и взвешенного трёхмесячного скользящего среднего с весами 0,2; 0,3 и 0,5 (вес последнего месяца — 0,5).
b) Рассчитайте MAD каждого метода за эти четыре месяца. Какой даёт меньшую ошибку?
c) Рассчитайте прогноз на месяц 8 обоими методами, а также с помощью прямой, построенной методом наименьших квадратов по данным за 7 месяцев.
d) Изучите ошибки из пункта a: какой недостаток обоих методов скользящего среднего они показывают? Какой из трёх прогнозов в пункте c вы бы выбрали?

Ответы

1) P = α × D + (1 − α) × предыдущий P = 0,3 × 1.000 + 0,7 × 1.100 = 300 + 770 = 1.070 единиц. Можно рассчитать и через ошибку: фактический спрос отклонился от прогноза на 1.000 − 1.100 = −100; с учётом 30% этого отклонения получаем 1.100 − 30 = 1.070.

2) 0,3 × 850 + 0,7 × 800 = 255 + 560 = 815 единиц.

3) 0,8 × 1.500 + 0,2 × 1.800 = 1.200 + 360 = 1.560 единиц. При высоком α прогноз близок к последнему значению фактического спроса.

4) 0,2 × 750 + 0,8 × 820 = 150 + 656 = 806 единиц.

5) 99 × 0,2 + 100 × 0,3 + 102 × 0,5 = 19,8 + 30 + 51 = 100,8. Результат практически совпадает с другим вариантом (100,83): если разделить веса 1, 2 и 3 на их сумму 6, получим близкие значения — 0,17; 0,33 и 0,5.

6) При X от 1 (январь) до 7 (июль) и N = 7: ΣX = 28; ΣY = 930; ΣX² = 140; ΣXY = 100 + 220 + 375 + 540 + 700 + 918 + 1.169 = 4.022.
a = (7 × 4.022 − 28 × 930) ÷ (7 × 140 − 28²) = (28.154 − 26.040) ÷ (980 − 784) = 2.114 ÷ 196 = 10,79.
b = (930 − 10,786 × 28) ÷ 7 = (930 − 302) ÷ 7 = 89,71.
Уравнение прямой: Y = 89,71 + 10,79 × X. Август (X = 8): 89,71 + 10,79 × 8 = 176 коробок; сентябрь (X = 9): 187 коробок; октябрь (X = 10): 198 коробок.

7) Сначала найдём долю каждого квартала в годовом объёме (итоги: год 1 = 1.090; год 2 = 1.560; год 3 = 1.840; год 4 = 2.230). Например, доля квартала 1 в году 1: 150 ÷ 1.090 = 13,8%.

КварталГод 1Год 2Год 3Год 4Среднее
113,8%11,5%12,5%9,4%11,8%
231,2%26,9%27,7%29,1%28,7%
317,4%16,7%19,0%17,5%17,7%
437,6%44,9%40,8%43,9%41,8%

Средняя доля квартала, умноженная на 4, даёт индекс сезонности (например, для квартала 1: 11,8% × 4 = 0,47). Если умножить на эту долю годовой прогноз, получится тот же результат, что и при умножении индекса на средний прогноз за квартал (3.000 ÷ 4 = 750). Прогнозы: 1-й квартал ≈ 3.000 × 11,8% ≈ 354; 2-й ≈ 862; 3-й ≈ 530; 4-й ≈ 1.254. (Если вместо этого сложить показатели за 4 года по каждому кварталу и разделить их на общий итог 6.720, результаты будут близкими: 344, 857, 531 и 1.268.)

8) a) 0,1 × 450 + 0,9 × 500 = 45 + 450 = 495 коробок.
b) 0,1 × 515 + 0,9 × 495 = 51,5 + 445,5 = 497 коробок.

9) a) 0,15 × 450 + 0,85 × 500 = 67,5 + 425 = 492,5, то есть около 493 коробок.
b) 0,15 × 515 + 0,85 × 492,5 = 77,25 + 418,6 = 495,9, то есть около 496 коробок.
При большем α прогноз сильнее реагирует на изменения: на неделю 2 он снижается заметнее (492,5 против 495), а на неделю 3 остаётся немного ниже (495,9 против 497), поскольку исходное значение было меньше. При этом рост составляет 3,4 коробки против 2.

10) a) и b)

МесяцФактСкользящее среднее за 3 месяцаОшибкаВзвешенное среднее 0,2/0,3/0,5Ошибка
448(40 + 44 + 43) ÷ 3 = 42,33+5,670,2 × 40 + 0,3 × 44 + 0,5 × 43 = 42,7+5,3
550(44 + 43 + 48) ÷ 3 = 45,00+5,000,2 × 44 + 0,3 × 43 + 0,5 × 48 = 45,7+4,3
653(43 + 48 + 50) ÷ 3 = 47,00+6,000,2 × 43 + 0,3 × 48 + 0,5 × 50 = 48,0+5,0
755(48 + 50 + 53) ÷ 3 = 50,33+4,670,2 × 48 + 0,3 × 50 + 0,5 × 53 = 51,1+3,9
MAD21,33 ÷ 4 = 5,3318,5 ÷ 4 = 4,63

Взвешенное среднее даёт меньшую ошибку (MAD 4,63 против 5,33), поскольку последнему месяцу присвоен больший вес.
c) Скользящее среднее за 3 месяца: (50 + 53 + 55) ÷ 3 = 52,67. Взвешенное среднее: 0,2 × 50 + 0,3 × 53 + 0,5 × 55 = 10 + 15,9 + 27,5 = 53,4. Прямая: при X от 1 до 7, ΣX = 28, ΣY = 333, ΣX² = 140, ΣXY = 1.402; a = (7 × 1.402 − 28 × 333) ÷ (7 × 140 − 28²) = (9.814 − 9.324) ÷ 196 = 490 ÷ 196 = 2,5; b = (333 − 2,5 × 28) ÷ 7 = 263 ÷ 7 = 37,57; Y(8) = 37,57 + 2,5 × 8 = 57,57.
d) У обоих вариантов скользящего среднего все ошибки положительные: прогноз каждый раз ниже фактического спроса. Это типичное запаздывание среднего при восходящем тренде (спрос растёт примерно на 2,5 единицы в месяц). Взвешенное среднее сокращает запаздывание, но не устраняет его. Поэтому для месяца 8 лучше выбрать прогноз по прямой — около 58 единиц.

What did you think of this article?

0%
User score (0)

Share this article!