Перейти к основному содержимому Перейти к дополнительному содержимому

Учебное пособие — разложение временного ряда в Qlik Sense

В этом учебном пособии демонстрируется использование трех функций диаграмм для разложения временного ряда с использованием алгоритма STL.

В этом учетном пособии данные временного ряда используются для вычисления количества пассажиров авиалинии за месяц, чтобы продемонстрировать функциональность алгоритма STL. Функции диаграммы STL_Trend, STL_Seasonal и STL_Residual будут использоваться для создания визуализаций. Для получения дополнительной информации о разложении временного ряда в Qlik Sense см. раздел Функции разложения временных рядов.

Создание приложения

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

Загрузите этот набор данных:

Tutorial — Time series decomposition

Этот файл содержит данные о количестве пассажиров авиалинии в месяц.

  1. Нажмите Добавить > Набор данных.

  2. Щелкните Загрузить файл данных.

  3. В диалоговом окне добавьте Tutorial — Time series decomposition.csv.

  4. Выберите пространство.

  5. Щелкните Загрузить и проанализировать. Будет создано новое приложение с данными в выбранном пространстве.

Подготовка и загрузка данных

Чтобы обеспечить правильную интерпретацию поля YearMonth в Qlik Sense, может потребоваться с помощью Диспетчера данных распознать поле как поле даты, а не как поле строковых значений. Обычно этот шаг обрабатывается автоматически, но в данном случае данные представлены в немного непривычном формате YYYY-MM.

  1. В Диспетчере данных выберите таблицу и щелкните Измените значок таблицы в Диспетчере данных..

  2. Выберите поле YearMonth, затем щелкните Измените значок таблицы в Диспетчере данных. и задайте параметру Тип поля значение Дата.

  3. В поле Формат ввода введите YYYY-MM.

  4. В поле Формат отображения введите YYYY-MM и нажмите кнопку ОК.

    Теперь поле должно быть помечено значком календаря.

  5. Щелкните команду Загрузить данные.

Теперь можно приступать к работе с функциями STL для визуального представления данных.

Создание визуализаций

После этого будут созданы два линейных графика для демонстрации возможностей использования функций диаграммы STL_Trend, STL_Seasonal и STL_Residual.

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

Добавьте два линейных графика на лист. Измените размер и положение графиков, как показано ниже.

Контур сетки Qlik Sense на пустом листе приложения

Пустой лист в новом приложении с заданным макетом и размером сетки

Первый линейный график: Компоненты тренда и сезонности

  1. Добавьте заголовок Сезонность и тренд в первый линейный график.

  2. Добавьте измерение YearMonth и присвойте ему метку Дата.

  3. Добавьте следующую меру и присвойте ей метку Пассажиров в месяц:

    =Sum(Passengers)

  4. Под измерением Дата разверните меру Пассажиров в месяц и щелкните Добавить линию тренда.

  5. Параметру Тип задайте значение Линейная.

    Эта линия тренда будет сравниваться со сглаженными выходными данными компонента тренда.

  6. Добавьте следующую меру, чтобы нанести на график компонент тренда, и присвойте ей метку Тренд:

    =STL_Trend(SUM(Passengers), 12)

  7. Затем добавьте следующую меру, чтобы нанести на график компонент сезонности, и присвойте ей метку Сезонность:

    =STL_Seasonal(SUM(Passengers), 12)

  8. Выберите Вид > Представление и задайте параметру Полоса прокрутки значение Нет.

  9. Оставьте цвета по умолчанию или измените их на свое усмотрение.

Второй линейный график: Остаток

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

  1. Перетащите линейный график на лист. Добавьте заголовок Остаток.

  2. Добавьте измерение Дата.

  3. Добавьте следующую меру и присвойте ей метку Остаток:

    =STL_Residual(SUM(Passengers), 12)

  4. Выберите Вид > Представление и задайте параметру Полоса прокрутки значение Нет.

Теперь лист должен выглядеть примерно так, как показано ниже.

Лист Qlik Sense для анализа пассажиров авиалинии

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

Интерпретация и объяснение данных

Функции диаграммы STL позволяют сделать ряд наблюдений на основе данных временного ряда.

Компонент тренда

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

Уменьшения количества пассажиров, заметные на графике тренда STL, можно объяснить как часть экономического воздействия рецессии, которая наблюдалась в 1950-х годах.

Сезонный компонент

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

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

Остаток

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

Значения сглаживателей

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

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

Значение сглаживателя тренда использует измерение, заданное на диаграмме. Так как поле YearMonth представляет данные по месяцам, значение сглаживателя тренда представляет собой количество месяцев. Сглаживатель сезонности будет отражать заданную периодичность. В данном случае, так как определен один период, который длится 12 месяцев (один год), значение сглаживателя сезонности представляет собой количество лет. Это может выглядеть запутанно, но на самом деле это означает, что для поиска сезонности необходимо рассматривать определенное количество сезонов. Это количество и есть сглаживатель сезонности.

Другая полезная информация

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

Помогла ли вам эта страница?

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