series_outliers()

Punteggi di anomalie in una serie.

La funzione accetta un'espressione con una matrice numerica dinamica come input e genera una matrice numerica dinamica della stessa lunghezza. Ogni valore della matrice indica un punteggio di una possibile anomalia, usando il test di "Tukey". Un valore maggiore di 1,5 nello stesso elemento dell'input indica un'anomalia di aumento. Un valore minore di -1,5 indica un calo dell'anomalia.

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
Serie dynamic ✔️ Matrice di valori numerici.
kind string Algoritmo da usare per il rilevamento outlier. Le opzioni supportate sono , che è "tukey"tradizionale "Tukey" e "ctukey", che è personalizzata "Tukey". Il valore predefinito è "ctukey".
ignore_val int, long o reale Valore numerico che indica i valori mancanti nella serie. Il valore predefinito è double(Null). Il punteggio di Nulls e ignora i valori è impostato su 0.
min_percentile int, long o reale Percentile minimo da usare per calcolare l'intervallo di inter quantile normale. Il valore predefinito è 10. Il valore deve trovarsi nell'intervallo [2.0, 98.0]. Questo parametro è rilevante solo per il "ctukey"tipo.
max_percentile int, long o reale Percentile massimo da usare per calcolare l'intervallo inter-quantile normale. Il valore predefinito è 90. Il valore deve trovarsi nell'intervallo [2.0, 98.0]. Questo parametro è rilevante solo per il "ctukey"tipo.

La tabella seguente descrive le differenze tra "tukey" e "ctukey":

Algoritmo Intervallo quantile predefinito Supporta l'intervallo quantile personalizzato
"tukey" 25% / 75% No
"ctukey" 10% / 90%

Suggerimento

Il modo migliore per usare questa funzione consiste nell'applicarlo ai risultati dell'operatore make-series .

Esempio

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)

Grafico di una serie temporale con outlier.