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


series_outliers()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Оценивает точки аномалий в ряду.

Функция принимает выражение с динамическим числовым массивом в качестве входных данных и создает динамический числовый массив той же длины. Каждое значение массива указывает на оценку возможной аномалии с помощью теста Tukey. Значение больше 1,5 в одном элементе входных данных указывает на аномалию роста. Значение меньше -1,5 указывает на аномалию снижения.

Синтаксис

series_outliers(, series [ kind ] [, ignore_val ] [ , min_percentile ] [, max_percentile ])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
серия dynamic ✔️ Массив числовых значений.
kind string Алгоритм, используемый для обнаружения выскольза. Поддерживаются "tukey"варианты, которые являются традиционными "Tukey" и "ctukey"пользовательскими "Tukey". Значение по умолчанию — "ctukey".
ignore_val int, long или real Числовое значение, указывающее отсутствующие значения в серии. По умолчанию double(null). Для параметра "Оценка значений NULL" и "игнорировать" задано значение 0.
min_percentile int, long или real Минимальный процентиль, используемый для вычисления нормального межквантилного диапазона. Значение по умолчанию равно 10. Значение должно находиться в диапазоне [2.0, 98.0]. Этот параметр относится только к типу "ctukey" .
max_percentile int, long или real Максимальный процентиль, используемый для вычисления нормального межквантилного диапазона. Значение по умолчанию — 90. Значение должно находиться в диапазоне [2.0, 98.0]. Этот параметр относится только к типу "ctukey" .

В следующей таблице описаны различия между "tukey" и "ctukey":

Алгоритм Диапазон квантилей по умолчанию Поддержка пользовательского диапазона квантилей
"tukey" 25 %–75 % No
"ctukey" 10 %–90 % Да

Совет

Лучший способ использовать эту функцию — применить его к результатам оператора make-series .

Пример

range x from 0 to 364 step 1 
| extend t = datetime(2023-01-01) + 1d*x
| extend y = rand() * 10
| extend y = iff(monthofyear(t) != monthofyear(prev(t)), y+20, y) // generate a sample series with outliers at first day of each month
| summarize t = make_list(t), series = make_list(y)
| extend outliers=series_outliers(series)
| extend pos_anomalies = array_iff(series_greater_equals(outliers, 1.5), 1, 0)
| render anomalychart with(xcolumn=t, ycolumns=series, anomalycolumns=pos_anomalies)

Диаграмма временных рядов с выбросами.