Составляющие временного ряда
При анализе временного ряда выделяют три составляющие: тренд, сезонность и шум. Тренд - это общая тенденция, сезонность, как следует из названия - влияния периодичности (день недели, время года и т.д.) и, наконец, шум - это случайные факторы.
Что бы понять отличие этих трёх величин, смоделируем функцию расстояния от земли до луны. Известно, что в среднем луна каждый год отдаляется на 4 см - это тренд, в течение дня луна совершает оборот вокруг земли и расстояние колеблется от ~362600 км до ~405400 км - это сезонность. Шум - это "случайные" факторы, например, влияние других планет. Если мы изобразим сумму этих трёх графиков, то мы получим временной ряд - функцию, показывающую изменение расстояния от земли до луны во времени.
Тренд. Методы сглаживания
Методы сглаживания необходимы для удаления шума из временного ряда. Существуют различные способы сглаживания, основные - это метод скользящей средней и метод экспоненциального сглаживания.
Метод скользящей средней
Идея метода скользящего среднего заключается в смещении точки графика на среднее значение некоторого интервала. В качестве интервала берут нечётное количество участков, например, три - предыдущий, текущий и следующий периоды, находится среднее и принимается в качестве сглаженного значения:
Si = Σkj=-k(xi+j)/(2k+1)
У данного метода есть проблема: случайное высокое или низкое значение сильно влияют на скользящую линию. В качестве решения были введены веса. Для распределение веса используют оконные функции, основные оконные функции - это окно Дирихле (прямоугольная функция), В-сплайны, полиномы, синусоидальные и косинусоидальные:
Минусы использования скользящей средней - это сложность вычислений и некорректные данные на концах графика.
Исходные данные | Скользящая средняя | Взвешенная скользящая средняя (синусоидальное окно, n=5) | Взвешенная скользящая средняя (окно Ганна, n=5) |
800 | 840 | 283 | 0 |
880 | 923 | 474 | 400 |
1088 | 930 | 554 | 440 |
953 | 1031 | 596 | 544 |
1204 | 1226 | 643 | 477 |
1660 | 1228 | 763 | 602 |
1094 | 1270 | 821 | 830 |
1122 | 1485 | 765 | 547 |
2064 | 1612 | 839 | 561 |
2168 | 1694 | 1098 | 1032 |
1420 | 1797 | 1158 | 1084 |
1537 | 1577 | 1010 | 710 |
1184 | 1599 | 845 | 769 |
2256 | 1948 | 967 | 592 |
2816 | 1802 | 1271 | 1128 |
950 | 1718 | 1271 | 1408 |
848 | 1689 | 885 | 475 |
2143 | 1941 | 759 | 424 |
3824 | 2445 | 1362 | 1072 |
2966 | 2978 | 2479 | 1912 |
Таблица 1. Сглаживание методом скользящей средней |
Как видно из графика, увеличение n выдаёт более плавную функцию, таким образом нивелируя более мелкие колебания во временном ряду. Обратите внимание, что при сглаживании не имеет значения, совпадает график среднего с графиком данных или нет, целью является построение правильной формы.
Метод экспоненциального сглаживания
Метод экспоненциального сглаживания получил своё название потому, что в сглаженной функции экспоненциально убывает влияние предыдущего периода с неким коэффициентом чувствительности α. Сглаженное значение находится как разница между предыдущим действительным значением и рассчитанным значением:
D't = α·Dt-1 + (1-α)·D't-1
Коэффициент чувствительности, α, выбирается между 0 и 1, в качестве базиса используют значение 0,3. Если есть достаточная выборка, то коэффициент подбирается путём оптимизации.
Исходные данные | Экспоненциальное сглаживание, α=0,1 | Экспоненциальное сглаживание, α=0,6 | |
800 | 800 | 800 | |
880 | -640 | 160 | |
1088 | 664 | 464 | |
953 | -489 | 467 | |
1204 | 535 | 385 | |
1660 | -361 | 568 | |
1094 | 491 | 769 | |
1122 | -333 | 349 | |
2064 | 412 | 534 | |
2168 | -164 | 1025 | |
1420 | 364 | 891 | |
1537 | -186 | 496 | |
1184 | 321 | 724 | |
2256 | -171 | 421 | |
2816 | 380 | 1185 | |
950 | -60 | 1216 | |
848 | 149 | 84 | |
2143 | -49 | 475 | |
3824 | 258 | 1096 | |
2966 | 150 | 1856 | |
Таблица 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 |