Методы анализа временных рядов: сглаживание

metody analiza vremennyh ryadov sglazhivanie1 1 - Методы анализа временных рядов: сглаживание

Временным рядом называется последовательность значений, изменяемых во времени. О некоторых простых, но эффективных подходах к работе с подобными последовательностями я попробую рассказать в данной статье. Примеров таких данных можно встретить очень много – котировки валют, объемы продаж, обращения клиентов, данные в различных прикладных науках (социология, метеорология, геология, наблюдения в физике) и многое другое.

 

Ряды являются распространенной и важной формой описания данных, так как позволяют наблюдать всю историю изменения интересующего нас значения. Это даёт нам возможность судить о «типичном» поведении величины и об отклонениях от такого поведения.

 

Передо мной встала задача выбрать набор данных, на котором можно было бы наглядно продемонстрировать особенности временных рядов. Я решил воспользоваться статистикой пассажиропотока на международных авиалиниях, поскольку этот набор данных весьма нагляден и стал своего рода стандартным (http://robjhyndman.com/tsdldata/data/airpass.dat, источник Time Series Data Library, R. J. Hyndman). Ряд описывает количество пассажиров международных авиалиний в месяц (в тысячах) за период с 1949 по 1960 года.

 

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

ris. 1 - Методы анализа временных рядов: сглаживание

Временной ряд

Первое, что мы обычно делаем с временным рядом, это отображаем его на графике. Prognoz Platform позволяет построить график, просто «перетащив» ряд в рабочую книгу.

ris. 2 1024x653 - Методы анализа временных рядов: сглаживание

Временной ряд на графике

Символ ‘M’ в конце имени ряда означает, что ряд имеет месячную динамику (интервал между наблюдениями равен одному месяцу).

Уже из графика мы видим, что ряд демонстрирует две особенности:

  • тренд – на нашем графике это долгосрочный рост наблюдаемых значений. Видно, что тренд практически линейный.
  • сезонность – на графике это периодические колебания величины. В следующей статье на тему временных рядов мы узнаем, как можно вычислить период.

Наш ряд достаточно «аккуратный», однако часто встречаются ряды, которые помимо двух описанных выше характеристик демонстрируют ещё одну – наличие «шума», т.е. случайных вариаций в той или иной форме. Пример такого ряда можно увидеть на графике ниже. Это синусоидальный сигнал, смешанный со случайной величиной.

ris. 3 1024x655 - Методы анализа временных рядов: сглаживание

Временной ряд с шумом

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

 

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

Скользящее среднее

Самый простой метод сглаживания рядов – скользящее среднее. Идея заключается в том, что для любого нечётного количества точек последовательности ряда заменять центральную точку на среднее арифметическое остальных точек:

formula11 - Методы анализа временных рядов: сглаживание

где xi – исходный ряд, si – сглаженный ряд.

 

Ниже можно увидеть результат применения данного алгоритма к двум нашим рядам. По умолчанию предлагаем использовать сглаживание с размером окна в 5 точек (k в нашей формуле выше будет равно 2). Обратите внимание, что сглаженный сигнал уже не так подвержен влиянию шума, однако вместе с шумом, естественно, пропадает и часть полезной информации о динамике ряда. Также видно, что у сглаженного ряда отсутствуют первые (и также последние) k точек. Это связано с тем, что сглаживание выполняется для центральной точки окна (в нашем случае для третьей точки), после чего окно сдвигается на одну точку, и вычисления повторяются. Для второго, случайного ряда, я использовал сглаживание с окном равным 30, чтобы лучше выявить структуру ряда, так как ряд «высокочастотный», точек очень много.

ris. 4 1024x651 - Методы анализа временных рядов: сглаживание
Сглаживание временного ряда с размером окна в 5 точек

 

ris. 5 1024x654 - Методы анализа временных рядов: сглаживание

Метод скользящего среднего

Метод скользящего среднего имеет определённые недостатки:

  • Скользящее среднее неэффективно в вычислении. Для каждой точки среднее необходимо перевычислять по новой. Мы не можем переиспользовать результат, вычисленный для предыдущей точки.
  • Скользящее среднее нельзя продлить на первые и последние точки ряда. Это может вызвать проблему, если нас интересуют именно эти точки.
  • Скользящее среднее не определено за пределами ряда, и как следствие, не может использоваться для прогнозирования.

Узнайте о других решениях

Экспоненциальное сглаживание

Более продвинутый метод сглаживания, который также можно использовать для прогнозирования – экспоненциальное сглаживание, также иногда называемое методом Хольта-Уинтерса (Holt-Winters) в честь имён его создателей.

 

Существует насколько вариантов данного метода:

  • одинарное сглаживание для рядов, у которых нет тренда и сезонности;
  • двойное сглаживание для рядов, у которых есть тренд, но нет сезонности;
  • тройное сглаживание для рядов, у которых есть и тренд, и сезонность.

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

 

В простейшем варианте одинарного сглаживания соотношение такое:

formula2 - Методы анализа временных рядов: сглаживание

Параметр α определяет соотношение между несглаженным значением на текущем шаге и сглаженным значением с предыдущего шага. При α=1 мы будем брать только точки исходного ряда, т.е. никакого сглаживания не будет. При α=0 ряд мы будем брать только сглаженные значения с предыдущих шагов, т.е. ряд превратится в константу.

 

Чтобы понять, почему сглаживание называется экспоненциальным, нам нужно раскрыть соотношение рекурсивно:

formula3 - Методы анализа временных рядов: сглаживание

Из соотношения видно, что все предыдущие значения ряда вносят вклад в текущее сглаженное значение, однако их вклад угасает экспоненциально за счёт роста степени параметра α.

 

Однако, если в данных есть тренд, простое сглаживание будет «отставать» от него (либо придётся брать значения α близкими к 1, но тогда сглаживание будет недостаточным). Нужно использовать двойное экспоненциальное сглаживание.

 

Двойное сглаживание использует уже два уравнения – одно уравнение оценивает тренд как разницу между текущим и предыдущим сглаженным значениями, потом сглаживает тренд простым сглаживанием. Второе уравнение выполняет сглаживание как в случае простого варианта, но во втором слагаемом используется сумма предыдущего сглаженного значения и тренда.

 

Тройное сглаживание включает ещё один компонент – сезонность, и использует ещё одно уравнение. При этом различаются два варианта сезонного компонента – аддитивный и мультипликативный. В первом случае амплитуда сезонного компонента постоянна и со временем не зависит от базовой амплитуды ряда. Во втором случае амплитуда меняется вместе с изменением базовой амплитуды ряда. Это как раз наш случай, как видно из графика. С ростом ряда амплитуда сезонных колебаний увеличивается.

 

Так как наш первый ряд имеет и тренд, и сезонность, я решил подобрать параметры тройного сглаживания для него. Это довольно просто сделать, потому что при обновлении значения параметра платформа сразу же перерисовывает график сглаженного ряда, и визуально можно сразу увидеть, насколько хорошо он описывает наш исходный ряд. Я остановился на следующих значениях:

ris. 6 - Методы анализа временных рядов: сглаживание

Параметры сезонности временного ряда

Как я вычислил период, мы рассмотрим в следующей статье о временных рядах.

 

Обычно в качестве первых приближений можно рассматривать значения между 0,2 и 0,4. Также использует модель с дополнительным параметром ɸ, который дэмпфирует тренд так, что он приближается к константе в будущем. Для ɸ я взял значение 1, что соответствует обычной модели.

 

Также я сделал прогноз значений ряда данным методом на последние 2 года. На рисунке ниже я пометил точку начала прогноза, проведя через неё черту. Как видно, исходный ряд и сглаженный весьма неплохо совпадают, в том числе и на периоде прогнозирования – неплохо для такого простого метода!

ris. 7 1024x652 - Методы анализа временных рядов: сглаживание

Прогноз значений временного ряда

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

 

Описанные методы весьма просты, их легко применять, и они являются хорошей отправной точкой для анализа структуры и прогнозирования временных рядов.

Методы анализа

Напишите нам

и мы ответим в течении часа

support@asu-analitika.ru

Sorry, we couldn't find any posts. Please try a different search.

Нет загрузок по выбранному критерию

Несколько видео о наших продуктах

085 - Методы анализа временных рядов: сглаживание
Проиграть видео
Презентация аналитической платформы Tibco Spotfire
106 - Методы анализа временных рядов: сглаживание
Проиграть видео
Отличительные особенности Tibco Spotfire 10X
1 11 - Методы анализа временных рядов: сглаживание
Проиграть видео
Как аналитика данных помогает менеджерам компании
2019-08-06T00:36:01+02:00Август 5th, 2019|Рубрики: Data Mining|Метки: , , , , , , |