Учебное пособие — разложение временного ряда в Qlik Sense
В этом учебном пособии демонстрируется использование трех функций диаграмм для разложения временного ряда с использованием алгоритма STL.
В этом учетном пособии данные временного ряда используются для вычисления количества пассажиров авиалинии за месяц, чтобы продемонстрировать функциональность алгоритма STL. Функции диаграммы STL_Trend, STL_Seasonal и STL_Residual будут использоваться для создания визуализаций. Для получения дополнительной информации о разложении временного ряда в Qlik Sense см. раздел Функции разложения временных рядов.
Создание приложения
Для начала создайте новое приложение и импортируйте в него набор данных.
Загрузите этот набор данных:
Tutorial — Time series decomposition
Этот файл содержит данные о количестве пассажиров авиалинии в месяц.
Выполните следующие действия.
-
Щелкните в хабе команду Создать новое приложение.
-
Откройте приложение и перетащите в него файл Tutorial — Time series decomposition.csv.
Подготовка и загрузка данных
Чтобы обеспечить правильную интерпретацию поля YearMonth в Qlik Sense, может потребоваться с помощью Диспетчера данных распознать поле как поле даты, а не как поле строковых значений. Обычно этот шаг обрабатывается автоматически, но в данном случае данные представлены в немного непривычном формате YYYY-MM.
-
В Диспетчере данных выберите таблицу и щелкните .
-
Выберите поле YearMonth, затем щелкните и задайте параметру Тип поля значение Дата.
-
В поле Формат ввода введите YYYY-MM.
-
В поле Формат отображения введите YYYY-MM и нажмите кнопку ОК.
Теперь поле должно быть помечено значком календаря.
-
Щелкните команду Загрузить данные.
Теперь можно приступать к работе с функциями STL для визуального представления данных.
Создание визуализаций
После этого будут созданы два линейных графика для демонстрации возможностей использования функций диаграммы STL_Trend, STL_Seasonal и STL_Residual.
Откройте новый лист и присвойте ему заголовок.
Добавьте два линейных графика на лист. Измените размер и положение графиков, как показано ниже.
Первый линейный график: компоненты тренда и сезонности
Выполните следующие действия.
-
Добавьте заголовок Сезонность и тренд в первый линейный график.
-
Добавьте измерение YearMonth и присвойте ему метку Дата.
-
Добавьте следующую меру и присвойте ей метку Пассажиров в месяц:
=Sum(Passengers)
-
Под измерением Дата разверните меру Пассажиров в месяц и щелкните Добавить линию тренда.
-
Параметру Тип задайте значение Линейная.
Эта линия тренда будет сравниваться со сглаженными выходными данными компонента тренда.
-
Добавьте следующую меру, чтобы нанести на график компонент тренда, и присвойте ей метку Тренд:
=STL_Trend(SUM(Passengers), 12)
-
Затем добавьте следующую меру, чтобы нанести на график компонент сезонности, и присвойте ей метку Сезонность:
=STL_Seasonal(SUM(Passengers), 12)
-
Выберите Вид > Представление и задайте параметру Полоса прокрутки значение Нет.
-
Оставьте цвета по умолчанию или измените их на свое усмотрение.
Второй линейный график: остаток
Затем настройте второй линейный график. Эта визуализация отображает остаток временного ряда.
Выполните следующие действия.
-
Перетащите линейный график на лист. Добавьте заголовок Остаток.
-
Добавьте измерение Дата.
-
Добавьте следующую меру и присвойте ей метку Остаток:
=STL_Residual(SUM(Passengers), 12)
-
Выберите Вид > Представление и задайте параметру Полоса прокрутки значение Нет.
Теперь лист должен выглядеть примерно так, как показано ниже.
Интерпретация и объяснение данных
Функции диаграммы STL позволяют сделать ряд наблюдений на основе данных временного ряда.
Компонент тренда
Статистическая информация в компоненте тренда не включает данные сезонности. Это упрощает отображение общих, неповторяющихся колебаний с течением времени. По сравнению с простым, линейным графиком тренда для меры Пассажиров в месяц, компонент тренда STL захватывает меняющиеся тренды. Он отображает некоторые очевидные отклонения, при этом все равно представляя данные удобочитаемом виде. Сглаживающее поведение в алгоритме STL позволяет захватить такие данные.
Уменьшения количества пассажиров, заметные на графике тренда STL, можно объяснить как часть экономического воздействия рецессии, которая наблюдалась в 1950-х годах.
Сезонный компонент
Сезонный компонент без данных о тренде изолировал повторяющиеся колебания на протяжении временного ряда, исключив общую информацию о тренде из этой части анализа. Для начала мы использовали набор данных, состоящий из агрегирований по году и месяцу. Эти данные подразумевают, что выполняется сегментирование данных по сегментам, равным одному месяцу. Задав для периода значение 12, мы настроили график для формирования сезонных моделей на протяжении годовых циклов (12 месяцев).
Данные включают повторяющуюся сезонную модель резкого увеличения количества пассажиров авиалинии в летние месяцы, за которым следует уменьшение их количества в зимние месяцы. Это соотносится с тем, что лето, как правило, является наиболее популярным сезоном для отпусков и путешествий. Кроме того, мы видим, что на протяжении временного ряда амплитуда этих сезонных циклов значительно усиливается.
Остаток
График остаточного компонента показывает всю информацию, не включенную в компоненты тренда и сезонности. Остаточный компонент включает статистический шум, но также может указывать на неправильную настройку аргументов функций STL тренда и сезонности. Как правило, если имеются периодические осцилляции в остаточном компоненте сигнала, или отображаемая информация очевидно не является рандомной, как правило, это указывает на то, что во временном ряду имеется информация, в данный момент не отраженная в компонентах сезонности или тренда. В этом случае необходимо пересмотреть определения каждого аргумента функции и, возможно, изменить периодичность.
Значения сглаживателей
Так как мы не указывали значения для сглаживателей тренда и сезонности, функция будет использовать значения по умолчанию для этих параметров. В Qlik Sense значения сглаживателей по умолчанию в алгоритме STL обеспечивают эффективные результаты. В результате в большинстве случаев эти аргументы могут опускаться в выражениях.
Значение сглаживателя тренда использует измерение, заданное на диаграмме. Так как поле YearMonth представляет данные по месяцам, значение сглаживателя тренда представляет собой количество месяцев. Сглаживатель сезонности будет отражать заданную периодичность. В данном случае, так как определен один период, который длится 12 месяцев (один год), значение сглаживателя сезонности представляет собой количество лет. Это может выглядеть запутанно, но на самом деле это означает, что для поиска сезонности необходимо рассматривать определенное количество сезонов. Это количество и есть сглаживатель сезонности.
Другая полезная информация
При условии, что амплитуда сезонных циклов увеличивается с течением времени, более передовой аналитический подход мог бы использовать логарифмические функции для создания мультипликативного разложения. На практике, в Qlik Sense можно создать простую меру относительной амплитуды, поделив компонент сезонности на компонент тренда. Когда это сделано, можно заметить, что с течением времени летние пики каждого цикла становятся больше с учетом относительной амплитуды. Однако амплитуда зимних спадов со временем не увеличивается.