Работа с компонентом Автокорреляция
При анализе и моделировании временных рядов аналитики сталкиваются с необходимостью подтвердить наличие трендов и сезонности, т.к. без учета этих факторов возможны серьезные ошибки в результатах анализа данных и прогнозах.
Автокорреляция успешно решает подобные проблемы, помогая отслеживать устойчивые и регулярные изменения в данных за выбранный промежуток времени.
В данном демопримере показан автокорреляционный анализ объёма продаж. Это позволяет определить силу влияния прошлых значений на будущие, выявить возможные тренды и сезонность.
Описание алгоритма
1. Импорт данных
Таблица Данные для анализа:
Имя | Метка |
---|---|
Артикул | |
Дата | |
Объем продаж |
2. Автокорреляция
Для отбора одного артикула из списка используется узел Фильтр строк, в котором заданы следующие настройки:
- Поле — Артикул
- Условие —
=
- Значение для сравнения — 1
В узле Автокорреляция на первой странице мастера настроек выбраны следующие параметры:
- для поля Объем продаж установлено назначение Используемое
- для полей Артикул и Дата установлено назначение Не задано
На следующей странице заданы настройки:
- Количество отсчетов — 13
- Область расчета АКФ — Автоматически
- Рассчитывать ЧАКФ — поставлена галочка
Примечание: Следует учитывать, что с увеличением лага на единицу число пар значений, по которым рассчитывается коэффициент автокорреляции, уменьшается на 1. Поэтому обычно рекомендуют максимальный порядок коэффициента автокорреляции, равный
n/4
.
Расчет по всем артикулам выполняется с помощью узла Цикл, который настроен на Автокорреляция по одному артикулу. В настройках задан следующий способ итерации цикла:
- Вид цикла — Групповая обработка
- Вид групповой обработки — Разбиение по уникальным значениям полей по полю Артикул
Результаты обработки можно посмотреть в узле Полученные данные с помощью визуализатора Куб. Для наглядности также добавлена Диаграмма. В таблице видно, что полученные значения АКФ медленно убывают, что позволяет предполагать наличие тренда. На диаграмме наблюдаются регулярные пики АКФ в весенние и зимние месяцы для всех артикулов. Данные колебания значений позволяют построить гипотезу о сезонности.
3. Консолидация данных
Для подтверждения устойчивости зависимости между соседними значениями ряда используется лаг 2, помогая отделить тренд от шума и случайных колебаний. Этот лаг дополняет информацию от лага 1 и повышает точность выявления тренда. Однако выбор лага должен учитывать особенности данных, и часто анализируются несколько лагов (1, 2, 3 и т.д.) с помощью автокорреляционной функции для полной картины.
В данном примере значение лага установлено меньше или равно двум, что позволяет наблюдать тренд через постепенное снижение или повышение автокорреляционной функции на малых лагах.
В фильтре заданы следующие настройки:
- Поле — Лаг
- Условие —
<=
- Значение для сравнения — 2
В подмодели Проверка наличия тренда исследуется гипотеза, что во временных рядах присутствует тренд.
В узле Присвоение значения с помощью функций IF и Data проверяется, что значение АКФ уменьшается и столбец Объем продаж: Значимость = TRUE
. В зависимости от выполнения этого условия полю trend_check присваивается значение 1 или 0 по каждому артикулу.
Также с помощью функции CumulativeSum в данном узле вычисляется сумма присвоенных значений для каждого артикула.
В узле Группировка выбирается значение тренда для максимального лага по артикулу. В узле заданы следующие параметры:
- Группа — Артикул
- Показатели — Лаг, Проверка
- Метод агрегации для всех показателей — Максимум
В узле Проверка с помощью функции IF проверяется равно ли значение суммы, полученной ранее, максимальному лагу.
В узле Исключение лишних отсекаются поля, которые не потребуются для дальнейших вычислений.
Из полученных данных видно, что автокорреляция наблюдается на малых лагах, значит, ряд обладает трендом, и каждое новое значение зависит от предыдущего.
В подмодели Проверка сезонности проверяется ранее выдвинутая гипотеза о наличии сезонности.
С помощью обработчика Сортировка данные структурируются по возрастанию лага.
В узле Группировка заданы следующие параметры:
- Группа — Артикул
- Показатели — Объем продаж: АКФ, Объем продаж: ЧАКФ, Лаг, Объем продаж: Значимость
- Метод агрегации для всех показателей — Первый
В узле Выявление сезонности используется функция IF для проверки сезонности по АФК и ЧАФК.
В узле Исключение лишних отсекаются поля, которые использовались в прошлых вычислениях.
Хотя частичная автокорреляция(ЧАКФ) менее чувствительна к сезонности, регулярное появление высоких положительных или отрицательных коэффициентов на фиксированных интервалах тоже может свидетельствовать о её наличии.
Если автокорреляционные коэффициенты демонстрируют регулярные повторяющиеся максимумы и минимумы на определенных интервалах (лагах), это указывает на возможное наличие сезонности. В данном примере временные ряды показывают положительные автокорреляции каждые 12 месяцев, значит присутствует годовое колебание.
Пример построения прогноза продаж с использованием узла ARIMAX
Очистка данных с использованием узла Дубликаты и противоречия
Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно
Минимальные требования к системе:
- Операционная система: Windows 10 и выше
- CPU x64: 2 core 1
- Оперативная память: 4 GB
- Жесткий диск: 10 GB
1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2, POPCNT.