Поделиться через


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

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

  • алгоритм ARTXP, который появился в SQL Server 2005, оптимизирован для прогнозирования следующего вероятного значения в ряду;

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

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

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

Реализация алгоритмов временных рядов

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

Алгоритм ARIMA предназначен для долгосрочного прогнозирования. Он является реализацией алгоритма ARIMA, разработанного Боксом и Дженкинсом. ARIMA (интегрированное скользящее среднее с авторегрессией) — известный метод для определения зависимостей в результатах наблюдений, проводимых последовательно. Он также поддерживает мультипликативную сезонность. В алгоритме ARIMA используются понятия авторегрессии и скользящего среднего.

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

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

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

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

Оба алгоритма поддерживают обнаружение сезонности, или периодичности. Службы Analysis Services применяют быстрое преобразование Фурье для определения сезонности до этапа обучения.

Чтобы обеспечить самые лучшие результаты, можно управлять определением сезонности, задавая параметры алгоритма. Изменяя значение параметра AUTODETECT_SEASONALITY, можно изменить возможное количество создаваемых временных интервалов. Задавая значения для параметра PERIODICITY_HINT, можно передать в алгоритм данные об известных повторяющихся периодах и повысить точность обнаружения.

ПримечаниеПримечание

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

Совместное использование алгоритмов

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

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

Выбор алгоритмов управляется параметром FORECAST_METHOD. По умолчанию параметр FORECAST_METHOD имеет значение MIXED, и службы Analysis Services используют оба алгоритма, назначая для них весовые коэффициенты, которые максимально учитывают преимущества каждого алгоритма. Однако можно установить для параметра FORECAST_METHOD значение ARTXP, если нужно использовать только алгоритм ARTXP, или ARIMA, если нужно использовать только алгоритм ARIMA.

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

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

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

  • Если параметр set 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 Enterprise.

FORECAST_METHOD

Указывает, какой алгоритм используется для анализа и прогнозирования. Возможные значения — ARTXP, ARIMA и MIXED. Значение по умолчанию — MIXED.

HISTORIC_MODEL_COUNT

Указывает количество моделей с предысторией, которые будут построены. Значение по умолчанию — 1.

ПримечаниеПримечание
Этот параметр доступен только в выпуске SQL Server Enterprise.

HISTORICAL_MODEL_GAP

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

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

ПримечаниеПримечание
Этот параметр доступен только в выпуске SQL Server Enterprise.

INSTABILITY_SENSITIVITY

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

ПримечаниеПримечание
Этот параметр применяется к алгоритму ARTXP и поэтому не применяется к моделям, для создания которых применялся только алгоритм ARIMA. Если этот параметр применяется к модели MIXED, то он действует только на часть модели, относящуюся к алгоритму ARTXP.

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

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

ПримечаниеПримечание
Этот параметр можно изменять только в выпуске SQL Server Enterprise. В выпуске SQL Server Standard службы Analysis Services используют только значение по умолчанию (1).

MAXIMUM_SERIES_VALUE

Указывает максимальное значение, используемое для прогнозов. Этот параметр используется вместе с параметром MINIMUM_SERIES_VALUE для ограничения прогнозируемых величин определенным диапазоном значений. Например, можно указать, что прогнозируемый объем продаж для любого дня никогда не должен превышать количество изделий, имеющихся на складе.

ПримечаниеПримечание
Этот параметр доступен только в выпуске SQL Server Enterprise.

MINIMUM_SERIES_VALUE

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

ПримечаниеПримечание
Этот параметр доступен только в выпуске SQL Server Enterprise.

MINIMUM_SUPPORT

Указывает минимальное количество временных срезов, необходимых для создания разбиения в каждом дереве временных рядов. Значение по умолчанию — 10.

MISSING_VALUE_SUBSTITUTION

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

В следующей таблице перечислены возможные значения для этого параметра.

ЗначениеОписание
PreviousПовторяет значение из предыдущего временного среза.
MeanИспользует значение скользящего среднего среди временных рядов, использованных в обучении.
Числовая константаИспользует конкретное число для замены всех отсутствующих значений.
NoneЗамещает отсутствующие значения значениями, расположенными на кривой обученной модели. Это значение по умолчанию.

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

Службы Analysis Services также используют значение этого параметра, чтобы заполнять пропуски в новых данных в ходе выполнения инструкции PREDICTION JOIN в модели временных рядов.

PERIODICITY_HINT

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

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

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

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

PREDICTION_SMOOTHING

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

ПримечаниеПримечание
Для управления обучением используется параметр FORECAST_METHOD.
ЗначениеОписание
0Указывает, что при прогнозировании используется только алгоритм ARTXP. Процесс прогнозирования оптимизируется для небольшого числа прогнозов.
1Указывает, что при прогнозировании используется только алгоритм ARIMA. Процесс прогнозирования оптимизируется для большого числа прогнозов.
0.5(По умолчанию) Указывает, что при прогнозировании используются оба алгоритма, а их результаты объединяются.
ПримечаниеПримечание
Этот параметр доступен только в выпуске SQL Server Enterprise.

Флаги модели

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

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

Описание

NOT NULL

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

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

MODEL_EXISTENCE_ONLY

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

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

Требования

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

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

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

Cтолбец

Типы содержимого

Входной атрибут

Непрерывные, ключевые, ключевые времени и табличные

Прогнозируемый атрибут

Непрерывные, табличные

ПримечаниеПримечание

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