series_outliers()

將數列中的異常點計分。

該函式使用動態數值陣列的運算式作為輸入,並產生相同長度的動態數值陣列。 陣列的每個值會指出一個可能異常的分數,使用「Tukey 檢定」。 在輸入的相同元素中大於 1.5 的值表示異常。 小於 -1.5 的值表示拒絕異常。

Syntax

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

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
系列 dynamic ✔️ 數值的陣列。
種類 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%
"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)

具有極端值的時間序列圖表。