Algoritmus Microsoft Time Series

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 poskytuje více algoritmů, které jsou optimalizované pro prognózování průběžných hodnot, jako je prodej produktů, v průběhu času. Zatímco jiné algoritmy Microsoftu, jako jsou rozhodovací stromy, vyžadují další sloupce nových informací jako vstup k predikci trendu, model časových řad ne. Model časových řad dokáže predikovat trendy pouze na základě původní datové sady, která se používá k vytvoření modelu. Při vytváření předpovědi a automatickém začlenění nových dat do analýzy trendu můžete do modelu přidat nová data.

Následující diagram znázorňuje typický model pro prognózování prodeje produktu ve čtyřech různých prodejních oblastech v průběhu času. Model zobrazený v diagramu zobrazuje prodej pro každou oblast vykreslenou červenou, žlutou, fialovou a modrou čárou. Řádek pro každou oblast má dvě části:

  • Nalevo od svislé čáry se zobrazují historické informace a představují data, která algoritmus používá k vytvoření modelu.

  • Předpovězené informace se zobrazují napravo od svislé čáry a představují prognózu, kterou model vytváří.

Kombinace zdrojových dat a prediktivních dat se nazývá řada.

Příklad časové řady

Důležitou funkcí algoritmu Microsoft Time Series je, že dokáže provádět křížové předpovědi. Pokud algoritmus vytrénujete pomocí dvou samostatných, ale souvisejících řad, můžete výsledný model použít k predikci výsledku jedné řady na základě chování druhé řady. Pozorované prodeje jednoho produktu můžou například ovlivnit předpokládané prodeje jiného produktu. Křížové předpovědi jsou užitečné také při vytváření obecného modelu, který lze použít na více řad. Například předpovědi pro určitou oblast jsou nestabilní, protože řada nemá kvalitní data. Obecný model můžete vytrénovat v průměru ze všech čtyř oblastí a pak použít model na jednotlivé řady, abyste vytvořili stabilnější předpovědi pro každou oblast.

Example

Tým pro správu společnosti Adventure Works Cycles chce předpovědět měsíční prodej jízdních kol za nadcházející rok. Společnost se zejména zajímá o to, zda lze prodej jednoho modelu kol použít k predikci prodeje jiného modelu. Pomocí algoritmu Microsoft Time Series na historických datech z minulých tří let může společnost vytvořit model dolování dat, který předpovídá budoucí prodej kol. Kromě toho může společnost provádět křížové předpovědi a zjistit, jestli souvisí prodejní trendy jednotlivých modelů kol.

Každé čtvrtletí společnost plánuje aktualizovat model s nedávnými prodejními daty a aktualizovat jejich předpovědi tak, aby modelovaly nedávné trendy. Aby bylo možné opravit obchody, které ani přesně ani konzistentně neaktualizují prodejní data, vytvoří obecný model predikce a použije ho k vytvoření předpovědí pro všechny oblasti.

Jak funguje algoritmus

V SYSTÉMU SQL Server 2005 (9.x) algoritmus Microsoft Time Series použil jednu metodu automatické regresní časové řady s názvem ARTXP. Algoritmus ARTXP byl optimalizovaný pro krátkodobé předpovědi, a proto exceloval při předpovídání další pravděpodobné hodnoty v řadě. Od SQL Serveru 2008 přidal algoritmus Microsoft Time Series druhý algoritmus ARIMA, který byl optimalizován pro dlouhodobou predikci. Podrobné vysvětlení implementace algoritmů ARTXP a ARIMA naleznete v technických referenčních informacích k algoritmům Microsoft Time Series.

Ve výchozím nastavení používá algoritmus Microsoft Time Series kombinaci algoritmů při analýze vzorů a vytváření předpovědí. Algoritmus trénuje dva samostatné modely na stejných datech: jeden model používá algoritmus ARTXP a jeden model používá algoritmus ARIMA. Algoritmus pak promíchá výsledky dvou modelů, aby přinesl nejlepší předpověď na proměnlivý počet časovýchřezch Vzhledem k tomu, že ARTXP je nejvhodnější pro krátkodobé předpovědi, je váženější na začátku řady předpovědí. Vzhledem k tomu, že se časové řezy, které předpovídáte, posunou dále do budoucna, je ARIMA silněji vážena.

Kombinaci algoritmů můžete také řídit tak, aby upřednostňovala krátkodobé nebo dlouhodobé předpovědi v časových řadách. Počínaje sql Serverem 2008 Standard můžete určit, který algoritmus se má použít:

  • K krátkodobé predikci používejte pouze ARTXP.

  • Pro dlouhodobou predikci používejte pouze ARIMA.

  • Použijte výchozí kombinaci dvou algoritmů.

Od verze SQL Server 2008 Enterprise můžete také přizpůsobit, jak algoritmus Microsoft Time Series kombinuje modely pro predikci. Při použití smíšeného modelu se algoritmus Microsoft Time Series spojí těmito dvěma algoritmy následujícím způsobem:

  • Pouze ARTXP se vždy používá k vytvoření prvních pár předpovědí.

  • Po prvním páru předpovědí se použije kombinace ARIMA a ARTXP.

  • S rostoucím počtem kroků předpovědí se predikce více spoléhají na ARIMA, dokud se ARTXP už nepoužívá.

  • Řídíte směšovací bod, rychlost snížení hmotnosti ARTXP a váha ARIMA se zvýší nastavením parametru PREDICTION_SMOOTHING.

Oba algoritmy můžou detekovat sezónnost dat na více úrovních. Vaše data můžou například obsahovat měsíční cykly vnořené do ročních cyklů. Pokud chcete zjistit tyto sezónní cykly, můžete zadat buď nápovědu k periodičnosti, nebo určit, že algoritmus by měl automaticky zjišťovat periodičnost.

Kromě periodičnosti existuje několik dalších parametrů, které řídí chování algoritmu Microsoft Time Series při zjišťování periodicity, vytváření predikcí nebo analýze případů. Informace o tom, jak nastavit parametry algoritmu, naleznete v tématu Technické referenční informace k algoritmu Microsoft Time Series.

Data požadovaná pro modely časových řad

Při přípravě dat na použití při trénování jakéhokoli modelu dolování dat se ujistěte, že rozumíte požadavkům konkrétního modelu a způsobu použití dat.

Každý model prognózování musí obsahovat řadu případů, což je sloupec, který určuje časové řezy nebo jiné řady, u kterých dojde ke změně. Například data v předchozím diagramu znázorňují řadu historických a předpokládaných prodejů kol za několik měsíců. Pro tento model je každá oblast řadou a sloupec kalendářního data obsahuje časovou řadu, což je také řada případů. V jiných modelech může být řada případů textovým polem nebo určitým identifikátorem, jako je ID zákazníka nebo ID transakce. Model časových řad však musí vždy používat datum, čas nebo jinou jedinečnou číselnou hodnotu pro řadu případů.

Požadavky modelu časových řad jsou následující:

  • Sloupec s jedním klíčovým časem Každý model musí obsahovat jeden číselný nebo datový sloupec, který se používá jako řada případů, který definuje časové řezy, které bude model používat. Datový typ sloupce klíčového času může být datový typ datetime nebo číselný datový typ. Sloupec však musí obsahovat souvislé hodnoty a hodnoty musí být jedinečné pro každou řadu. Řady případů pro model časových řad nelze uložit ve dvou sloupcích, například ve sloupci Rok a měsíc.

  • Předvídatelný sloupec Každý model musí obsahovat alespoň jeden předvídatelný sloupec, ve kterém algoritmus sestaví model časové řady. Datový typ předvídatelného sloupce musí mít souvislé hodnoty. Můžete například předpovědět, jak se číselné atributy, jako jsou příjmy, prodeje nebo teplota, mění v průběhu času. Sloupec, který obsahuje diskrétní hodnoty, například stav nákupu nebo úroveň vzdělávání, ale nemůžete použít jako předvídatelný sloupec.

  • Volitelný sloupec seriového klíče Každý model může mít další klíčový sloupec, který obsahuje jedinečné hodnoty, které identifikují sérii. Volitelný sloupec klíče řady musí obsahovat jedinečné hodnoty. Například jeden model může obsahovat prodej mnoha modelů produktů, pokud existuje pouze jeden záznam pro každý název produktu v každém časovém úseku.

Vstupní data pro model Microsoft Time Series můžete definovat několika různými způsoby. Vzhledem k tomu, že formát vstupních případů ovlivňuje definici modelu dolování, musíte zvážit obchodní potřeby a odpovídajícím způsobem připravit data. Následující dva příklady ukazují, jak vstupní data ovlivňují model. V obou příkladech dokončený model dolování obsahuje vzory pro čtyři různé řady:

  • Prodeje produktu A

  • Prodeje produktu B

  • Objem pro produkt A

  • Objem pro produkt B

V obou příkladech můžete předpovědět nové budoucí prodeje a objemy pro každý produkt. Nemůžete předpovědět nové hodnoty pro produkt nebo čas.

Příklad 1: Datová sada časových řad se řadou reprezentovanou jako hodnoty sloupců

Tento příklad používá následující tabulku vstupních případů:

TimeID Product Sales Volume
1/2001 A 1 000 600
2/2001 A 1100 500
1/2001 B 500 900
2/2001 B 300 890

Sloupec TimeID v tabulce obsahuje identifikátor času a každý den má dvě položky. Sloupec TimeID se stane sérií případů. Proto byste tento sloupec určili jako klíčový časový sloupec modelu časové řady.

Sloupec Product definuje produkt v databázi. Tento sloupec obsahuje produktovou řadu. Proto byste tento sloupec určili jako druhý klíč modelu časové řady.

Sloupec Prodej popisuje hrubé zisky zadaného produktu za jeden den a sloupec Objem popisuje množství zadaného produktu, které zůstává ve skladu. Tyto dva sloupce obsahují data, která se používají k trénování modelu. Prodej i objem mohou být předvídatelné atributy pro každou řadu ve sloupci Produkt.

Příklad 2: Datová sada časových řad s každou řadou v samostatném sloupci

I když tento příklad používá v podstatě stejná vstupní data jako první příklad, vstupní data jsou strukturovaná odlišně, jak je znázorněno v následující tabulce:

TimeID A_Sales A_Volume B_Sales B_Volume
1/2001 1 000 600 500 900
2/2001 1100 500 300 890

V této tabulce sloupec TimeID stále obsahuje řadu případů pro model časových řad, který určíte jako klíčový sloupec času. Předchozí sloupce Sales a Volume jsou ale teď rozdělené do dvou sloupců a každý z těchto sloupců předchází názvu produktu. V důsledku toho existuje pouze jedna položka pro každý den ve sloupci TimeID. Tím se vytvoří model časových řad, který bude obsahovat čtyři předvídatelné sloupce: A_Sales, A_Volume, B_Sales a B_Volume.

Vzhledem k tomu, že jste produkty rozdělili do různých sloupců, nemusíte navíc zadávat další klíčový sloupec řady. Všechny sloupce v modelu jsou buď sloupce řady případů, nebo předpověditelné sloupce.

Zobrazení modelu časové řady

Po vytrénování modelu se výsledky uloží jako sada vzorů, které můžete prozkoumat nebo použít k předpovědím.

K prozkoumání modelu můžete použít Prohlížeč časových řad. Prohlížeč obsahuje graf zobrazující budoucí předpovědi a stromové zobrazení pravidelných struktur v datech.

Pokud chcete získat další informace o výpočtu předpovědí, můžete model procházet v prohlížeči Microsoft Generic Content Tree Viewer. Obsah uložený pro model obsahuje podrobnosti, jako jsou pravidelné struktury zjištěné algoritmy ARIMA a ARTXP, rovnice použitá k kombinování algoritmů a dalších statistik.

Vytváření předpovědí časových řad

Když ve výchozím nastavení zobrazíte model časových řad, služba SQL Server Analysis Services zobrazí pět předpovědí pro řadu. Můžete ale vytvořit dotazy, které vrátí proměnlivý počet předpovědí a do předpovědí můžete přidat další sloupce, které vrátí popisné statistiky. Informace o vytváření dotazů na model časových řad naleznete v tématu Příklady dotazů modelu časové řady. Příklady použití rozšíření dmX (Data Mining Extensions) k předpovědím časových řad najdete v tématu PredictTimeSeries (DMX).

Při použití algoritmu Microsoft Time Series k předpovědím byste měli zvážit následující další omezení a požadavky:

  • Křížová predikce je dostupná pouze při použití smíšeného modelu, nebo při použití modelu výhradně založeného na algoritmu ARTXP. Pokud používáte model založený pouze na algoritmu ARIMA, křížové předpovědi není možné.

  • Model časových řad může provádět předpovědi, které se někdy výrazně liší v závislosti na 64bitovém operačním systému, který server používá. K těmto rozdílům dochází z důvodu způsobu, jakým systém založený na Itanium představuje a zpracovává čísla pro desetinnou aritmetiku, která se liší od způsobu, jakým systém založený na x64 provádí tyto výpočty. Vzhledem k tomu, že výsledky předpovědi můžou být specifické pro operační systém, doporučujeme vyhodnotit modely ve stejném operačním systému, který budete používat v produkčním prostředí.

Poznámky

  • Nepodporuje použití jazyka PMML (Predictive Model Markup Language) k vytváření modelů dolování.

  • Podporuje použití dolování modelů OLAP.

  • Nepodporuje vytváření dimenzí dolování dat.

  • Podporuje podrobnou analýzu.

Viz také

Algoritmy dolování dat (Analysis Services – Dolování dat)
Procházení modelu pomocí prohlížeče Microsoft Time Series Viewer
Technické reference k algoritmu Microsoft Time Series
Příklady dotazů modelu time series
Obsah těžebního modelu pro modely časových řad (Analysis Services – Dolování dat)