Составляющие временного ряда
При анализе временного ряда выделяют три составляющие: тренд, сезонность и шум. Тренд - это общая тенденция, сезонность, как следует из названия - влияния периодичности (день недели, время года и т.д.) и, наконец, шум - это случайные факторы.
Что бы понять отличие этих трёх величин, смоделируем функцию расстояния от земли до луны. Известно, что в среднем луна каждый год отдаляется на 4 см - это тренд, в течение дня луна совершает оборот вокруг земли и расстояние колеблется от ~362600 км до ~405400 км - это сезонность. Шум - это "случайные" факторы, например, влияние других планет. Если мы изобразим сумму этих трёх графиков, то мы получим временной ряд - функцию, показывающую изменение расстояния от земли до луны во времени.
Тренд. Методы сглаживания
Методы сглаживания необходимы для удаления шума из временного ряда. Существуют различные способы сглаживания, основные - это метод скользящей средней и метод экспоненциального сглаживания.
Метод скользящей средней
Идея метода скользящего среднего заключается в смещении точки графика на среднее значение некоторого интервала. В качестве интервала берут нечётное количество участков, например, три - предыдущий, текущий и следующий периоды, находится среднее и принимается в качестве сглаженного значения:
Si = Σkj=-k(xi+j)/(2k+1)
У данного метода есть проблема: случайное высокое или низкое значение сильно влияют на скользящую линию. В качестве решения были введены веса. Для распределение веса используют оконные функции, основные оконные функции - это окно Дирихле (прямоугольная функция), В-сплайны, полиномы, синусоидальные и косинусоидальные:
Минусы использования скользящей средней - это сложность вычислений и некорректные данные на концах графика.
Исходные данные | Скользящая средняя | Взвешенная скользящая средняя (синусоидальное окно, n=5) | Взвешенная скользящая средняя (окно Ганна, n=5) |
800 | 882 | 283 | 0 |
963 | 968 | 494 | 400 |
1142 | 934 | 584 | 482 |
830 | 991 | 602 | 571 |
1028 | 1174 | 591 | 415 |
1695 | 1231 | 703 | 514 |
1370 | 1370 | 848 | 848 |
1388 | 1599 | 888 | 685 |
1944 | 1605 | 933 | 694 |
1718 | 1520 | 1035 | 972 |
1030 | 1684 | 955 | 859 |
2043 | 1413 | 922 | 515 |
860 | 1807 | 845 | 1022 |
3296 | 2331 | 1159 | 430 |
3124 | 2658 | 1528 | 1648 |
3350 | 2759 | 1956 | 1562 |
1264 | 2198 | 1613 | 1675 |
1055 | 1937 | 1095 | 632 |
2078 | 1599 | 855 | 528 |
1997 | 1710 | 1412 | 1039 |
Таблица 1. Сглаживание методом скользящей средней |
Как видно из графика, увеличение n выдаёт более плавную функцию, таким образом нивелируя более мелкие колебания во временном ряду. Обратите внимание, что при сглаживании не имеет значения, совпадает график среднего с графиком данных или нет, целью является построение правильной формы.
Метод экспоненциального сглаживания
Метод экспоненциального сглаживания получил своё название потому, что в сглаженной функции экспоненциально убывает влияние предыдущего периода с неким коэффициентом чувствительности α. Сглаженное значение находится как разница между предыдущим действительным значением и рассчитанным значением:
D't = α·Dt-1 + (1-α)·D't-1
Коэффициент чувствительности, α, выбирается между 0 и 1, в качестве базиса используют значение 0,3. Если есть достаточная выборка, то коэффициент подбирается путём оптимизации.
Исходные данные | Экспоненциальное сглаживание, α=0,1 | Экспоненциальное сглаживание, α=0,6 | |
800 | 800 | 800 | |
963 | -640 | 160 | |
1142 | 672 | 514 | |
830 | -491 | 480 | |
1028 | 525 | 306 | |
1695 | -370 | 494 | |
1370 | 503 | 819 | |
1388 | -316 | 494 | |
1944 | 423 | 635 | |
1718 | -186 | 912 | |
1030 | 339 | 666 | |
2043 | -202 | 352 | |
860 | 386 | 1085 | |
3296 | -261 | 82 | |
3124 | 565 | 1945 | |
3350 | -196 | 1096 | |
1264 | 511 | 1572 | |
1055 | -334 | 130 | |
2078 | 406 | 581 | |
1997 | -158 | 1014 | |
Таблица 2. Экспоненциальное сглаживание |
Методы прогнозирования
Методы прогнозирования основываются на выявлении тенденции во временном ряду и последующем использовании найденного значения для предсказания будущих значений. В методах прогнозирования выделяют тренд и сезонность, в общем случае, все типы сезонности могут быть найдены последовательными итерациями. Например, при анализе данных за год, можно выделить сезонность времени года, а в оставшемся тренде найти сезонность по дням недели и так далее.
Двойное экспоненциальное сглаживание
Двойное экспоненциальное сглаживание выдаёт сглаженное значение уровня и тенденции.
Внимание! Может возникнуть путаница, метод Хольт-Винтерса отличается терминами: тренд, сезонность и шум соответственно называются уровень, тренд и сезонность.
Smooth - сглаживание, сглаженный уровень на период τ, sτ, зависит от значения уровня на текущий период (Dτ), тренда за предыдущий период (tτ-1) и рассчитанного сглаженного значения на предыдущий период (sτ-1):
sτ = αDτ + (1 - α)(sτ-1 + tτ-1)
Trend - тенденция, тренд на период τ, tτ, зависит от рассчитанного сглаженного значения за предыдущий и текущий периоды (sτ и sτ-1) и от предыдущей тенденции:
tτ = β(sτ-sτ-1) + (1-β)tτ-1
Рассчитанные по данным формулам уровень и тренд могут быть использованы в прогнозировании:
D'τ+h = sτ + h·tτ
При расчёте, значения s и t для первого периода назначают s1 = D1 и t=0
Метод Хольт-Винтерса
Метод Хольт-Винтерса включает в себя сезонную составляющую, т.е. периодичность. Существуют две разновидности метода - мультипликативный и аддитивный. В отличие от двойного экспоненциального сглаживания, метод Хольт-Винтерса изучает также влияние периодичности.
Общая идея нахождения значений сглаженного уровня, тренда и периодичности заключается в следующем: сглаженный уровень (s - smooth, иногда используют l - level) - это базовый уровень значений, тренд (t - trend) - это показатель скорости роста, разница между сглаженными значениями текущего и предыдущего периода. Для изучения периодичности (p - period), мы разбиваем данные на периоды размером k и выделяем влияние каждого элемента (1,2,...,k) периода на сглаженный уровень.
Для более точных расчётов вводится показатель обратной связи.
В общем понимании, обратная связь - это влияние предыдущих значений на новые: например, когда Вы начинаете говорить, Вы регулируете громкость своего голоса в зависимости от того, что слышат Ваши уши - это и есть обратная связь.
Для начала расчётов, значения s, t и k, в самом простом виде, могут быть выбраны как sτ = Dτ, t = 0, p = 0.
k - длина выбранного периода:
sτ = α(Dτ - pτ-k) + (1 - α)(sτ-1 + tτ-1)
С поправкой на предыдущие значения tτ-k (обратная связь)
tτ = β(sτ-sτ-1) + (1-β)tτ-1
С поправкой на предыдущие значения pτ-k (обратная связь)
pτ = γ(Dτ - sτ) + (1-γ)pτ-k
Для прогнозирования используется следующая формула:
xτ+h = Dτ + htτ + pτ-k+h
Мультипликативный метод Хольт-Винтерса
Мультипликативный метод отличается от аддитивного тем, что параметры, влияющие на периодичность и сглаженный уровень рассчитываются отношением:
pτ = γ(Dτ/sτ) + (1-γ)pτ-k
sτ = α(Dτ/pτ-k) + (1 - α)(sτ-1 + tτ-1)
tτ = β(sτ-sτ-1) + (1-β)tτ-1
Для прогнозирования используется следующая формула:
xτ+h = (Dτ + htτ)pτ-k+h
Метод Хольт-Винтерса в excel
Таблица для скачивания в форматах ods и xls.
Качество прогнозирования
Проверка качества прогнозирования возможна в случае наличия достаточной выборки и является важной проверкой на достоверность прогноза, для проверки и оптимизации значений α, β и γ необходимо построить прогноз на существующие данные, например, если у нас в наличии данные за пять лет и мы хотим предсказать следующий год, то необходимо построить модель на первых четырёх годах, проверить и оптимизировать коэффициенты для минимизации ошибки между прогнозом и данными на 5й год. После оптимизации модель может быть перестроена с учётом последнего периода для повышения точности, далее следует построение прогноза.
Методы оптимизации будут описаны в отдельной статье, ниже представлен пример прогнозирования методом Хольт Винтерса.
# | Данные | s | t | p | s | t | p |
---|---|---|---|---|---|---|---|
1 | 93 | 93 | 0 | 0 | 93 | 0 | 0 |
2 | 91 | 92 | -0.1 | -0.5 | 92 | -0.1 | 0.99 |
3 | 72 | 84 | -0.89 | -6 | 84 | -0.89 | 0.93 |
4 | 75 | 80 | -1.2 | -2.5 | 80 | -1.2 | 0.97 |
5 | 75 | 77 | -1.38 | -1 | 77 | -1.38 | 0.99 |
6 | 57 | 68 | -2.14 | -5.5 | 68 | -2.14 | 0.92 |
7 | 66 | 66 | -2.13 | 0 | 66 | -2.13 | 1 |
8 | 123 | 88 | 0.28 | 17.5 | 38 | -4.72 | 1.62 |
9 | 85 | 87 | 0.15 | -1.25 | 54 | -2.65 | 1.28 |
10 | 85 | 89 | 0.34 | -5 | 67 | -1.09 | 1.1 |
11 | 91 | 91 | 0.51 | -1.25 | 77 | 0.02 | 1.08 |
12 | 102 | 96 | 0.96 | 2.5 | 87 | 1.02 | 1.08 |
13 | 73 | 90 | 0.26 | -11.25 | 85 | 0.72 | 0.89 |
14 | 60 | 78 | -0.97 | -9 | 75 | -0.35 | 0.9 |
15 | 99 | 79 | -0.77 | 18.75 | 69 | -0.92 | 1.53 |
16 | 108 | 91 | 0.51 | 7.88 | 75 | -0.23 | 1.36 |
17 | 98 | 96 | 0.96 | -1.5 | 80 | 0.29 | 1.16 |
18 | 104 | 100 | 1.26 | 1.38 | 87 | 0.96 | 1.14 |
19 | 83 | 93 | 0.43 | -3.75 | 84 | 0.56 | 1.03 |
20 | 68 | 88 | -0.11 | -15.63 | 81 | 0.2 | 0.86 |
21 | 62 | 81 | -0.8 | -14 | 76 | -0.32 | 0.86 |
22 | 59 | 64 | -2.42 | 6.88 | 61 | -1.79 | 1.25 |
23 | 80 | 66 | -1.98 | 10.94 | 59 | -1.81 | 1.36 |
24 | 121 | 87 | 0.32 | 16.25 | 76 | 0.07 | 1.38 |
25 | 112 | 97 | 1.29 | 8.19 | 85 | 0.96 | 1.23 |
26 | 85 | 94 | 0.86 | -6.38 | 85 | 0.86 | 1.02 |
27 | 106 | 106 | 1.97 | -7.82 | 101 | 2.37 | 0.95 |
28 | 82 | 103 | 1.47 | -17.5 | 100 | 2.03 | 0.84 |