Condividi tramite


series_dbl_exp_smoothing_fl()

Applica un doppio filtro di smussamento esponenziale su una serie.

La funzione series_dbl_exp_smoothing_fl() è una funzione definita dall'utente che accetta un'espressione contenente una matrice numerica dinamica come input e applica un doppio filtro di smoothing esponenziale . Quando è presente una tendenza nella serie, questa funzione è superiore alla funzione series_exp_smoothing_fl(), che implementa un filtro di smoothing esponenziale di base .

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
y_series dynamic ✔️ Matrice di valori numerici.
Alfa real Valore nell'intervallo [0-1] che specifica il peso dell'ultimo punto rispetto al peso dei punti precedenti, ovvero 1 - alpha. Il valore predefinito è 0.5.
beta real Valore nell'intervallo [0-1] che specifica il peso dell'ultima pendenza rispetto al peso dei pendii precedenti, ovvero 1 - beta. Il valore predefinito è 0.5.

Definizione di funzione

È possibile definire la funzione incorporando il codice come funzione definita da query o creandola come funzione archiviata nel database, come indicato di seguito:

Definire la funzione usando l'istruzione let seguente. Non sono necessarie autorizzazioni.

Importante

Un'istruzione let non può essere eseguita autonomamente. Deve essere seguita da un'istruzione di espressione tabulare. Per eseguire un esempio funzionante di series_dbl_exp_smoothing_fl(), vedere Esempio.

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.

Esempio

Per usare una funzione definita da query, richiamarla dopo la definizione della funzione incorporata.

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

Output

Grafico che mostra il doppio smoothing esponenziale della serie artificiale.