Как детрендировать данные (с примерами)


«Удалить тренд» данных временных рядов означает удалить основной тренд в данных. Основная причина, по которой мы хотели бы сделать это, состоит в том, чтобы легче увидеть субтренды в данных, которые являются сезонными или циклическими.

Например, рассмотрим следующие данные временного ряда, представляющие общий объем продаж некоторой компании за 20 последовательных периодов:

Ясно, что продажи имеют тенденцию к росту с течением времени, но в данных также наблюдается циклическая или сезонная тенденция, которую можно увидеть по крошечным «холмам», возникающим с течением времени.

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

Существует два распространенных метода, используемых для удаления тренда данных временных рядов:

1. Удаление тренда путем дифференцирования

2. Удаление тренда путем подбора модели

В этом руководстве дается краткое объяснение каждого метода.

Метод 1: удаление тренда путем дифференцирования

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

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

Чтобы получить первое значение данных временного ряда без тренда, мы вычисляем 13 – 8 = 5. Затем, чтобы получить следующее значение, мы вычисляем 18-13 = 5 и так далее.

На следующем графике показаны данные исходного временного ряда:

И этот график показывает данные без тренда:

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

Метод 2: удаление тренда с помощью подбора модели

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

Например, предположим, что у нас есть один и тот же набор данных:

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

Затем мы можем найти разницу между фактическим значением и прогнозируемым значением для каждого наблюдения. Эти различия представляют данные без тренда.

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

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