series_dbl_exp_smoothing_fl()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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