Freigeben über


series_dbl_exp_smoothing_fl()

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Wendet einen doppelten exponentiellen Glättungsfilter auf eine Reihe an.

Die Funktion series_dbl_exp_smoothing_fl() ist eine benutzerdefinierte Funktion (UDF), die einen Ausdruck verwendet, der ein dynamisches numerisches Array als Eingabe enthält und einen doppelten exponentiellen Glättungsfilter anwendet. Wenn die Datenreihe trendet, ist diese Funktion der funktion series_exp_smoothing_fl() überlegen, die einen grundlegenden exponentiellen Glättungsfilter implementiert.

Syntax

series_dbl_exp_smoothing_fl( y_series [ Alpha [, , Beta ]])

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
y_series dynamic ✔️ Ein Array numerischer Werte.
alpha real Ein Wert im Bereich [0-1], der die Gewichtung des letzten Punkts im Vergleich zur Gewichtung der vorherigen Punkte angibt, d 1 - alpha. h. Der Standardwert ist 0,5.
beta real Ein Wert im Bereich [0-1], der die Gewichtung der letzten Steigung im Vergleich zur Gewichtung der vorherigen Hängen angibt.1 - beta Der Standardwert ist 0,5.

Funktionsdefinition

Sie können die Funktion definieren, indem Sie den Code entweder als abfragedefinierte Funktion einbetten oder wie folgt als gespeicherte Funktion in Ihrer Datenbank erstellen:

Definieren Sie die Funktion mithilfe der folgenden Let-Anweisung. Es sind keine Berechtigungen erforderlich.

Wichtig

Eine Let-Anweisung kann nicht alleine ausgeführt werden. Auf sie muss eine tabellarische Ausdrucksanweisung folgen. Informationen zum Ausführen eines funktionierenden Beispiels series_dbl_exp_smoothing_fl()finden Sie unter Beispiel.

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.

Beispiel

Um eine abfragedefinierte Funktion zu verwenden, rufen Sie sie nach der definition der eingebetteten Funktion auf.

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

Diagramm mit doppelter exponentieller Glättung von künstlichen Reihen.