Share via


series_outliers()

Pontua pontos anómalos numa série.

A função utiliza uma expressão com uma matriz numérica dinâmica como entrada e gera uma matriz numérica dinâmica com o mesmo comprimento. Cada valor da matriz indica uma classificação de uma possível anomalia com "Tukey's test". Um valor superior a 1,5 no mesmo elemento da entrada indica uma anomalia de aumento. Um valor inferior a -1,5 indica uma anomalia de declínio.

Syntax

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
série dynamic ✔️ Uma matriz de valores numéricos.
tipo string O algoritmo a utilizar para a deteção de valores atípicos. As opções suportadas são "tukey", que é tradicional "Tukey" e "ctukey", que é "Tukey" personalizado. A predefinição é "ctukey".
ignore_val int, long ou real Um valor numérico que indica os valores em falta na série. A predefinição é double(nula). A classificação de valores nulos e ignorar está definida como 0.
min_percentile int, long ou real O percentil mínimo a utilizar para calcular o intervalo entre quantile normal. A predefinição é 10. O valor tem de estar no intervalo [2.0, 98.0]. Este parâmetro só é relevante para o "ctukey"tipo.
max_percentile int, long ou real O percentil máximo a utilizar para calcular o intervalo entre quantile normal. A predefinição é 90. O valor tem de estar no intervalo [2.0, 98.0]. Este parâmetro só é relevante para o "ctukey"tipo.

A tabela seguinte descreve as diferenças entre "tukey" e "ctukey":

Algoritmo Intervalo de quantile predefinido Suporta o intervalo de quantile personalizado
"tukey" 25% / 75% No
"ctukey" 10% / 90% Yes

Dica

A melhor forma de utilizar esta função é aplicá-la aos resultados do operador make-series .

Exemplo

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)

Gráfico de uma série temporal com valores atípicos.