series_decompose()
Felbontásátalakítást alkalmaz egy sorozatra.
Bemenetként egy adatsort (dinamikus numerikus tömböt) tartalmazó kifejezést használ, és szezonális, trend és reziduális összetevőkké bontja.
Syntax
series_decompose(
Sorozat,
[ Szezonalitás,
Trend,
,
Test_pointsSeasonality_threshold ])
További információ a szintaxis konvenciókról.
Paraméterek
Név | Típus | Kötelező | Leírás |
---|---|---|---|
Adatsorozat | dynamic |
✔️ | Numerikus értékek tömbje, általában a make-series vagy make_list operátorok eredményül kapott kimenete. |
Szezonalitás | int |
Szabályozza a szezonális elemzést. Lehetséges értékek: - -1 : A szezonalitás automatikus észlelése series_periods_detect használatával. Ez az alapértelmezett érték.- Időszak: Pozitív egész szám, amely a intervallumok számában adja meg a várt időszakot. Ha például a sorozat intervallumokban 1 - h van, a heti időszak 168 doboz.- 0 : Nincs szezonalitás, ezért hagyja ki ezt az összetevőt. |
|
Trend | string |
Szabályozza a trendelemzést. Lehetséges értékek: - avg : Trendösszetevő meghatározása a következőként average(x) : . Ez az alapértelmezett beállítás.- linefit : Trendösszetevő kinyerése lineáris regresszióval.- none : Nincs trend, ezért hagyja ki ezt az összetevőt. |
|
Test_points | int |
Pozitív egész szám, amely a sorozat végén a tanulási vagy regressziós folyamatból kizárandó pontok számát adja meg. Ezt a paramétert előrejelzési célokra kell beállítani. Az alapértelmezett érték a 0. | |
Seasonality_threshold | real |
A szezonalitási pontszám küszöbértéke, ha a szezonalitás automatikus észlelésre van beállítva. Az alapértelmezett pontszám küszöbértéke 0,6. További információ: series_periods_detect. |
Válaszok
A függvény a következő sorozatot adja vissza:
baseline
: az adatsor előrejelzett értéke (szezonális és trendösszetevők összege, lásd alább).seasonal
: a szezonális összetevő sorozata:- ha az időszak nem észlelhető, vagy explicit módon 0: 0 állandóra van állítva.
- ha észlelik vagy pozitív egész számra állítják be: az adatsorpontok mediánja ugyanabban a fázisban
trend
: a trendösszetevő sorozata.residual
: a reziduális összetevő sorozata (azaz x - alapkonfiguráció).
Megjegyzés
- Összetevő végrehajtási sorrendje:
- A szezonális sorozat kinyerése
- Kivonja az x-ből, és létrehozza a deszeazonális sorozatot
- A trendösszetevő kinyerése a deseasonal sorozatból
- Alapterv létrehozása = szezonális + trend
- A reziduális létrehozása = x – alapkonfiguráció
- Engedélyezni kell a szezonalitást és a trendet. Ellenkező esetben a függvény redundáns, és csak alapkonfigurációt = 0 és reziduális = x értéket ad vissza.
További információ a sorozat felbontásáról
Ezt a módszert általában olyan metrikák idősorozatára alkalmazzák, amelyeket az időszakos és/vagy trendi viselkedés nyilvánul meg. A metódussal előrejelzheti a jövőbeli metrikaértékeket és/vagy észlelheti a rendellenes értékeket. Ennek a regressziós folyamatnak az implicit feltételezése az, hogy a szezonális és trendviselkedésen kívül az idősor sztochasztikus és véletlenszerűen elosztott. A szezonális és trendösszetevők jövőbeli metrikaértékeinek előrejelzése a reziduális rész figyelmen kívül hagyásával. A rendellenes értékeket csak a reziduális rész kiugró észlelése alapján észleli. További részletek a Time Series Felbontás fejezetben találhatók.
Példák
Heti szezonalitás
A következő példában heti szezonalitással és trendek nélkül hozunk létre egy sorozatot, majd hozzáadunk hozzá néhány kiugró értékeket. series_decompose
megkeresi és automatikusan észleli a szezonalitást, és olyan alapkonfigurációt hoz létre, amely majdnem megegyezik a szezonális összetevővel. A hozzáadott kiugró értékek egyértelműen láthatók a reziduálisok összetevőben.
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
Heti szezonalitás trenddel
Ebben a példában egy trendet adunk hozzá az előző példából származó sorozathoz. Először az alapértelmezett paraméterekkel futtatjuk a parancsot series_decompose
. A trend avg
alapértelmezett értéke csak az átlagot veszi figyelembe, és nem számítja ki a trendet. A létrehozott alapterv nem tartalmazza a trendet. A reziduálisok trendjének megfigyelésekor nyilvánvalóvá válik, hogy ez a példa kevésbé pontos, mint az előző példa.
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
Ezután újrafuttatjuk ugyanazt a példát. Mivel trendet várunk a sorozatban, a trendparaméterben határozzuk meg linefit
. Láthatjuk, hogy a pozitív trend észlelhető, és az alapkonfiguráció sokkal közelebb van a bemeneti adatsorhoz. A reziduálisok közel nulla, és csak a kiugró értékek tűnnek ki. A diagramon az adatsor összes összetevője látható.
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
Kapcsolódó tartalom
- Eredmények vizualizációja anomálicharttal
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: