Dela via


series_outliers()

Poäng avvikelsepunkter i en serie.

Funktionen tar ett uttryck med en dynamisk numerisk matris som indata och genererar en dynamisk numerisk matris med samma längd. Varje värde i matrisen anger en poäng för en möjlig avvikelse med hjälp av "Tukeys test". Ett värde som är större än 1,5 i samma element i indata anger en ökningsavvikelse. Ett värde som är mindre än -1,5 indikerar en nedgångsavvikelse.

Syntax

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

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
Serien dynamic ✔️ En matris med numeriska värden.
Typ string Algoritmen som ska användas för avvikande identifiering. Alternativen som stöds är "tukey", som är traditionella "Tukey" och "ctukey", som är anpassade "Tukey". Standardvärdet är "ctukey".
ignore_val int, long eller real Ett numeriskt värde som anger saknade värden i serien. Standardvärdet är double(null). Poängen för null-värden och ignore-värden är inställd på 0.
min_percentile int, long eller real Den minsta percentil som ska användas för att beräkna det normala intervallet mellan kvantiler. Standardvärdet är 10. Värdet måste ligga i intervallet [2.0, 98.0]. Den här parametern är endast relevant för typen"ctukey" .
max_percentile int, long eller real Den maximala percentilen som ska användas för att beräkna det normala intervallet mellan kvantiler. Standardvärdet är 90. Värdet måste ligga i intervallet [2.0, 98.0]. Den här parametern är endast relevant för typen"ctukey" .

I följande tabell beskrivs skillnaderna mellan "tukey" och "ctukey":

Algoritm Standardkvantilintervall Stöder anpassat kvantilintervall
"tukey" 25% / 75% No
"ctukey" 10% / 90% Yes

Tips

Det bästa sättet att använda den här funktionen är att tillämpa den på resultatet av make-series-operatorn .

Exempel

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)

Diagram över en tidsserie med extremvärden.