PredictTimeSeries (DMX)

platí pro: Analytické služby SQL Serveru

Vrací předpovězené budoucí hodnoty pro data časových řad. Data časových řad jsou spojitá a mohou být uložena v vnořené tabulce nebo v tabulce případů. Funkce PredictTimeSeries vždy vrací vnořenou tabulku.

Syntax

  
PredictTimeSeries(<table column reference>)  
PredictTimeSeries(<table column reference>, n)  
PredictTimeSeries(<table column reference>, n-start, n-end)  
PredictTimeSeries(<scalar column reference>)  
PredictTimeSeries(<scalar column reference>, n)  
PredictTimeSeries(<scalar column reference>, n-start, n-end)  
PredictTimeSeries(<table column reference>, n, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  
PredictTimeSeries(<table column reference>, n-start, n-end, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  
PredictTimeSeries(<scalar column reference>, n, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  
PredictTimeSeries(<scalar column reference>, n-start, n-end, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  

Arguments

<Sloupcový odkaz> tabulky, <skalární sloupcový odkaz>
Specifikuje název sloupce, který má předpovídat. Sloupec může obsahovat buď skalární, nebo tabulková data.

n
Specifikuje počet dalších kroků k předpovědi. Pokud není pro n určena hodnota, výchozí hodnota je 1.

n nemůže být 0. Funkce vrací chybu, pokud neprovedete alespoň jednu predikci.

n-start, n-konec
Specifikuje rozsah časových řad.

n-start musí být celé číslo a nemůže být 0.

n-end musí být celé číslo větší než n-start.

<Dotaz ke zdroji>
Definuje externí data, která se používají k předpovědi.

REPLACE_MODEL_CASES | EXTEND_MODEL_CASES
Ukazuje, jak pracovat s novými daty.

REPLACE_MODEL_CASES specifikuje, že datové body v modelu by měly být nahrazeny novými. Nicméně předpovědi vycházejí ze vzorců v existujícím těžebním modelu.

EXTEND_MODEL_CASES specifikuje, že nová data by měla být přidána do původní trénovací datové sady. Budoucí předpovědi se na složené datové sadě provádějí až poté, co jsou nová data využita.

Tyto argumenty lze použít pouze při přidání nových dat pomocí příkazu PREDICTION JOIN. Pokud použijete dotaz PREDICTION JOIN a nespecifikujete argument, výchozí je EXTEND_MODEL_CASES.

Návratový typ

Výraz >u <stolu.

Remarks

Algoritmus Microsoft Time Series nepodporuje historickou predikci, když použijete příkaz PREDICTION JOIN k přidání nových dat.

V PREDICTION JOIN začíná proces predikce vždy časovým krokem bezprostředně po skončení původní trénovací série. To platí i při přidání nových dat. Proto musí být hodnota n parametru a n-startu celá čísla větší než 0.

Note

Délka nových dat neovlivňuje výchozí bod pro predikci. Pokud tedy chcete přidat nová data a také dělat nové předpovědi, ujistěte se, že výchozí bod predikce nastavíte na hodnotu větší než délka nových dat, nebo prodloužíte predikční koncový bod o délku nových dat.

Examples

Následující příklady ukazují, jak dělat předpovědi vůči existujícímu modelu časových řad:

  • První příklad ukazuje, jak na základě aktuálního modelu provést stanovený počet předpovědí.

  • Druhý příklad ukazuje, jak použít parametr REPLACE_MODEL_CASES k aplikaci vzorů ve specifikovaném modelu na novou sadu dat.

  • Třetí příklad ukazuje, jak použít parametr EXTEND_MODEL_CASES k aktualizaci těžebního modelu s čerstvými daty.

Chcete-li se dozvědět více o práci s modely časových řad, podívejte se na tutoriál data miningu, Lekce 2: Budování scénáře prognózování (tutoriál pro středně pokročilé dolování dat) a DMX tutoriál predikce časových řad.

Note

Od svého modelu můžete získat jiné výsledky; Výsledky níže uvedených příkladů jsou uvedeny pouze k ilustraci formátu výsledků.

Příklad 1: Predikce počtu časových úseků

Následující příklad používá funkci PredictTimeSeries k vrácení predikce pro následující tři časové kroky a omezuje výsledky na řadu M200 v evropských a pacifických regionech. V tomto konkrétním modelu je předvídatelným atributem Quantity, takže musíte použít [Quantity] jako první argument k PredictTimeSeries.

SELECT FLATTENED  
    [Forecasting].[Model Region],  
    PredictTimeSeries([Forecasting].[Quantity],3)AS t   
FROM  
    [Forecasting]  
WHERE [Model Region] = 'M200 Europe'  
OR [Model Region] = 'M200 Pacific'  

Očekávané výsledky:

Modelový region T.$TIME t. Množství
M200 Evropa 25.7.2008 00:00:00 121
M200 Evropa 25.8.2008 00:00:00 142
M200 Evropa 25.9.2008 00:00:00 152
M200 Pacific 25.7.2008 00:00:00 46
M200 Pacific 25.8.2008 00:00:00 44
M200 Pacific 25.9.2008 00:00:00 42

V tomto příkladu bylo klíčové slovo FLATTENED použito k usnadnění čtení výsledků. Pokud nepoužijete klíčové slovo FLATTENED a místo toho vrátíte hierarchickou sadu řádků, tento dotaz vrátí dva sloupce. První sloupec obsahuje hodnotu pro [ModelRegion] a druhý sloupec obsahuje vnořenou tabulku se dvěma sloupci: $TIME, která ukazuje časové řezy, které jsou předpovídány, a Quantity, která obsahuje předpovězené hodnoty.

Příklad 2: Přidání nových dat a použití REPLACE_MODEL_CASES

Představte si, že zjistíte, že data byla nesprávná pro konkrétní oblast a chcete použít vzory v modelu, ale upravit predikce tak, aby odpovídaly novým datům. Nebo zjistíte, že jiný region má spolehlivější trendy a chcete použít nejspolehlivější model na data z jiného regionu.

V takových případech můžete použít parametr REPLACE_MODEL_CASES a určit novou sadu dat, která se použije jako historická data. Tímto způsobem budou projekce založeny na vzorech ve specifikovaném modelu, ale pokračují plynule od konce nových datových bodů. Pro kompletní průchod tímto scénářem viz Pokročilé časové řady predikcí (Tutoriál pro středně pokročilé dolování dat).

Následující dotaz PREDICTION JOIN ilustruje syntaxi pro nahrazování dat a vytváření nových predikcí. Pro náhradní data příklad získá hodnotu sloupců Amount a Quantity a vynásobí každý z nich dvěma:

SELECT [Forecasting].[Model Region],  
    PredictTimeSeries([Forecasting].[Quantity], 3, REPLACE_MODEL_CASES)   
FROM  
    [Forecasting]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT [ModelRegion],   
    ([Quantity] * 2) as Quantity,  
    ([Amount] * 2) as Amount,  
      [ReportingDate]  
    FROM [dbo].vTimeSeries  
    WHERE ModelRegion = N''M200 Pacific''  
    ') AS t  
ON  
  [Forecasting].[Model Region] = t.[ Model Region] AND  
[Forecasting].[Reporting Date] = t.[ReportingDate] AND  
[Forecasting].[Quantity] = t.[Quantity] AND  
[Forecasting].[Amount] = t.[Amount]  

Následující tabulky porovnávají výsledky predikce.

Původní předpovědi:

Modelový region Datum podání Množství
M200 Pacific 25.7.2008 00:00:00 46
M200 Pacific 25.8.2008 00:00:00 44
M200 Pacific 25.9.2008 00:00:00 42

Aktualizované předpovědi:

Modelový region Datum podání Množství
M200 Pacific 25.7.2008 00:00:00 91
M200 Pacific 25.8.2008 00:00:00 89
M200 Pacific 25.9.2008 00:00:00 84

Příklad 3: Přidání nových dat a použití EXTEND_MODEL_CASES

Příklad 3 ilustruje použití možnosti EXTEND_MODEL_CASES pro poskytnutí nových dat, která jsou přidána na konec existující datové řady. Místo nahrazení stávajících datových bodů jsou nová data přidána do modelu.

V následujícím příkladu jsou nová data uvedena v příkazu SELECT, který následuje po NATURAL PREDICTION JOIN. Můžete dodat více řádků nového vstupu s touto syntaxí, ale každý nový řádek vstupu musí mít jedinečné časové razítko:

SELECT [Model Region],  
    PredictTimeSeries([Forecasting].[Quantity], 5, EXTEND_MODEL_CASES)   
FROM  
    [Forecasting]  
NATURAL PREDICTION JOIN  
    (SELECT  
        1 as [Reporting Date],  
        10 as [Quantity],  
        'M200 Europe' AS [Model Region]  
    UNION SELECT   
        2 as [Reporting Date],  
        15 as [Quantity],  
        'M200 Europe' AS [Model Region]  
) AS T  
WHERE ([Model Region] = 'M200 Europe'  
 OR [Model Region] = 'M200 Pacific')  

Protože dotaz používá možnost EXTEND_MODEL_CASES , Analysis Services provádí následující akce pro své predikce:

  • Zvyšuje celkovou velikost trénovacích případů přidáním dvou nových měsíců dat do modelu.

  • Předpovědi začíná na konci předchozích dat o případu. Proto první dvě předpovědi představují nová skutečná prodejní data, která jste právě přidali do modelu.

  • Vrací nové predikce pro zbývající tři časové úseky založené na nově rozšířeném modelu.

Následující tabulka uvádí výsledky dotazu z Příkladu 2. Všimněte si, že první dvě hodnoty vrácené pro M200 Europe jsou přesně stejné jako nové, které jste zadali. Toto chování je záměrné; Pokud chcete začít s predikcemi až po skončení nových dat, musíte určit počáteční a koncový časový krok.

Také si všimněte, že jste neposkytl nová data pro pacifický region. Proto Analysis Services vrací nové predikce pro všech pět časových úseků.

Množství: M200 Europe. EXTEND_MODEL_CASES:

$TIME Množství
7/25/2008 0:00 10
8/25/2008 0:00 15
9/25/2008 0:00 72
10/25/2008 0:00 69
11/25/2008 0:00 68

Množství: M200 Pacific. EXTEND_MODEL_CASES:

$TIME Množství
7/25/2008 0:00 46
8/25/2008 0:00 44
9/25/2008 0:00 42
10/25/2008 0:00 42
11/25/2008 0:00 38

Příklad 4: Vracení statistik v predikci časových řad

Funkce PredictTimeSeries nepodporuje INCLUDE_STATISTICS jako parametr. Následující dotaz však může být použit k vrácení statistik predikce pro dotaz na časové řady. Tento přístup lze také použít u modelů s vnořenými sloupci tabulky.

V tomto konkrétním modelu je předvídatelným atributem Quantity, takže musíte použít [Quantity] jako první argument k PredictTimeSeries. Pokud váš model používá jiný předvídatelný atribut, můžete dosadit jiný název sloupce.

SELECT FLATTENED [Model Region],  
(SELECT   
     $Time,  
     [Quantity] as [PREDICTION],   
     PredictVariance([Quantity]) AS [VARIANCE],  
     PredictStdev([Quantity]) AS [STDEV]  
FROM  
      PredictTimeSeries([Quantity], 3) AS t  
) AS t  
FROM Forecasting  
WHERE [Model Region] = 'M200 Europe'  
OR [Model Region] = 'M200 North America'  

Ukázkové výsledky:

Modelový region T.$TIME t.PREDIKCE t.VARIANCE t.STDEV
M200 Evropa 25.7.2008 00:00:00 121 11.6050581415597 3.40661975300439
M200 Evropa 25.8.2008 00:00:00 142 10.678201866621 3.26775180615374
M200 Evropa 25.9.2008 00:00:00 152 9.86897842568614 3.14149302493037
M200 Severní Amerika 25.7.2008 00:00:00 163 1.20434529288162 1.20434529288162
M200 Severní Amerika 25.8.2008 00:00:00 178 1.65031343900634 1.65031343900634
M200 Severní Amerika 25.9.2008 00:00:00 156 1.68969399185442 1.68969399185442

Note

Klíčové slovo FLATTENED bylo v tomto příkladu použito k usnadnění zobrazení výsledků v tabulce; pokud však váš poskytovatel podporuje hierarchické řádkové sady, můžete klíčové slovo FLATTENED vynechat. Pokud vynecháte klíčové slovo FLATTENED, dotaz vrátí dva sloupce, první sloupec obsahuje hodnotu identifikující [Model Region] datovou řadu a druhý sloupec vnořenou tabulku statistik.