series_dbl_exp_smoothing_fl()
Hiermee past u een dubbele exponentiële afvlakkingsfilter toe op een reeks.
De functie series_dbl_exp_smoothing_fl()
is een door de gebruiker gedefinieerde functie (UDF) die een expressie met een dynamische numerieke matrix als invoer gebruikt en een dubbel exponentieel vloeiend filter toepast. Wanneer er een trend in de reeks is, is deze functie superieur aan de functie series_exp_smoothing_fl(), die een basisfilter voor exponentiële afvlakking implementeert.
Syntax
series_dbl_exp_smoothing_fl(
y_series [,
alfa [,
bèta ]])
Meer informatie over syntaxisconventies.
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
y_series | dynamic |
✔️ | Een matrix van numerieke waarden. |
alfa | real |
Een waarde in het bereik [0-1] die het gewicht van het laatste punt versus het gewicht van de vorige punten aangeeft, namelijk 1 - alpha . De standaardwaarde is 0,5. |
|
bèta | real |
Een waarde in het bereik [0-1] die het gewicht van de laatste helling versus het gewicht van de vorige hellingen aangeeft, namelijk 1 - beta . De standaardwaarde is 0,5. |
Functiedefinitie
U kunt de functie als volgt definiëren door de code in te sluiten als een door een query gedefinieerde functie of door deze te maken als een opgeslagen functie in uw database:
Definieer de functie met behulp van de volgende let-instructie. Er zijn geen machtigingen vereist.
Belangrijk
Een let-instructie kan niet zelfstandig worden uitgevoerd. Deze moet worden gevolgd door een tabellaire expressie-instructie. Zie Voorbeeld als u een werkend voorbeeld van series_dbl_exp_smoothing_fl()
wilt uitvoeren.
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.
Voorbeeld
Als u een querygedefinieerde functie wilt gebruiken, roept u deze aan na de definitie van de ingesloten functie.
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
Uitvoer
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor