Составляющие временного ряда
При анализе временного ряда выделяют три составляющие: тренд, сезонность и шум. Тренд - это общая тенденция, сезонность, как следует из названия - влияния периодичности (день недели, время года и т.д.) и, наконец, шум - это случайные факторы.
Что бы понять отличие этих трёх величин, смоделируем функцию расстояния от земли до луны. Известно, что в среднем луна каждый год отдаляется на 4 см - это тренд, в течение дня луна совершает оборот вокруг земли и расстояние колеблется от ~362600 км до ~405400 км - это сезонность. Шум - это "случайные" факторы, например, влияние других планет. Если мы изобразим сумму этих трёх графиков, то мы получим временной ряд - функцию, показывающую изменение расстояния от земли до луны во времени.
Тренд. Методы сглаживания
Методы сглаживания необходимы для удаления шума из временного ряда. Существуют различные способы сглаживания, основные - это метод скользящей средней и метод экспоненциального сглаживания.
Метод скользящей средней
Идея метода скользящего среднего заключается в смещении точки графика на среднее значение некоторого интервала. В качестве интервала берут нечётное количество участков, например, три - предыдущий, текущий и следующий периоды, находится среднее и принимается в качестве сглаженного значения:
Si = Σkj=-k(xi+j)/(2k+1)
У данного метода есть проблема: случайное высокое или низкое значение сильно влияют на скользящую линию. В качестве решения были введены веса. Для распределение веса используют оконные функции, основные оконные функции - это окно Дирихле (прямоугольная функция), В-сплайны, полиномы, синусоидальные и косинусоидальные:
Минусы использования скользящей средней - это сложность вычислений и некорректные данные на концах графика.
Исходные данные | Скользящая средняя | Взвешенная скользящая средняя (синусоидальное окно, n=5) | Взвешенная скользящая средняя (окно Ганна, n=5) |
800 | 811 | 283 | 0 |
822 | 919 | 460 | 400 |
1134 | 915 | 547 | 411 |
905 | 1055 | 589 | 567 |
1360 | 1275 | 667 | 453 |
1700 | 1238 | 801 | 680 |
986 | 1460 | 840 | 850 |
1794 | 1504 | 864 | 493 |
1536 | 1396 | 894 | 897 |
1268 | 1437 | 925 | 768 |
1150 | 1362 | 792 | 634 |
1493 | 1520 | 776 | 575 |
2168 | 1965 | 960 | 747 |
3049 | 2560 | 1345 | 1084 |
3530 | 2706 | 1770 | 1525 |
2075 | 3116 | 1788 | 1765 |
3808 | 3382 | 1816 | 1038 |
4115 | 3501 | 2046 | 1904 |
4004 | 3505 | 2410 | 2058 |
2092 | 3404 | 2798 | 2002 |
Таблица 1. Сглаживание методом скользящей средней |
Как видно из графика, увеличение n выдаёт более плавную функцию, таким образом нивелируя более мелкие колебания во временном ряду. Обратите внимание, что при сглаживании не имеет значения, совпадает график среднего с графиком данных или нет, целью является построение правильной формы.
Метод экспоненциального сглаживания
Метод экспоненциального сглаживания получил своё название потому, что в сглаженной функции экспоненциально убывает влияние предыдущего периода с неким коэффициентом чувствительности α. Сглаженное значение находится как разница между предыдущим действительным значением и рассчитанным значением:
D't = α·Dt-1 + (1-α)·D't-1
Коэффициент чувствительности, α, выбирается между 0 и 1, в качестве базиса используют значение 0,3. Если есть достаточная выборка, то коэффициент подбирается путём оптимизации.
Исходные данные | Экспоненциальное сглаживание, α=0,1 | Экспоненциальное сглаживание, α=0,6 | |
800 | 800 | 800 | |
822 | -640 | 160 | |
1134 | 658 | 429 | |
905 | -479 | 509 | |
1360 | 522 | 339 | |
1700 | -334 | 680 | |
986 | 471 | 748 | |
1794 | -325 | 292 | |
1536 | 472 | 960 | |
1268 | -271 | 538 | |
1150 | 371 | 546 | |
1493 | -219 | 472 | |
2168 | 346 | 707 | |
3049 | -95 | 1018 | |
3530 | 390 | 1422 | |
2075 | 2 | 1549 | |
3808 | 206 | 625 | |
4115 | 195 | 2035 | |
4004 | 236 | 1655 | |
2092 | 188 | 1740 | |
Таблица 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 |