series_outliers()

Identifica pontos de anomalia em uma série.

A função usa uma expressão com uma matriz numérica dinâmica como entrada e gera uma matriz numérica dinâmica do mesmo comprimento. Cada valor da matriz indica uma pontuação de uma possível anomalia, usando "Teste de Tukey". Um valor maior que 1,5 no mesmo elemento da entrada indica uma anomalia de aumento. Um valor menor que -1,5 indica uma anomalia de declínio.

Syntax

series_outliers(série [,tipo ] [,ignore_val ] [,min_percentile ] [,max_percentile ])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
Série dynamic ✔️ Uma matriz de valores numéricos.
kind string O algoritmo a ser usado para detecção de exceção. As opções com suporte são "tukey", que é tradicional "Tukey" e "ctukey", que é "Tukey" personalizado. O padrão é "ctukey".
ignore_val int, long ou real Um valor numérico que indica os valores ausentes na série. O padrão é double(nulo). A pontuação de valores nulos e ignore é definida como 0.
min_percentile int, long ou real O percentil mínimo a ser usado para calcular o intervalo entre quânculos normais. O padrão é 10. O valor deve estar no intervalo [2.0, 98.0]. Esse parâmetro só é relevante para o "ctukey"tipo.
max_percentile int, long ou real O percentil máximo a ser usado para calcular o intervalo entre quânculos normais. O padrão é 90. O valor deve estar no intervalo [2.0, 98.0]. Esse parâmetro só é relevante para o "ctukey"tipo.

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

Algoritmo Intervalo de quantil padrão Dá suporte ao intervalo de quantil personalizado
"tukey" 25% / 75% No
"ctukey" 10% / 90% Yes

Dica

A melhor maneira de usar essa 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 exceções.