Продвинутый анализ временных рядов в Apache Superset
На предыдущих уроках мы уже работали с временными данными. Мы строили линейные графики, анализировали изменение продаж по месяцам и изучали базовую динамику бизнеса. Однако в реальной аналитике простого графика выручки часто недостаточно.
Представим ситуацию. Руководитель интернет-магазина видит, что продажи в мае составили 2 миллиона рублей, а в июне — 2,2 миллиона. Возникает вопрос: это хороший результат или нет? Насколько рост значительный? Является ли он частью долгосрочного тренда или это случайное колебание?
Чтобы ответить на подобные вопросы, аналитики используют более продвинутые методы анализа временных рядов.
В Apache Superset для этого служат чарты семейства Time-series (Line Chart, Area Chart, Bar Chart, Mixed Time-Series и другие, построенные на движке ECharts), а также раздел настроек Advanced Analytics на вкладке Data. Вместе они позволяют не только отображать данные во времени, но и выполнять сравнение периодов, строить накопительные показатели, рассчитывать скользящие метрики и строить прогнозы.
В этом уроке мы познакомимся с этими возможностями и научимся извлекать из временных данных гораздо больше информации, чем позволяют обычные линейные графики.
Ключевые термины
- Time-series chart family — группа визуализаций Superset (Line, Area, Bar, Mixed Time-Series и др.), предназначенных для анализа временных данных.
- Time Series — последовательность значений, упорядоченных по времени.
- Trend — долгосрочное направление изменения показателя.
- Seasonality — повторяющиеся изменения показателя через определенные промежутки времени.
- Rolling Window — блок настроек, рассчитывающий показатель по скользящему временному окну (функции Mean, Sum, Std, Cumsum).
- Moving Average — скользящее среднее значение показателя, один из вариантов Rolling Window (функция Mean).
- Time Comparison — блок настроек для сравнения текущего периода с предыдущим (сдвиг во времени: неделя, месяц, год назад и т.д.).
- Resample — изменение частоты агрегации временного ряда (например, из ежедневных данных получить недельные) с выбором метода заполнения пропусков.
- Time Grain — уровень агрегации времени: день, неделя, месяц, квартал или год.
- Predictive Analytics (Forecast) — встроенный инструмент построения прогноза на основе модели Prophet с доверительным интервалом.
Почему обычного Line Chart бывает недостаточно
В одном из предыдущих уроков мы использовали Line Chart для отображения выручки по месяцам. Такой график отлично показывает общую динамику бизнеса.
Например, мы сразу видим, что продажи растут. Но появляется следующий вопрос: «Насколько этот рост отличается от прошлого года?» Или: «Это устойчивый тренд или случайный всплеск?»
Настроек базового Line Chart по умолчанию не всегда достаточно для ответа на такие вопросы. Для более глубокого анализа используется раздел Advanced Analytics, доступный на вкладке Data при настройке чарта.
Что дают чарты Time-series и Advanced Analytics
Чарты семейства Time-series можно рассматривать как расширенную версию обычного линейного графика. Они специально созданы для работы с временными рядами и, благодаря разделу Advanced Analytics, содержат дополнительные аналитические возможности.
В отличие от простого отображения точек по оси времени, здесь доступны:
- сравнение периодов (Time Comparison);
- скользящие и накопительные метрики (Rolling Window);
- изменение частоты агрегации (Resample);
- построение прогноза (Predictive Analytics);
- отображение нескольких временных рядов одновременно (например, через Mixed Time-Series).
Именно поэтому для серьезной аналитики временных данных обычно используют эти чарты вместе с настройками Advanced Analytics, а не голый линейный график.
Анализ трендов
Одна из главных задач временного анализа — поиск трендов. Тренд показывает долгосрочное направление развития показателя. Например, продажи интернет-магазина могут постепенно увеличиваться месяц за месяцем.
При этом отдельные месяцы могут быть хуже предыдущих. Однако если рассматривать данные на большом интервале времени, становится видно устойчивое движение вверх. Представим следующую ситуацию.
Продажи по месяцам выглядят так:
1.2 млн
1.4 млн
1.3 млн
1.6 млн
1.5 млн
1.8 млн
Несмотря на отдельные колебания, общий тренд остается положительным. Именно такие закономерности чаще всего интересуют руководство компании.
Почему данные могут быть шумными
В реальном бизнесе показатели редко изменяются плавно.
На продажи влияют:
- праздники;
- рекламные кампании;
- выход новых товаров;
- действия конкурентов;
- погодные условия;
- экономическая ситуация.
Поэтому временной ряд почти всегда содержит случайные колебания. Иногда они настолько сильны, что скрывают общий тренд. Например, в один день проходит крупная акция, а на следующий продажи возвращаются к обычному уровню. Если смотреть только на ежедневные значения, можно сделать неправильные выводы. Для борьбы с подобным шумом используется настройка Rolling Window.
Что такое Rolling Window
Rolling Window — блок настроек в разделе Advanced Analytics, который позволяет рассчитывать показатели на основе скользящего окна. Представим, что мы анализируем ежедневные продажи. Вместо того чтобы смотреть на каждый день отдельно, можно рассчитывать среднее значение за последние семь дней. Такой подход сглаживает случайные скачки и помогает увидеть общую картину.
Например:
День 1: 100 заказов
День 2: 250 заказов
День 3: 120 заказов
День 4: 110 заказов
Отдельные значения сильно отличаются друг от друга. Но если применить Rolling Window с функцией Mean и окном в неделю, график станет значительно стабильнее. Это позволяет лучше видеть реальные изменения бизнеса.
Скользящее среднее и другие функции Rolling Window
В блоке Rolling Window доступна функция Mean — классическое скользящее среднее. Суть метода очень проста: для каждой точки рассчитывается среднее значение за несколько предыдущих периодов.
Кроме Mean, доступны и другие функции:
- Sum — сумма значений за окно;
- Std — стандартное отклонение, показывающее разброс значений;
- Cumsum — накопительная сумма с начала периода.
Также задаются два параметра:
- Periods — размер окна (количество дней, недель и т. д.);
- Min Periods — минимальное количество точек, необходимое для расчета значения (например, чтобы недельное среднее не считалось по неполной неделе).
Чем больше окно, тем сильнее сглаживаются колебания. Однако слишком большое окно может скрыть важные изменения. Поэтому размер окна всегда зависит от аналитической задачи.
Для интернет-магазина часто используют:
- 7 дней для ежедневных данных;
- 4 недели для недельных данных;
- 12 месяцев для месячных данных.
Накопительные показатели
Еще одна полезная возможность — накопительные метрики через функцию Cumsum в блоке Rolling Window. Представим, что руководство хочет видеть не только продажи за каждый месяц, но и общий объем выручки с начала года.
Например, обычный график покажет значения отдельно:
Январь: 1 млн
Февраль: 1.2 млн
Март: 1.5 млн
Накопительный график (Cumsum) будет выглядеть иначе:
Январь: 1 млн
Февраль: 2.2 млн
Март: 3.7 млн
Теперь можно увидеть, как постепенно накапливается результат компании. Такие графики часто используются для анализа выполнения планов и достижения годовых целей.
Сравнение периодов
Одна из самых востребованных функций временной аналитики — сравнение различных периодов через блок Time Comparison в разделе Advanced Analytics. Представим, что интернет-магазин заработал в июне 2.5 млн ₽. Само по себе это число мало о чем говорит.
Важно понять контекст.
Для этого можно задать сдвиг времени (Time Shift) и сравнить июнь:
- с маем;
- с предыдущим кварталом;
- с июнем прошлого года.
После сравнения может оказаться, что продажи выросли на 25%. Именно такой показатель гораздо полезнее для бизнеса. Поэтому опытные аналитики почти никогда не анализируют отдельные значения без исторического контекста.
Сравнение текущего и прошлого года
Один из наиболее популярных сценариев — Year-over-Year анализ.
Например:
Июнь 2024: 2.0 млн ₽
Июнь 2025: 2.5 млн ₽
На первый взгляд разница очевидна. Но гораздо удобнее видеть это на одном графике. Настройка Time Comparison позволяет наложить прошлый период поверх текущего прямо на одном графике, а такие чарты, как Mixed Time-Series, — отображать несколько независимых временных рядов одновременно. Подобный график позволяет сразу увидеть различия между периодами.
Поиск сезонности
Многие бизнесы сталкиваются с сезонными колебаниями. Например, интернет-магазин электроники может получать всплеск продаж в декабре. Причина очевидна — новогодние праздники. Если такая ситуация повторяется ежегодно, мы имеем дело с сезонностью.
Выявление сезонности помогает:
- прогнозировать спрос;
- планировать закупки;
- распределять рекламный бюджет;
- оценивать результаты акций.
Без учета сезонности аналитик может сделать ошибочные выводы. Например, декабрьский рост продаж может показаться результатом маркетинговой кампании, хотя на самом деле подобный рост происходит каждый год.
Для количественной оценки сезонности и построения прогноза на будущее можно использовать встроенный инструмент Predictive Analytics, который строит прогноз на основе модели Prophet вместе с доверительным интервалом — это помогает не только увидеть сезонность, но и спрогнозировать дальнейшую динамику показателя.
Как отличить тренд от сезонности
Это одна из самых важных задач временного анализа. Тренд показывает общее направление развития бизнеса. Сезонность показывает повторяющиеся колебания.
Представим продажи интернет-магазина за несколько лет. Если каждый декабрь наблюдается всплеск, это сезонность. Если при этом каждый новый год приносит больше выручки, чем предыдущий, это тренд.
Обычно оба эффекта существуют одновременно. Поэтому хороший аналитик всегда пытается отделить долгосрочное развитие бизнеса от сезонных факторов.
Когда использовать продвинутую временную аналитику
Не каждый график требует Rolling Window или Time Comparison. Если задача простая и нужно быстро посмотреть продажи за месяц, достаточно обычного Line Chart без дополнительных настроек.
Продвинутые инструменты становятся полезными, когда нужно:
- выявлять закономерности;
- анализировать эффективность бизнеса;
- сравнивать периоды;
- прогнозировать результаты;
- искать причины изменений показателей.
Именно в таких задачах Advanced Analytics раскрывает свои возможности.
Наиболее частые ошибки
- Анализировать только отдельные значения без сравнения периодов.
Без контекста сложно понять, хороший результат получен или плохой. - Игнорировать сезонность.
Сезонные колебания могут сильно влиять на показатели. - Использовать слишком маленькое окно для Rolling Window.
В этом случае шум практически не сглаживается. - Использовать слишком большое окно сглаживания.
Важные изменения могут стать незаметными. - Сравнивать периоды разной длительности.
Это может привести к неправильным выводам. - Делать выводы по нескольким точкам данных.
Для поиска трендов нужен достаточно длинный временной ряд. - Путать сезонность и тренд.
Это разные явления, которые требуют отдельного анализа. - Использовать слишком детализированные данные.
Иногда месячная агрегация оказывается полезнее ежедневной — для этого можно применить Resample.
Наиболее частые вопросы
- Чем чарты Time-series отличаются от обычного графика без настроек Advanced Analytics?
Раздел Advanced Analytics добавляет к обычному отображению данных дополнительные инструменты: Time Comparison, Rolling Window, Resample и построение прогноза. - Когда использовать скользящее среднее?
Когда необходимо сгладить случайные колебания и лучше увидеть общий тренд. - Что такое Rolling Window?
Это блок настроек для расчета показателей по скользящему временному окну (Mean, Sum, Std, Cumsum). - Для чего нужны накопительные показатели?
Они помогают отслеживать общий результат с начала периода и оценивать выполнение планов. - Как найти сезонность в данных?
Нужно анализировать данные за несколько циклов и искать повторяющиеся закономерности, а для количественной оценки можно использовать Predictive Analytics. - Почему продажи растут каждый декабрь?
Это типичный пример сезонного эффекта для многих отраслей. - Можно ли использовать несколько временных рядов на одном графике?
Да. Это один из самых распространенных сценариев анализа, реализуемый, например, через Mixed Time-Series или через Time Comparison. - Когда достаточно обычного Line Chart?
Когда требуется базовый анализ динамики без дополнительных расчетов и сравнений.
Итоги
В этом уроке мы познакомились с продвинутыми возможностями анализа временных рядов в Apache Superset. Мы разобрались, чем чарты семейства Time-series вместе с разделом Advanced Analytics отличаются от обычного линейного графика, научились анализировать тренды, сравнивать периоды, использовать накопительные показатели и Rolling Window. Также мы рассмотрели сезонность и научились отличать ее от долгосрочных тенденций развития бизнеса.
Теперь мы умеем не просто отображать данные во времени, а извлекать из временных рядов реальные бизнес-инсайты. Это один из самых важных навыков аналитика, поскольку большинство управленческих решений связано именно с анализом изменений показателей во времени.
В следующем уроке мы перейдем к подготовке данных для сложной аналитики и научимся использовать JOIN, агрегации и вычисления для создания более гибких аналитических наборов данных.