Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
SQL Server 2019 a starší služby Analysis Services Azure Analysis Services 
Fabric/ Power BI Premium
Důležité
Dolování dat bylo v SQL Serveru 2017 Analysis Services zastaralé a nyní ukončeno ve službě SQL Server 2022 Analysis Services. Dokumentace se neaktualizuje pro zastaralé a ukončené funkce. Další informace najdete v tématu Zpětná kompatibilita služby Analysis Services.
Algoritmus Microsoft Time Series obsahuje dva samostatné algoritmy pro analýzu časových řad:
Algoritmus ARTXP, který byl zaveden v SYSTÉMU SQL Server 2005 (9.x), je optimalizovaný pro predikci další pravděpodobné hodnoty v řadě.
Algoritmus ARIMA byl přidán v SYSTÉMU SQL Server 2008, aby se zlepšila přesnost dlouhodobé předpovědi.
Služba SQL Server Analysis Services ve výchozím nastavení používá každý algoritmus zvlášť k trénování modelu a poté prolíná výsledky, aby poskytla nejlepší predikci pro proměnlivý počet predikcí. Můžete se také rozhodnout použít pouze jeden z algoritmů na základě vašich dat a požadavků na predikci. V systému SQL Server 2008 Enterprise můžete přizpůsobit také bod vypnutí, který řídí kombinaci algoritmů během předpovědi.
Toto téma obsahuje další informace o implementaci jednotlivých algoritmů a o tom, jak můžete algoritmus přizpůsobit nastavením parametrů pro vyladění výsledků analýzy a predikce.
Implementace algoritmu Microsoft Time Series
Microsoft Research vyvinul původní algoritmus ARTXP, který byl použit v SQL Server 2005, přičemž implementace byla založena na algoritmu Microsoft Decision Trees. Proto lze algoritmus ARTXP popsat jako autoregresivní stromový model pro reprezentaci periodických časových řad. Tento algoritmus spojuje proměnlivý počet minulých položek s každou aktuální položkou, která se predikuje. Název ARTXP vychází ze skutečnosti, že autoregresivní stromová metoda (algoritmus ART) je použita na několik neznámých předchozích stavů. Podrobné vysvětlení algoritmu ARTXP naleznete v tématu Autoregressive Tree Models for Time-Series Analysis.
Algoritmus ARIMA byl přidán do algoritmu Microsoft Time Series v SQL Serveru 2008 za účelem zlepšení dlouhodobé předpovědi. Jedná se o implementaci procesu výpočtu autoregresních integrovaných klouzavých průměrů, které popsal Box a Jenkins. Metodologie ARIMA umožňuje určit závislosti v pozorováních pořízených postupně v čase a může začlenit náhodné šoky jako součást modelu. Metoda ARIMA také podporuje multiplikativní sezónnost. Čtenáři, kteří se chtějí dozvědět více o algoritmu ARIMA, jsou vyzváni ke čtení střední práce Box a Jenkins; tato část je určená k poskytnutí konkrétních podrobností o tom, jak byla metodika ARIMA implementována v algoritmu Microsoft Time Series.
Ve výchozím nastavení používá algoritmus Microsoft Time Series obě metody, ARTXP a ARIMA a kombinuje výsledky ke zlepšení přesnosti predikce. Pokud chcete použít pouze konkrétní metodu, můžete nastavit parametry algoritmu tak, aby používaly pouze ARTXP nebo pouze ARIMA, nebo řídit způsob kombinování výsledků algoritmů. Všimněte si, že algoritmus ARTXP podporuje křížové předpovědi, ale algoritmus ARIMA ne. Křížové předpovědi jsou proto k dispozici pouze v případě, že používáte směs algoritmů, nebo když nakonfigurujete model tak, aby používal výhradně ARTXP.
Pochopení pořadí rozdílů ARIMA
Tato část představuje určitou terminologii potřebnou k pochopení modelu ARIMA a popisuje konkrétní implementaci rozdílu v algoritmu Microsoft Time Series. Pro úplné vysvětlení těchto termínů a konceptů doporučujeme projít si Box a Jenkinse.
Termín je součástí matematické rovnice. Například termín v polynomické rovnici může obsahovat kombinaci proměnných a konstant.
Vzorec ARIMA, který je součástí algoritmu Microsoft Time Series, používá autoregresivní i klouzavé průměrné termíny.
Modely časových řad můžou být statické nebo nonstationární. Statické modely jsou ty, které se vrátí ke střední hodnotě, i když mohou mít cykly, zatímco netestační modely nemají fokus rovnováhy a podléhají větší rozptylu nebo změnám zavedeným šoky nebo externími proměnnými.
Cílem diferencování je stabilizovat časovou řadu a učinit ji stacionární.
Pořadí rozdílů představuje počet, kolikrát se rozdílů mezi hodnotami bere pro časovou řadu.
Algoritmus Microsoft Time Series funguje tak, že vezme hodnoty v datové řadě a pokusí se data přizpůsobit vzoru. Pokud datové řady ještě nejsou statické, algoritmus použije pořadí rozdílů. Každý nárůst v pořadí rozdílů má tendenci, aby časová řada byla pevnější.
Pokud máte například časovou řadu (z1, z2, ..., zn) a provádíte výpočty pomocí jednoho pořadí rozdílů, získáte novou řadu (y1, y2,...., yn-1), kde yi = zi+1-zi. Pokud je pořadí rozdílů 2, algoritmus vygeneruje další řadu (x1, x2, ..., xn-2) na základě řady y odvozené z první rovnice pořadí. Správné množství rozdílových hodnot závisí na datech. Jedno pořadí rozdílových hodnot je nejběžnější v modelech, které ukazují konstantní trend; Druhé pořadí rozdílových hodnot může znamenat trend, který se liší podle času.
Ve výchozím nastavení je pořadí rozdílů použitých v algoritmu Microsoft Time Series -1, což znamená, že algoritmus automaticky rozpozná nejlepší hodnotu pro pořadí rozdílů. Obvykle je tato nejlepší hodnota 1 (při vyžadování rozdílu), ale za určitých okolností algoritmus tuto hodnotu zvýší na maximálně 2.
Algoritmus Microsoft Time Series určuje optimální pořadí rozdílů ARIMA pomocí hodnot autoregrese. Algoritmus prozkoumá hodnoty ar a nastaví skrytý parametr ARIMA_AR_ORDER představující pořadí termínů rozšířené reality. Tento skrytý parametr ARIMA_AR_ORDER má rozsah hodnot od -1 do 8. Ve výchozí hodnotě -1 algoritmus automaticky vybere odpovídající pořadí rozdílů.
Kdykoli je hodnota ARIMA_AR_ORDER větší než 1, algoritmus vynásobí časovou řadu polynomovým termínem. Pokud se jeden termín polynomického vzorce přeloží na kořen 1 nebo blízko 1, algoritmus se pokusí zachovat stabilitu modelu odebráním termínu a zvýšením pořadí rozdílů o 1. Pokud je pořadí rozdílů již na maximum, termín se odebere a pořadí rozdílů se nezmění.
Pokud například hodnota AR = 2, výsledný polynomický termín ar může vypadat takto: 1 - 1.4B + .45B^2 = (1- .9B) (1- 0.5B). Všimněte si termínu (1- .9B) , který má kořen asi 0,9. Algoritmus tento termín eliminuje z polynomického vzorce, ale nemůže zvýšit pořadí rozdílů o jeden, protože již je na maximální hodnotě 2.
Je důležité si uvědomit, že jediným způsobem, jak můžete vynutit změnu v pořadí rozdílů, je použít nepodporovaný parametr ARIMA_DIFFERENCE_ORDER. Tento skrytý parametr řídí, kolikrát algoritmus provádí rozdíly v časových řadách, a lze ho nastavit zadáním vlastního parametru algoritmu. Tuto hodnotu však nedoporučujeme měnit, pokud nejste připraveni experimentovat a seznamte se s výpočty. Všimněte si také, že v současné době neexistuje žádný mechanismus, včetně skrytých parametrů, který vám umožní řídit prahovou hodnotu, při které se aktivuje zvýšení pořadí rozdílů.
Nakonec si všimněte, že výše popsaný vzorec je zjednodušený případ bez nápovědy pro sezónnost. Pokud jsou k dispozici rady sezónnosti, přidá se nalevo od rovnice samostatný polynomický člen AR pro každou sezónnost, a stejná strategie se použije k odstranění termínů, které by mohly destabilizovat diferencovanou řadu.
Přizpůsobení algoritmu Microsoft Time Series
Algoritmus Microsoft Time Series podporuje následující parametry, které ovlivňují chování, výkon a přesnost výsledného modelu dolování.
Poznámka:
Algoritmus Microsoft Time Series je k dispozici ve všech edicích SQL Serveru; Některé pokročilé funkce, včetně parametrů pro přizpůsobení analýzy časových řad, jsou však podporovány pouze v konkrétních edicích SQL Serveru. Seznam funkcí podporovaných edicemi SQL Serveru najdete v tématu Funkce podporované edicemi SQL Serveru.
Detekce sezónnosti
Algoritmy ARIMA i ARTXP podporují detekci sezónnosti nebo periodicity. SLUŽBA SQL Server Analysis Services pomocí rychlé fourierovy transformace detekuje sezónnost před trénováním. Zjišťování sezónnosti a výsledky analýzy časových řad však můžete ovlivnit nastavením parametrů algoritmu.
Změnou hodnoty AUTODETECT_SEASONALITY můžete ovlivnit počet generovaných časových segmentů.
Nastavením hodnoty nebo více hodnot pro PERIODICITY_HINT můžete algoritmus poskytnout informace o očekávaných cyklech v datech a potenciálně zvýšit přesnost detekce.
Poznámka:
Algoritmy ARTXP i ARIMA jsou velmi citlivé na sezónnost. Proto poskytnutí nesprávné nápovědy může nepříznivě ovlivnit výsledky.
Výběr algoritmu a určení kombinace algoritmů
Ve výchozím nastavení nebo když vyberete možnost MIXED, služba SQL Server Analysis Services kombinuje algoritmy a přiřazuje je stejnou váhu. V Enterprise Edition však můžete zadat konkrétní algoritmus nebo můžete přizpůsobit poměr jednotlivých algoritmů ve výsledcích nastavením parametru, který váží výsledky do krátkodobé nebo dlouhodobé předpovědi. Ve výchozím nastavení je parametr FORECAST_METHOD nastaven na mixed a SLUŽBA SQL Server Analysis Services používá oba algoritmy a pak váží jejich hodnoty k maximalizaci síly každého algoritmu.
Pokud chcete řídit výběr algoritmu, nastavte parametr FORECAST_METHOD .
Pokud chcete použít křížovou predikci, musíte použít buď ARTXP, nebo smíšenou možnost, protože ARIMA nepodporuje křížové předpovědi.
Pokud chcete upřednostňovat krátkodobé předpovědi, nastavte FORECAST_METHOD na ARTXP.
Pokud chcete zlepšit dlouhodobou predikci, nastavte FORECAST_METHOD na ARIMA.
V Enterprise Edition můžete také přizpůsobit, jak SQL Server Analysis Services kombinuje kombinaci algoritmů ARIMA a ARTXP. Výchozí bod směsi a rychlost změny můžete řídit nastavením parametru PREDICTION_SMOOTHING :
Pokud nastavíte PREDICTION_SMOOTHING na hodnotu 0, použije model pouze ARTXP.
Pokud nastavíte PREDICTION_SMOOTHING na hodnotu 1, použije model pouze ARIMA.
Pokud nastavíte PREDICTION_SMOOTHING na hodnotu v rozmezí od 0 do 1, model váže algoritmus ARTXP jako exponenciální snížení funkce kroků předpovědi. Současně model také váží algoritmus ARIMA jako 1-komplement k váze ARTXP. Model používá normalizaci a stabilizační konstantu k vyhlazování křivek.
Obecně platí, že pokud předpovídáte až 5 časových řezů, je ARTXP téměř vždy lepší volbou. Když ale zvýšíte počet časových řezů, které chcete předpovědět, ARIMA obvykle vykazuje lepší výkon.
Následující diagram znázorňuje, jak model kombinuje algoritmy, když je PREDICTION_SMOOTHING nastavena na výchozí hodnotu 0,5. ARIMA a ARTXP mají zpočátku stejnou váhu, ale s rostoucím počtem kroků předpovědi je ARIMA upřednostňováno.
Naproti tomu následující diagram znázorňuje kombinaci algoritmů, když je PREDICTION_SMOOTHING nastavena na hodnotu 0,2. V kroku 0 model váží ARIMA jako 0,2 a ARTXP jako 0,8. Poté se váha ARIMA exponenciálně zvýší a váha ARTXP exponenciálně sníží.
Nastavení parametrů algoritmu
Následující tabulka popisuje parametry, které lze použít s algoritmem Microsoft Time Series.
| Parameter | Description |
|---|---|
| AUTO_DETECT_PERIODICITY | Určuje číselnou hodnotu mezi 0 a 1, která zjišťuje periodičnost. Výchozí hodnota je 0,6. Pokud je hodnota blíž 0, zjistí se periodická přesnost pouze u silně periodických dat. Nastavení této hodnoty blíž k 1 upřednostňuje zjišťování mnoha vzorů, které jsou téměř pravidelné a automatické generování nápovědy k periodičnosti. Poznámka: Zpracování mnoha tipů pro periodičnosti pravděpodobně povede k výrazně delším časům trénování modelu, ale přesnějším modelům. |
| COMPLEXITY_PENALTY | Řídí růst rozhodovacího stromu. Výchozí hodnota je 0,1. Snížení této hodnoty zvyšuje pravděpodobnost rozdělení. Zvýšení této hodnoty snižuje pravděpodobnost rozdělení. Poznámka: Tento parametr je k dispozici pouze v některých edicích SQL Serveru. |
| METODA_PREDPOVĚDI | Určuje, který algoritmus se má použít pro analýzu a predikci. Možné hodnoty jsou ARTXP, ARIMA nebo MIXED. Výchozí hodnota je SMÍŠENÝ. |
| HISTORIC_MODEL_COUNT | Určuje počet historických modelů, které budou vytvořeny. Výchozí hodnota je 1. Poznámka: Tento parametr je k dispozici pouze v některých edicích SQL Serveru. |
| Historický_Model_Propasti | Určuje časová prodleva mezi dvěma po sobě jdoucími historickými modely. Výchozí hodnota je 10. Hodnota představuje řadu časových jednotek, kde je jednotka definována modelem. Například nastavení této hodnoty na g způsobí, že se historické modely sestaví pro data, která jsou zkrácena časovými řezy v intervalech g, 2*g, 3*g atd. Poznámka: Tento parametr je k dispozici pouze v některých edicích SQL Serveru. |
| INSTABILITY_SENSITIVITY | Řídí bod, kdy odchylka předpovědi překračuje určitou prahovou hodnotu, po které algoritmus ARTXP potlačí předpovědi. Výchozí hodnota je 1. Poznámka: Tento parametr se nevztahuje pouze na modely, které používají pouze ARIMA. Výchozí hodnota 1 poskytuje stejné chování jako v SQL Serveru 2005 (9.x). SLUŽBA SQL Server Analysis Services monitoruje normalizovanou směrodatnou odchylku pro každou předpověď. Jakmile tato hodnota překročí prahovou hodnotu pro jakoukoli předpověď, algoritmus časové řady vrátí hodnotu NULL a zastaví proces předpovědi. Hodnota 0 zastaví detekci nestability. To znamená, že můžete vytvořit neomezený počet předpovědí bez ohledu na rozptyl. Poznámka: Tento parametr lze upravit pouze v SYSTÉMU SQL Server Enterprise. Ve službě SQL Server Standard používá služba SQL Server Analysis Services pouze výchozí hodnotu 1. |
| MAXIMUM_SERIES_VALUE | Určuje maximální hodnotu, která se má použít pro předpovědi. Tento parametr se používá společně s MINIMUM_SERIES_VALUE k omezení předpovědí na určitý očekávaný rozsah. Můžete například určit, že předpokládané množství prodeje za libovolný den by nikdy nemělo překročit počet produktů v inventáři. Poznámka: Tento parametr je k dispozici pouze v některých edicích SQL Serveru. |
| MINIMUM_SERIES_VALUE | Určuje minimální hodnotu, kterou lze předpovědět. Tento parametr se používá společně s MAXIMUM_SERIES_VALUE k omezení předpovědí na určitý očekávaný rozsah. Můžete například určit, že předpokládané množství prodeje by nikdy nemělo být záporné číslo. Poznámka: Tento parametr je k dispozici pouze v některých edicích SQL Serveru. |
| MINIMUM_SUPPORT | Určuje minimální počet časových řezů, které jsou nutné pro vytvoření rozdělení v každém stromu časové řady. Výchozí hodnota je 10. |
| MISSING_VALUE_SUBSTITUTION | Určuje, jak se vyplní mezery v historických datech. Ve výchozím nastavení nejsou povoleny mezery v datech. Následující tabulka uvádí možné hodnoty pro tento parametr: Předchozí: Zopakuje hodnotu z předchozího časového řezu. Střední hodnota: Používá klouzavého průměru vrstev času použitých při trénování. Číselná konstanta: Použije zadané číslo k nahrazení všech chybějících hodnot. Žádné: Výchozí. Nahradí chybějící hodnoty hodnotami vykreslenými podél křivky natrénovaného modelu. Všimněte si, že pokud vaše data obsahují více řad, nemůže mít řada rozrušené hrany. To znamená, že všechny řady by měly mít stejné počáteční a koncové body. SLUŽBA SQL Server Analysis Services také používá hodnotu tohoto parametru k vyplnění mezer v nových datech při provádění funkce PREDICTION JOIN v modelu časových řad. |
| PERIODICITY_HINT | Poskytuje nápovědu pro algoritmus, pokud jde o periodičnost dat. Pokud se například prodeje liší podle roku a měrná jednotka v řadě je měsíce, periodická hodnota je 12. Tento parametr přebírá formát {n [, n]}, kde n je libovolné kladné číslo. N v hranatých závorkách [] je nepovinný a může se opakovat tak často, jak je to potřeba. Pokud chcete například zadat více tipů pro periodická data zadaná měsíčně, můžete zadat {12, 3, 1} a zjistit vzory pro rok, čtvrtletí a měsíc. Pravidelnost má ale silný vliv na kvalitu modelu. Pokud se tip, který dáváte, liší od skutečné periodicity, mohou být výsledky nepříznivě ovlivněny. Výchozí hodnota je {1}. Uvědomte si, že složené závorky jsou nezbytné. Tento parametr má rovněž datový typ string. Pokud tedy tento parametr zadáte jako součást příkazu Data Mining Extensions (DMX), musíte číslo a složené závorky uzavřít do uvozovek. |
| PREDICTION_SMOOTHING | Určuje, jak se má model kombinovat pro optimalizaci prognózy. Můžete zadat libovolnou hodnotu od 0 do 1 nebo použít jednu z následujících hodnot: 0: Určuje, že predikce používá pouze ARTXP. Prognózování je optimalizované pro méně předpovědí. 1: Určuje, že předpověď používá pouze ARIMA. Prognózování je optimalizované pro mnoho předpovědí. 0.5: Výchozí. Určuje, že pro predikci by se měly použít oba algoritmy a výsledky se směšují. Při vyhlazování predikcí použijte parametr FORECAST_METHOD ke kontrole tréninkového procesu. Všimněte si, že tento parametr je k dispozici pouze v některých edicích SQL Serveru. |
Příznaky modelování
Algoritmus Microsoft Time Series podporuje následující příznaky modelování. Při vytváření dolování struktury nebo modelu dolování definujete příznaky modelování, které určují, jak se hodnoty v jednotlivých sloupcích zpracovávají během analýzy. Další informace naleznete v tématu Modeling Flags (Data Mining).
| Příznak modelování | Description |
|---|---|
| NESMÍ BÝT NULL | Označuje, že sloupec nemůže obsahovat hodnotu null. Pokud služba Analysis Services během trénování modelu narazí na hodnotu null, dojde k chybě. Platí pro sloupce struktury dolování. |
| MODEL_EXISTENCE_ONLY | Znamená, že se sloupec bude považovat za dva možné stavy: Chybějící a Existující. Hodnota null chybí. Platí pro sloupce modelu dolování. |
Požadavky
Model časových řad musí obsahovat klíčový časový sloupec, který obsahuje jedinečné hodnoty, vstupní sloupce a alespoň jeden předvídatelný sloupec.
Vstupní a předvídatelné sloupce
Algoritmus Microsoft Time Series podporuje konkrétní typy obsahu vstupního sloupce, předvídatelné typy obsahu sloupců a příznaky modelování uvedené v následující tabulce.
| Sloupec | Typy obsahu |
|---|---|
| Vstupní atribut | Kontinuální, Klíč, Čas klíče a Tabulka |
| Předvídatelný atribut | Spojitý, Tabulka |
Poznámka:
Cyklické a seřazené typy obsahu jsou podporovány, ale algoritmus je považuje za diskrétní hodnoty a neprovádí speciální zpracování.
Viz také
Algoritmus Microsoft Time Series
Příklady dotazů modelu time series
Obsah těžebního modelu pro modely časových řad (Analysis Services – Dolování dat)