Составляющие временного ряда
При анализе временного ряда выделяют три составляющие: тренд, сезонность и шум. Тренд - это общая тенденция, сезонность, как следует из названия - влияния периодичности (день недели, время года и т.д.) и, наконец, шум - это случайные факторы.
Что бы понять отличие этих трёх величин, смоделируем функцию расстояния от земли до луны. Известно, что в среднем луна каждый год отдаляется на 4 см - это тренд, в течение дня луна совершает оборот вокруг земли и расстояние колеблется от ~362600 км до ~405400 км - это сезонность. Шум - это "случайные" факторы, например, влияние других планет. Если мы изобразим сумму этих трёх графиков, то мы получим временной ряд - функцию, показывающую изменение расстояния от земли до луны во времени.
Тренд. Методы сглаживания
Методы сглаживания необходимы для удаления шума из временного ряда. Существуют различные способы сглаживания, основные - это метод скользящей средней и метод экспоненциального сглаживания.
Метод скользящей средней
Идея метода скользящего среднего заключается в смещении точки графика на среднее значение некоторого интервала. В качестве интервала берут нечётное количество участков, например, три - предыдущий, текущий и следующий периоды, находится среднее и принимается в качестве сглаженного значения:
Si = Σkj=-k(xi+j)/(2k+1)
У данного метода есть проблема: случайное высокое или низкое значение сильно влияют на скользящую линию. В качестве решения были введены веса. Для распределение веса используют оконные функции, основные оконные функции - это окно Дирихле (прямоугольная функция), В-сплайны, полиномы, синусоидальные и косинусоидальные:
Минусы использования скользящей средней - это сложность вычислений и некорректные данные на концах графика.
Исходные данные | Скользящая средняя | Взвешенная скользящая средняя (синусоидальное окно, n=5) | Взвешенная скользящая средняя (окно Ганна, n=5) |
800 | 830 | 283 | 0 |
860 | 859 | 469 | 400 |
918 | 899 | 519 | 430 |
1016 | 935 | 561 | 459 |
944 | 1057 | 583 | 508 |
1350 | 1328 | 654 | 472 |
2000 | 1590 | 858 | 675 |
2067 | 1898 | 1104 | 1000 |
2176 | 2098 | 1255 | 1034 |
2150 | 1948 | 1289 | 1088 |
1400 | 1687 | 1170 | 1075 |
1020 | 1778 | 910 | 700 |
2540 | 1720 | 952 | 510 |
1918 | 1675 | 1154 | 1270 |
1220 | 1635 | 1144 | 959 |
860 | 1712 | 796 | 610 |
2848 | 1483 | 934 | 430 |
1004 | 1927 | 1042 | 1424 |
2996 | 2354 | 1284 | 502 |
2567 | 2189 | 1840 | 1498 |
Таблица 1. Сглаживание методом скользящей средней |
Как видно из графика, увеличение n выдаёт более плавную функцию, таким образом нивелируя более мелкие колебания во временном ряду. Обратите внимание, что при сглаживании не имеет значения, совпадает график среднего с графиком данных или нет, целью является построение правильной формы.
Метод экспоненциального сглаживания
Метод экспоненциального сглаживания получил своё название потому, что в сглаженной функции экспоненциально убывает влияние предыдущего периода с неким коэффициентом чувствительности α. Сглаженное значение находится как разница между предыдущим действительным значением и рассчитанным значением:
D't = α·Dt-1 + (1-α)·D't-1
Коэффициент чувствительности, α, выбирается между 0 и 1, в качестве базиса используют значение 0,3. Если есть достаточная выборка, то коэффициент подбирается путём оптимизации.
Исходные данные | Экспоненциальное сглаживание, α=0,1 | Экспоненциальное сглаживание, α=0,6 | |
800 | 800 | 800 | |
860 | -640 | 160 | |
918 | 662 | 452 | |
1016 | -504 | 370 | |
944 | 555 | 462 | |
1350 | -405 | 382 | |
2000 | 500 | 657 | |
2067 | -250 | 937 | |
2176 | 432 | 865 | |
2150 | -171 | 960 | |
1400 | 369 | 906 | |
1020 | -192 | 478 | |
2540 | 275 | 421 | |
1918 | 7 | 1356 | |
1220 | 186 | 608 | |
860 | -45 | 489 | |
2848 | 127 | 320 | |
1004 | 171 | 1581 | |
2996 | -54 | -30 | |
2567 | 348 | 1810 | |
Таблица 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 |