series_outliers()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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 valores discrepantes. As opções suportadas são "tukey" , que é o tradicional "Tukey", e "ctukey" , que é personalizado "Tukey". 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 ignorados é definida como 0 . |
|
min_percentile | int, long 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, long 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)