Compartilhar via


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 o "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.

Sintaxe

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
série dynamic ✔️ Uma matriz de valores numéricos.
kind string O algoritmo a ser usado para detecção de outliers. As opções suportadas são "tukey", que é tradicional "Tukey", e "ctukey", que é personalizado "Tukey". O padrão é "ctukey".
ignore_val int, longo ou real Um valor numérico que indica os valores ausentes na série. O padrão é double(nulo). A pontuação dos valores nulls e ignore é definida como 0.
min_percentile int, longo ou real O percentil mínimo a ser usado para calcular o intervalo interquantil normal. O padrão é 10. O valor deve estar no intervalo [2.0, 98.0]. Este parâmetro só é relevante para o "ctukey" tipo.
max_percentile int, longo ou real O percentil máximo a ser usado para calcular o intervalo interquantil normal. O padrão é 90. O valor deve estar no intervalo [2.0, 98.0]. Este 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% Não
"ctukey" 10% / 90% Sim

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 outliers.