Microsoft Time Series Algorithm Technical Reference

Применимо к: SQL Server 2019 и более ранних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

Важно!

Интеллектуальный анализ данных не рекомендуется использовать в службах SQL Server 2017 Analysis Services, а в SQL Server 2022 Analysis Services его поддержка прекращена. Документация не обновляется для устаревших и неподдерживаемых функций. Дополнительные сведения см. в статье об обратной совместимости служб Analysis Services.

Алгоритм временных рядов (Майкрософт) включает два отдельных алгоритма для анализа временных рядов:

  • Алгоритм ARTXP, представленный в SQL Server 2005 году (9.x), оптимизирован для прогнозирования следующего вероятного значения в ряду.

  • Алгоритм ARIMA был добавлен в SQL Server 2008 году для повышения точности долгосрочного прогнозирования.

По умолчанию SQL Server Analysis Services использует каждый алгоритм отдельно для обучения модели, а затем объединяет результаты, чтобы получить наилучший прогноз для переменного числа прогнозов. Также можно выбрать для использования только один алгоритм, в зависимости от имеющихся данных и требований к прогнозам. В SQL Server 2008 Enterprise можно также настроить точку обрезки, которая управляет сочетанием алгоритмов во время прогнозирования.

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

Реализация алгоритма временных рядов (Майкрософт)

Microsoft Research разработала исходный алгоритм ARTXP, который использовался в SQL Server 2005 г., на основе реализации алгоритма Дерева принятия решений Майкрософт. Таким образом, алгоритм ARTXP можно описать, как модель дерева с авторегрессией для представления данных в периодических временных рядах. Этот алгоритм устанавливает соотношение между переменным количеством предыдущих элементов и каждым текущим элементом, для которого выполняется прогноз. Название ARTXP отражает тот факт, что алгоритм ART (или метод дерева с авторегрессией) применяется ко многим неизвестным первоначальным состояниям. Подробное описание алгоритма ARTXP см. в статье Модели деревьев с авторегрессией для анализа временных рядов.

Алгоритм ARIMA был добавлен к алгоритму временных рядов (Майкрософт) в SQL Server 2008 для повышения точности долгосрочного прогнозирования. Это реализация процесса вычисления интегрированных скользящих средних с авторегрессией, описанного Боксом и Дженкинсом. Методология ARIMA (интегрированное скользящее среднее с авторегрессией) позволяет определять зависимости в результатах наблюдений в форме последовательных временных рядов, при этом модель включает описание случайных скачков. Метод ARIMA также поддерживает мультипликативную сезонность. Читателям, интересующимся работой алгоритма ARIMA, рекомендуется прочесть основополагающую работу Бокса и Дженкинса; в этом разделе приводятся конкретные подробности реализации методологии ARIMA в алгоритме временных рядов (Майкрософт).

По умолчанию алгоритм временных рядов (Майкрософт) использует оба метода (ARIMA и ARTXP) и объединяет результаты для повышения точности прогнозирования. Если необходимо использовать один определенный метод, можно настроить параметры алгоритма на использование только метода ARTXP или ARIMA либо выбрать определенное сочетание результатов работы методов. Обратите внимание, что алгоритм ARTXP поддерживает перекрестное прогнозирование, а алгоритм ARIMA — нет. Поэтому перекрестное прогнозирование доступно, только если используется сочетание алгоритмов или если в модели задано использование только алгоритма ARTXP.

Основные сведения о разностном порядке ARIMA

В этом разделе вводятся термины, необходимые для описания модели ARIMA, и обсуждается конкретная реализация вычисления разностей в алгоритме временных рядов (Майкрософт). С полным описанием этих терминов и понятий рекомендуется ознакомиться в публикации Бокса и Дженкинса.

  • Член — это компонент математического уравнения. Например, член полиномного уравнения может состоять из сочетания переменных и констант.

  • Формула ARIMA, включенная в алгоритм временных рядов (Майкрософт), использует как авторегрессивные члены, так и члены скользящего среднего .

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

  • Цель вычисления разностей заключается в стабилизации временного ряда, который должен стать стационарным.

  • Порядок разности представляет количество раз, когда разница между значениями принимается для временного ряда.

Алгоритм временных рядов (Майкрософт) извлекает значения из ряда данных и пытается согласовать их с шаблоном. Если ряд данных еще не является стационарным, алгоритм применяет разностный порядок. Каждое повышение разностного порядка, как правило, делает временной ряд более стационарным.

Например, если у вас есть временные ряды (z1, z2, ..., zn) и вы выполняете вычисления с использованием разности в одном порядке, вы получите новый ряд (y1, y2,...., yn-1), где yi = zi+1-zi. Если порядок разницы равен 2, алгоритм создает другой ряд "(x1, x2, ..., xn-2)" на основе ряда y, который был получен из уравнения первого порядка. Правильное количество операций вычисления разности зависит от данных. В моделях, отображающих постоянные тренды, чаще всего используется единичный разностный порядок; второй разностный порядок может указывать на изменяющийся со временем тренд.

По умолчанию разностный порядок, используемый в алгоритме временных рядов (Майкрософт), равен -1, то есть алгоритм автоматически выбирает оптимальное значение разностного порядка. Как правило, оптимальное значение равно 1 (если требуется вычисление разности), но в некоторых определенных ситуациях алгоритм увеличивает это значение до максимального, равного 2.

Алгоритм временных рядов (Майкрософт) определяет оптимальный разностный порядок ARIMA, используя значения авторегрессии. Алгоритм исследует значения AR и устанавливает скрытый параметр ARIMA_AR_ORDER, который представляет порядок членов AR. Этот скрытый параметр ARIMA_AR_ORDER может принимать значения от -1 до 8. При значении по умолчанию, равном -1, алгоритм автоматически выбирает оптимальный разностный порядок.

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

Например, если значение AR = 2, результирующий полиномиальный термин AR может выглядеть следующим образом: 1 - 1.4B + .45B^2 = (1- .9B) (1- 0.5B). Обратите внимание на член (1- .9B) , корень которого составляет около 0,9. Алгоритм удаляет этот член из полиномной формулы, но не может увеличить разностный порядок на единицу, так как он уже равен максимальному значению 2.

Важно отметить, что единственный способ принудительного изменения разностного порядка — это использование недокументированного и неподдерживаемого параметра ARIMA_DIFFERENCE_ORDER. Этот скрытый параметр определяет, сколько раз алгоритм выполняет вычисление разностей для временных рядов, и может устанавливаться посредством ввода пользовательского параметра алгоритма. Однако изменять это значение не рекомендуется, если вы не готовы к экспериментам и не знакомы с выполняемыми вычислениями. Кроме того, учтите, что на данный момент нет механизма (и скрытых параметров), позволяющего управлять пороговым значением, при котором срабатывает увеличение разностного порядка.

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

Настройка алгоритма временных рядов (Майкрософт)

Алгоритм временных рядов (Майкрософт) поддерживает следующие параметры, влияющие на поведение, производительность и точность результирующей модели интеллектуального анализа данных.

Примечание

Алгоритм временных рядов (Майкрософт) доступен во всех выпусках SQL Server, однако некоторые расширенные функции, включая параметры для настройки анализа временных рядов, поддерживаются только в определенных выпусках SQL Server. Сведения о функциях, поддерживаемых различными выпусками SQL Server, см. в статье Возможности, поддерживаемые выпусками SQL Server 2016.

Обнаружение сезонности

Оба алгоритма ARIMA и ARTXP поддерживают обнаружение сезонности или периодичности. SQL Server Analysis Services использует быстрое преобразование Фурье для обнаружения сезонности перед обучением. Тем не менее можно повлиять на обнаружение сезонности и результаты анализа временных рядов, задав параметры алгоритма.

  • Изменяя значение параметра AUTODETECT_SEASONALITY, можно изменить возможное количество создаваемых временных интервалов.

  • Задавая значение (или несколько значений) для параметра PERIODICITY_HINT, можно предоставить алгоритму данные об ожидаемых циклах в данных и, вероятно, повысить точность обнаружения.

Примечание

Алгоритмы ARTXP и ARIMA очень чувствительны к подсказкам сезонности. Поэтому указание неправильной подсказки может отрицательно сказаться на результатах.

Выбор алгоритма и указание комбинации алгоритмов

По умолчанию или при выборе параметра MIXED SQL Server Analysis Services объединяет алгоритмы и присваивает им равный вес. Однако в выпуске Enterprise Edition можно указать определенный алгоритм или настроить пропорциональное соотношение алгоритмов в результатах, задав параметр, который будет смещать баланс результатов в сторону краткосрочного или долгосрочного прогнозирования. По умолчанию параметр FORECAST_METHOD имеет значение MIXED, и SQL Server Analysis Services использует оба алгоритма, а затем взвешивает их значения, чтобы максимизировать сильные стороны каждого алгоритма.

  • Выбор алгоритмов управляется параметром FORECAST_METHOD .

  • Если необходимо использовать перекрестное прогнозирование, необходимо указать параметр ARTXP или MIXED, поскольку алгоритм ARIMA не поддерживает перекрестное прогнозирование.

  • Задайте для параметра FORECAST_METHOD значение ARTXP, если предпочтителен краткосрочный прогноз.

  • Задайте для параметра FORECAST_METHOD значение ARIMA, если необходимо улучшить долгосрочное прогнозирование.

В выпуск Enterprise можно также настроить, как SQL Server Analysis Services смешивает сочетание алгоритмов ARIMA и ARTXP. Можно задать стартовую точку для объединения результатов, а также скорость изменения, установив параметр PREDICTION_SMOOTHING .

  • Если параметр PREDICTION_SMOOTHING равен 0, то в модели будет использоваться только алгоритм ARTXP.

  • Если параметр PREDICTION_SMOOTHING равен 1, то в модели будет использоваться только алгоритм ARIMA.

  • Если значение параметра PREDICTION_SMOOTHING лежит между 0 и 1, то модель использует алгоритм ARTXP как источник весовых коэффициентов — экспоненциально убывающую функцию шагов прогнозирования. Алгоритм ARIMA получает весовые коэффициенты, которые в сумме с коэффициентами ARTXP составляют 1. Для сглаживания кривых в модели используется константа нормирования и стабилизации.

Если прогноз охватывает не более 5 временных срезов, то алгоритм ARTXP почти всегда будет лучшим выбором. Однако чем больше число прогнозируемых временных срезов, тем, как правило, лучшие результаты дает алгоритм ARIMA.

На следующей диаграмме показано, как модель объединяет результаты алгоритмов, если параметр PREDICTION_SMOOTHING имеет значение по умолчанию (0,5). Вначале алгоритмы ARIMA и ARTXP получают равные весовые коэффициенты, но по мере увеличения числа шагов прогнозирования вес алгоритма ARIMA растет.

кривая по умолчанию для сочетания алгоритмов временных рядов

Для сравнения представлена следующая диаграмма, где показано объединение алгоритмов в случае, если параметр PREDICTION_SMOOTHING имеет значение 0,2. На шаге 0 модель взвешивает ARIMA как 0,2, а ARTXP — 0,8. Затем весовые коэффициенты для ARIMA экспоненциально возрастают, а для ARTXP — убывают.

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

Задание параметров алгоритма

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

Параметр Описание
AUTO_DETECT_PERIODICITY Задает числовое значение в диапазоне от 0 до 1, которое определяет периодичность. Значение по умолчанию равно 0,6.

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

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

Примечание. Использование большого количества подсказок периодичности, скорее всего, значительно увеличит время обучения моделей, однако позволит повысить их точность.
COMPLEXITY_PENALTY Управляет ростом дерева решений. Значение по умолчанию равно 0,1.

Уменьшение этого значения повышает вероятность разбиения. Увеличение этого значения снижает вероятность разбиения.

Примечание. Этот параметр доступен только в некоторых выпусках SQL Server.
FORECAST_METHOD Указывает, какой алгоритм используется для анализа и прогнозирования. Возможные значения — ARTXP, ARIMA и MIXED. Значением по умолчанию является MIXED.
HISTORIC_MODEL_COUNT Указывает число моделей с предысторией, которые будут построены. Значение по умолчанию — 1.

Примечание. Этот параметр доступен только в некоторых выпусках SQL Server.
HISTORICAL_MODEL_GAP Указывает временной промежуток между двумя последовательными моделями с предысторией. Значение по умолчанию равно 10. Это значение выражено в единицах времени, которые определяются моделью.

Например, если установить это значение равным g, модели с предысторией будут строиться для данных, усеченных временными срезами с интервалами g, 2*g, 3*g и так далее.

Примечание. Этот параметр доступен только в некоторых выпусках SQL Server.
INSTABILITY_SENSITIVITY Управляет точкой, в которой дисперсия прогноза превышает определенное пороговое значение, после чего алгоритм ARTXP запрещает такие прогнозы. Значение по умолчанию — 1.

Примечание. Этот параметр не применяется к моделям, использующим только алгоритм ARIMA.

Значение по умолчанию 1 обеспечивает то же поведение, что и в SQL Server 2005 (9.x). SQL Server Analysis Services отслеживает нормализованное стандартное отклонение для каждого прогноза. Как только это значение превышает пороговое значение для какого-либо прогноза, алгоритм временных рядов возвращает значение NULL и прекращает процесс прогнозирования.

Значение 0 останавливает обнаружение нестабильности. Это значит, что можно создавать неограниченное число прогнозов независимо от дисперсии.

Примечание. Этот параметр можно изменить только в SQL Server Enterprise. В SQL Server Standard SQL Server Analysis Services использует только значение по умолчанию 1.
MAXIMUM_SERIES_VALUE Указывает максимальное значение, используемое для прогнозов. Этот параметр используется вместе с MINIMUM_SERIES_VALUE, чтобы ограничить прогнозы ожидаемым диапазоном. Например, можно указать, что прогнозируемый объем продаж в течение любых суток никогда не должен превышать величину запасов товаров.

Примечание. Этот параметр доступен только в некоторых выпусках SQL Server.
MINIMUM_SERIES_VALUE Задает минимальное прогнозируемое значение. Этот параметр используется наряду с параметром MAXIMUM_SERIES_VALUEдля ограничения прогнозов с учетом некоторого ожидаемого диапазона. Например, можно указать, что прогнозируемый объем продаж никогда не должен быть отрицательным числом.

Примечание. Этот параметр доступен только в некоторых выпусках SQL Server.
MINIMUM_SUPPORT Указывает минимальное количество временных срезов, необходимых для разбиения каждого дерева временных рядов. Значение по умолчанию равно 10.
MISSING_VALUE_SUBSTITUTION Указывает порядок заполнения пропусков в данных с предысторией. По умолчанию пропуски в данных не допускаются. В следующей таблице перечислены возможные значения для этого параметра.

Предыдущее: повторяет значение из предыдущего временного среза.

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

Числовая константа: использует конкретное число для замены всех отсутствующих значений.

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



Обратите внимание: если в данных содержится несколько рядов, ряды не могут иметь неоднородные границы. Это значит, что для всех рядов начальные и конечные точки должны совпадать.
SQL Server Analysis Services также использует значение этого параметра для заполнения пробелов в новых данных при выполнении PREDICTION JOIN в модели временных рядов.
PERIODICITY_HINT Предоставляет подсказку для алгоритма, касающуюся периодичности данных. Например, если продажи варьируются в зависимости от года, а в ряду в качестве единицы измерения используются месяцы, то периодичность равна 12. Этот параметр имеет формат {n [, n]}, где n — любое положительное число.

Число n внутри квадратных скобок [] является необязательным и может повторяться сколь угодно часто. Например, чтобы задать несколько подсказок периодичности для данных, пополняемых ежемесячно, можно ввести {12, 3, 1}, чтобы обнаруживать закономерности, проявляющиеся ежегодно, ежемесячно и ежеквартально. Однако подсказки периодичности сильно влияют на качество работы модели. Если заданное указание отличается от реальной периодичности, это может отрицательно сказаться на результатах.

Значение по умолчанию — {1}.

Обратите внимание: фигурные скобки указывать обязательно. Кроме того, этот параметр имеет строковый тип данных. Поэтому, если нужно ввести этот параметр в составе инструкции расширений интеллектуального анализа данных, необходимо поместить в кавычки числовое значение в фигурных скобках.
PREDICTION_SMOOTHING Указывает, как модель должна использовать сочетание двух алгоритмов для оптимизации прогнозов. Можно ввести любое значение от 0 до 1 или использовать одно из следующих значений:

0:
Указывает, что при прогнозировании используется только алгоритм ARTXP. Процесс прогнозирования оптимизируется для небольшого числа прогнозов.

1: указывает, что при прогнозировании используется только алгоритм ARIMA. Процесс прогнозирования оптимизируется для большого числа прогнозов.

0,5: по умолчанию. Указывает, что при прогнозировании используются оба алгоритма, а их результаты объединяются.



При выполнении сглаживания прогноза используйте параметр FORECAST_METHOD для управления обучением. Обратите внимание, что этот параметр доступен только в некоторых выпусках SQL Server.

Флаги моделирования

Алгоритм временных рядов (Майкрософт) поддерживает следующие флаги моделирования. Чтобы задать порядок обработки в ходе анализа значений в каждом столбце, во время создания структуры или модели интеллектуального анализа данных определяются флаги модели. Дополнительные сведения см. в разделе Флаги моделирования (интеллектуальный анализ данных).

Флаг моделирования Описание
NOT NULL Указывает, что столбец не может принимать значение NULL. Если во время обучения модели службы Analysis Services обнаружат значение NULL, возникнет ошибка.

Применяется к столбцам структуры интеллектуального анализа данных.
MODEL_EXISTENCE_ONLY Означает, что столбец будет обрабатываться так, будто у него два возможных состояния: отсутствует и присутствует. NULL означает отсутствие значения.

Применяется к столбцам модели интеллектуального анализа данных.

Требования

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

Входные и прогнозируемые столбцы

Алгоритм временных рядов (Майкрософт) поддерживает определенные типы содержимого входных столбцов, прогнозируемые типы содержимого столбцов и флаги моделирования, перечисленные в следующей таблице.

Столбец Типы содержимого
Входной атрибут Непрерывные, ключевые, ключевые времени и табличные
Прогнозируемый атрибут Непрерывные, табличные

Примечание

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

См. также:

Алгоритм временных рядов (Майкрософт)
Примеры запросов моделей временных рядов
Содержимое модели интеллектуального анализа данных для моделей временных рядов (службы Analysis Services — интеллектуальный анализ данных)