Тройное экспоненциальное сглаживание

Описание и пример тройного экспоненциального сглаживания.

Ну вот, добрались и до тройного экспоненциального сглаживания.

Кто не был в курсе, бывает просто Экспоненциальное сглаживание, бывает также Двойное экспоненциальное сглаживание, ну и теперь вот, встречайте — тройное экспоненциальное сглаживание.

Сначала немного истории.
Экспоненциальное сглаживание было впервые предложено в 1957 году Хольтом (C. C. Holt) и предназначалось для непериодических (отсутствует сезонность) рядов динамики, не показывающих наличие какой-либо тенденции.

В 1958 году он же предложил модификацию этого метода, учитывающую тенденции — двойное экспоненциальное сглаживание.

А Винтерс (Winters) в 1965 году обобщил этот метод с учетом сезонности колебаний. Поэтому тройное экспоненциальное сглаживание называют еще методом Хольта-Винтерса (Holt-Winters method).

Поскольку всякие вводные слова я уже говорил в предыдущих статьях, перейдем сразу к формулам.

Тройное экспоненциальное сглаживание:

Общее уравнение:

S_t = \alpha \frac{y_t}{I_{t-L}} + (1-\alpha)(S_{t-1}+b_{t-1}),

Сглаживание тенденции

b_t = \gamma (S_t - S_{t-1}) + (1-\gamma)b_{t-1},

Сглаживание сезонности

I_t = \beta \frac{y_t}{S_t} + (1-\beta)I_{t-L},

Прогноз

F_{t+m} = (S_t + mb_t)I_{t-L+m}

где,

\alpha, \beta, \gamma принимает значение из диапазона [0;1]
y - наблюдение
S - сглаженное значение наблюдения
b - коэффициент тенденции
I - индекс сезонности
F - прогноз на m периодов вперед
t - индекс текущего наблюдения

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

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

Индексы сезонности рассчитываются следующим образом - предположим, есть данные наблюдений за n сезонов по L периодов.
Тогда
1) для каждого сезона рассчитывается среднее значение

A_j=\frac{\sum_{i=1}^{L}y_{ji}}{L}, j меняется от 1 до n

2) для каждого периода рассчитывается индекс сезонности

I_i=\frac{\sum_{j=1}^{n}\frac{y_{ji}}{A_j}}{n}, i меняется от 1 до L

где
y_{ji} - наблюдение, соответствующее i-му периоду j-го сезона.

Далее — чтобы правильно рассчитать начальную тенденцию, надо уметь учитывать влияние сезонных колебаний. Если у нас есть данные за один сезон (например, год — L=12), то сложно тенденцию отличить от сезонных колебаний. Таким образом метод, с точки зрения расчета начального коэффициента тенденции, требует наличия минимум 2L наблюдений. Имея данные за два сезона (L=24), понятно, уже можно выявлять тенденцию, сравнивая соответствующие периоды сезонов (например, январь прошлого года с январем настоящего года).

Общеупотребительная формула для оценки тенденции

b=\frac{1}{L}(\frac{y_{L+1}-y_1}{L} + \frac{y_{L+2}-y_2}{L} + ... + \frac{y_{L+L}-y_L}{L})

Как видим, используются данные за два сезона.

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

Калькулятор ниже это квинтэссенция всех трех статей — он строит простое экспоненциальное сглаживание, двойное экспоненциальное сглаживание и тройное экспоненциальное сглаживание. Кроме того, он строит прогнозные значения на указанную дальность.
Задаются параметры \alpha, \beta, \gamma, периодичность данных L (по умолчанию 4 — как бы 4 квартала одного года) и дальность прогноза m (тоже 4).

Примечание: Калькулятор будет считать только при наличии минимум 2L наблюдений.

P.S. Кстати, если данные по умолчанию заменить данными, которые действительно имеют выраженную тенденцию и периодичность, среднеквадратическая ошибка тройного сглаживания будет на порядок меньше, чем среднеквадратические ошибки простого и двойного сглаживания. Аж сам удивился. Данные по умолчанию здесь, пожалуй, не очень показательны для демонстрации.

PLANETCALC, Тройное экспоненциальное сглаживание

Тройное экспоненциальное сглаживание

Ряд динамики

Значение
50
52
95
59
52
45
38
10
47
40
Записей:
1-10 из 19

Знаков после запятой: 2
Среднеквадратическая ошибка простого сглаживания
355.68
Среднеквадратическая ошибка двойного сглаживания
432.37
Среднеквадратическая ошибка тройного сглаживания
525.67
Двойное экспоненциальное сглаживание
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
Фактическое значение
Простое сглаживание
Двойное сглаживание
Тройное сглаживание
246810121416182022102030405060708090100110120

Двойное экспоненциальное сглаживание

НомерФактическое значениеПростое сглаживаниеСледующий прогнозДвойное сглаживаниеСледующий прогнозТройное сглаживаниеСледующий прогноз
1500050525041.65
2525051525448.4149.21
395517374.586.7564.6859.91
459736672.8878.1970.1578.56
552665965.163.8763.0663.67
645595254.4348.4853.2461.99
738524543.2434.6738.724.32
8104527.522.337.5920.325.75
94727.537.2527.2922.4028.3623.61
104037.2538.6331.230.7134.0940.28

Ссылка скопирована в буфер обмена
PLANETCALC, Тройное экспоненциальное сглаживание

Комментарии