series_decompose()
Použije transformaci rozkladu na řadu.
Vezme jako vstup výraz obsahující řadu (dynamickou číselnou matici) a rozloží ho na sezónní, trendové a zbytkové komponenty.
Syntax
series_decompose(
Série,
[ Sezónnost,
,
Trend Test_points,
Seasonality_threshold ])
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Řada | dynamic |
✔️ | Pole číselných hodnot, obvykle výsledný výstup řady make-series nebo make_list operátorů. |
Sezónnost | int |
Řídí sezónní analýzu. Možné hodnoty jsou: - -1 : Automaticky rozdetekujte sezónnost pomocí series_periods_detect. Toto je výchozí hodnota.- Období: Kladné celé číslo určující očekávané období v počtu intervalů. Pokud je například řada v 1 - h intervalech, týdenní období je 168 přihrádek.- 0 : Žádná sezónnost, takže extrahování této komponenty přeskočte. |
|
Trendovou | string |
Řídí analýzu trendu. Možné hodnoty jsou: - avg : Definujte komponentu trendu jako average(x) . Tato možnost je výchozí.- linefit : Extrahujte komponentu trendu pomocí lineární regrese.- none : Žádný trend, takže přeskočte extrahování této komponenty. |
|
Test_points | int |
Kladné celé číslo určující počet bodů na konci řady, které se mají vyloučit z procesu učení nebo regrese. Tento parametr by měl být nastavený pro účely prognózování. Výchozí hodnota je 0. | |
Seasonality_threshold | real |
Prahová hodnota skóre sezónnosti, pokud je sezónnost nastavená na automatické určení. Výchozí prahová hodnota skóre je 0,6. Další informace najdete v tématu series_periods_detect. |
Návraty
Funkce vrátí následující příslušnou řadu:
baseline
: predikovaná hodnota řady (součet sezónních a trendových složek, viz níže).seasonal
: řada sezónních složek:- pokud není období zjištěno nebo je explicitně nastaveno na hodnotu 0: konstanta 0.
- pokud je zjištěno nebo nastaveno na kladné celé číslo: medián bodů řady ve stejné fázi
trend
: řada komponenty trendu.residual
: řada reziduální komponenty (to znamená x - směrný plán).
Poznámka
- Pořadí spuštění komponenty:
- Extrahování sezónních řad
- Odečtěte ho od x a vygenerujte řadu deseasonal
- Extrahujte komponentu trendu z řady deseasonal
- Vytvoření směrného plánu = sezónní + trend
- Vytvoření rezidua = x – směrný plán
- Měla by být povolena sezónnost nebo trend. V opačném případě je funkce redundantní a vrátí pouze směrný plán = 0 a rezidua = x.
Další informace o rozkladu řad
Tato metoda se obvykle používá u časových řad metrik, u které se očekává, že se projeví pravidelné nebo trendové chování. Tuto metodu můžete použít k předpovídání budoucích hodnot metrik nebo k detekci neobvyklých hodnot. Implicitním předpokladem tohoto regresního procesu je, že kromě sezónního a trendového chování je časová řada stochastická a náhodně rozdělená. Předpovídejte budoucí hodnoty metrik ze sezónních a trendových složek a ignorujte reziduální část. Detekce neobvyklých hodnot na základě detekce odlehlých hodnot pouze na reziduální části. Další podrobnosti najdete v kapitole Rozklad časové řady.
Příklady
Týdenní sezónnost
V následujícím příkladu vygenerujeme řadu s týdenní sezónností a bez trendu a pak k ní přidáme některé odlehlé hodnoty. series_decompose
vyhledá a automaticky zjistí sezónnost a vygeneruje směrný plán, který je téměř stejný jako sezónní komponenta. Přidané odlehlé hodnoty jsou jasně vidět v komponentě reziduí.
let ts=range t from 1 to 24*7*5 step 1
| extend Timestamp = datetime(2018-03-01 05:00) + 1h * t
| extend y = 2*rand() + iff((t/24)%7>=5, 10.0, 15.0) - (((t%24)/10)*((t%24)/10)) // generate a series with weekly seasonality
| extend y=iff(t==150 or t==200 or t==780, y-8.0, y) // add some dip outliers
| extend y=iff(t==300 or t==400 or t==600, y+8.0, y) // add some spike outliers
| summarize Timestamp=make_list(Timestamp, 10000),y=make_list(y, 10000);
ts
| extend series_decompose(y)
| render timechart
Týdenní sezónnost s trendem
V tomto příkladu přidáme do řady trend z předchozího příkladu. Nejprve spustíme series_decompose
s výchozími parametry. Výchozí hodnota trendu avg
přebírá pouze průměr a nevypočítá trend. Vygenerovaný směrný plán neobsahuje trend. Při pozorování trendu v reziduích je zřejmé, že tento příklad je méně přesný než předchozí příklad.
let ts=range t from 1 to 24*7*5 step 1
| extend Timestamp = datetime(2018-03-01 05:00) + 1h * t
| extend y = 2*rand() + iff((t/24)%7>=5, 5.0, 15.0) - (((t%24)/10)*((t%24)/10)) + t/72.0 // generate a series with weekly seasonality and ongoing trend
| extend y=iff(t==150 or t==200 or t==780, y-8.0, y) // add some dip outliers
| extend y=iff(t==300 or t==400 or t==600, y+8.0, y) // add some spike outliers
| summarize Timestamp=make_list(Timestamp, 10000),y=make_list(y, 10000);
ts
| extend series_decompose(y)
| render timechart
Pak znovu spustíme stejný příklad. Vzhledem k tomu, že očekáváme trend v řadě, určíme linefit
v parametru trend. Vidíme, že je zjištěn pozitivní trend a směrný plán je mnohem blíže vstupní řadě. Rezidua se blíží nule a vyniknou pouze odlehlé hodnoty. V grafu vidíme všechny komponenty řady.
let ts=range t from 1 to 24*7*5 step 1
| extend Timestamp = datetime(2018-03-01 05:00) + 1h * t
| extend y = 2*rand() + iff((t/24)%7>=5, 5.0, 15.0) - (((t%24)/10)*((t%24)/10)) + t/72.0 // generate a series with weekly seasonality and ongoing trend
| extend y=iff(t==150 or t==200 or t==780, y-8.0, y) // add some dip outliers
| extend y=iff(t==300 or t==400 or t==600, y+8.0, y) // add some spike outliers
| summarize Timestamp=make_list(Timestamp, 10000),y=make_list(y, 10000);
ts
| extend series_decompose(y, -1, 'linefit')
| render timechart
Související obsah
- Vizualizace výsledků pomocí anomálií
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro