Partilhar via


series_dbl_exp_smoothing_fl()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Aplica um filtro de suavização exponencial duplo a uma série.

A função series_dbl_exp_smoothing_fl() é uma UDF (função definida pelo usuário) que usa uma expressão que contém uma matriz numérica dinâmica como entrada e aplica um filtro de suavização exponencial duplo. Quando há tendência na série, essa função é superior à função series_exp_smoothing_fl(), que implementa um filtro básico de suavização exponencial.

Sintaxe

series_dbl_exp_smoothing_fl( y_series [ , alfa [, beta ]])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
y_series dynamic ✔️ Uma matriz de valores numéricos.
alfa real Um valor no intervalo [0-1] que especifica o peso do último ponto versus o peso dos pontos anteriores, que é 1 - alpha. O padrão é 0,5.
beta real Um valor no intervalo [0-1] que especifica o peso da última inclinação versus o peso das inclinações anteriores, que é 1 - beta. O padrão é 0,5.

Definição de função

Você pode definir a função inserindo seu código como uma função definida por consulta ou criando-a como uma função armazenada em seu banco de dados, da seguinte maneira:

Defina a função usando a instrução let a seguir. Nenhuma permissão é necessária.

Importante

Uma instrução let não pode ser executada sozinha. Ele deve ser seguido por uma instrução de expressão tabular. Para executar um exemplo funcional de series_dbl_exp_smoothing_fl(), consulte Exemplo.

let series_dbl_exp_smoothing_fl = (y_series:dynamic, alpha:double=0.5, beta:double=0.5)
{
    series_iir(y_series, pack_array(alpha, alpha*(beta-1)), pack_array(1, alpha*(1+beta)-2, 1-alpha))
};
// Write your query to use the function here.

Exemplo

Para usar uma função definida por consulta, invoque-a após a definição da função inserida.

let series_dbl_exp_smoothing_fl = (y_series:dynamic, alpha:double=0.5, beta:double=0.5)
{
    series_iir(y_series, pack_array(alpha, alpha*(beta-1)), pack_array(1, alpha*(1+beta)-2, 1-alpha))
};
range x from 1 to 50 step 1
| extend y = x + rand()*10
| summarize x = make_list(x), y = make_list(y)
| extend dbl_exp_smooth_y = series_dbl_exp_smoothing_fl(y, 0.2, 0.4) 
| render linechart

Saída

Gráfico mostrando a suavização exponencial dupla de séries artificiais.