Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server Analysis Services
Előre jelzett jövőbeli értékeket hoz az idősorok adataihoz. Az idősoros adatok folyamatosak, és tárolhatók egy beágyazott táblában vagy esettáblában. A PredictTimeSeries függvény mindig egy beágyazott táblát ad vissza.
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
<táblázatoszlop hivatkozás>, <skálároszlop hivatkozás>
Megadja az előre jelezhető oszlop nevét. Az oszlop tartalmazhat skaláris vagy táblázatos adatokat.
n
Megadja, hány következő lépést kell előre látni. Ha n-re nincs megadva érték, akkor az alapértelmezett érték 1.
n nem lehet 0. A függvény hibát ad vissza, ha legalább egy előrejelzést nem teszünk.
n-start, n-end
Megad egy idősor-lépéstartományt.
n-start egész számnak kell lennie, és nem lehet 0.
n-végének egy egész számnak kell lennie, amely nagyobb, mint n-start.
<Forráslekérdezés>
Definiálja azokat a külső adatokat, amelyeket előrejelzésekhez használnak.
REPLACE_MODEL_CASES | EXTEND_MODEL_CASES
Megmutatja, hogyan kezeljük az új adatokat.
REPLACE_MODEL_CASES előírja, hogy a modell adatpontjait új adatokkal kell helyettesíteni. Azonban a jóslatok a meglévő bányászati modell mintázatán alapulnak.
EXTEND_MODEL_CASES előírja, hogy az új adatokat az eredeti tanítási adathalmazhoz kell hozzáadni. A jövőbeli előrejelzéseket csak az összetett adathalmazon akkor teszik, miután az új adatok már elhasználták.
Ezek az argumentumok csak akkor használhatók, ha új adatokat adnak hozzá egy PREDICTION JOIN utasítással. Ha PREDICTION JOIN lekérdezést használsz, és nem jelölsz meg argumentust, akkor az alapértelmezett EXTEND_MODEL_CASES.
Visszatérési típus
Egy <asztali kifejezés>.
Remarks
A Microsoft Time Series algoritmus nem támogatja a történelmi előrejelzést, amikor a PREDICTION JOIN utasítást használjuk új adatok hozzáadására.
A PREDICTION JOIN esetén a jóslási folyamat mindig az eredeti képzési sorozat vége utáni időlépésnél kezdődik. Ez akkor is igaz, ha új adatokat adsz hozzá. Ezért az n paraméter és n-kezdő paraméterértékek egész számnak kell lenniük, amelyek nagyobbak lehetnek 0-nál.
Note
Az új adatok hossza nem befolyásolja az előrejelzés kiindulópontját. Ezért, ha új adatokat szeretnél hozzáadni és új előrejelzéseket is készíteni, győződj meg róla, hogy a jóslás kezdőpontját vagy az új adatok hosszánál nagyobb értéket állítsd be, vagy a jóslás végpontját az új adatok hosszával hosszabbítsd.
Examples
Az alábbi példák bemutatják, hogyan lehet előrejelzéseket készíteni egy meglévő idősorozat modell ellen:
Az első példa megmutatja, hogyan lehet meghatározott számú előrejelzést készíteni a jelenlegi modell alapján.
A második példa bemutatja, hogyan lehet a REPLACE_MODEL_CASES paramétert felhasználni a megadott modell mintáinak alkalmazására egy új adathalmazra.
A harmadik példa bemutatja, hogyan lehet a EXTEND_MODEL_CASES paramétert használni egy bányászati modell frissítésére friss adatokkal.
Ha többet szeretnél megtudni az idősoros modellekkel való munkáról, tekintse meg az adatbányászati oktatóanyagot, a 2. leckét: Előrejelzési forgatókönyv építését (Intermediate Data Mining tutorial) és az Idősorozat előrejelzési DMX oktatóanyagot.
Note
A modelledből eltérő eredményeket érhetsz el; Az alábbi példák eredményei csak az eredmény formátumának illusztrálására szolgálnak.
1. példa: Idővágások számának előrejelzése
A következő példa a PredictTimeSeries függvényt használja a következő három időlépés előrejelzésére, és az eredményeket az M200-as sorozatra korlátozza az európai és csendes-óceáni régiókban. Ebben a modellben a kiszámítható attribútum a mennyiség, ezért az PredictTimeSeries függvény első argumentumként kell használni [Quantity] .
SELECT FLATTENED
[Forecasting].[Model Region],
PredictTimeSeries([Forecasting].[Quantity],3)AS t
FROM
[Forecasting]
WHERE [Model Region] = 'M200 Europe'
OR [Model Region] = 'M200 Pacific'
Várt eredmények:
| Modell régió | t.$TIME | t.Mennyiség |
|---|---|---|
| M200 Europe | 2008.07.25. 00:00:00 | 121 |
| M200 Europe | 2008.08.25. 00:00:00 | 142 |
| M200 Europe | 2008.09.25. 00:00:00 | 152 |
| M200 Pacific | 2008.07.25. 00:00:00 | 46 |
| M200 Pacific | 2008.08.25. 00:00:00 | 44 |
| M200 Pacific | 2008.09.25. 00:00:00 | 42 |
Ebben a példában a LAPÍTOTT kulcsszót használtuk, hogy az eredmények könnyebben olvashatók legyenek. Ha nem a FLATTENED kulcsszót használod, hanem hierarchikus sorhalmazt adsz vissza, ez a lekérdezés két oszlopot ad vissza. Az első oszlop tartalmazza a [ModelRegion] értékét, a második oszlop pedig egy beágyazott táblázatot két oszloppal: $TIME, amely a megjósolt időszeleteket mutatja, és a Mennyiség, amely tartalmazza a jósolt értékeket.
2. példa: Új adatok hozzáadása és REPLACE_MODEL_CASES használata
Tegyük fel, hogy az adatok egy adott régióban hibásak voltak, és a modell mintázatait szeretnéd használni, de az előrejelzéseket az új adatokhoz igazítjuk. Vagy előfordulhat, hogy egy másik régióban megbízhatóbb trendek vannak, és a legmegbízhatóbb modellt szeretnéd alkalmazni egy másik régió adataira.
Ilyen esetekben használhatod a REPLACE_MODEL_CASES paramétert, és megadhatsz egy új adathalmazt, amit történelmi adatként használhatsz. Így a előrejelzések a megadott modell mintáin alapulnak, de az új adatpontok végétől simán folytatódnak. Ennek a forgatókönyvnek a teljes végigjátszásáért lásd az Advanced Time Series Predictions (Intermediate Data Mining Tutorial) című részt.
A következő PREDICTION JOIN lekérdezés bemutatja az adatok helyettesítésének és új előrejelzések készítésének szintaxisát. A helyettesítő adatok esetében a példa lekéri a Mennyiség és a Mennyiség oszlopok értékét, és mindegyiket kettővel szorozza:
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]
Az alábbi táblázatok összehasonlítják az előrejelzések eredményeit.
Eredeti előrejelzések:
| Modell régió | Jelentési Dátum | Mennyiség |
|---|---|---|
| M200 Pacific | 2008.07.25. 00:00:00 | 46 |
| M200 Pacific | 2008.08.25. 00:00:00 | 44 |
| M200 Pacific | 2008.09.25. 00:00:00 | 42 |
Frissített előrejelzések:
| Modell régió | Jelentési Dátum | Mennyiség |
|---|---|---|
| M200 Pacific | 2008.07.25. 00:00:00 | 91 |
| M200 Pacific | 2008.08.25. 00:00:00 | 89 |
| M200 Pacific | 2008.09.25. 00:00:00 | 84 |
3. példa: Új adatok hozzáadása és EXTEND_MODEL_CASES használata
A 3. példa bemutatja a EXTEND_MODEL_CASES opció használatát új adatok megadására, amelyeket egy meglévő adatsorozat végéhez adnak hozzá. Ahelyett, hogy a meglévő adatpontokat cserélnék, az új adatokat hozzáadják a modellhez.
A következő példában az új adatokat a SELECT utasításban adjuk meg, amely a NATURAL PREDICTION JOIN következetet követi. Ezzel a szintaxissal több sor új bemenetet is adhatsz be, de minden új bemeneti sornak egyedi időbélyeggel kell rendelkeznie:
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')
Mivel a lekérdezés a EXTEND_MODEL_CASES opciót használja, az Analysis Services a következő lépéseket teszi előrejelzéseihez:
Növeli a betanítási esetek teljes méretét azzal, hogy hozzáadja a két új hónapnyi adatot a modellhez.
A jóslatokat az előző esetadatok végén indítja. Ezért az első két előrejelzés az új tényleges értékesítési adatokat jelenti, amelyeket nemrég hozzáadtál a modellhez.
Új előrejelzéseket ad a fennmaradó három időszeletre az újonnan kibővített modell alapján.
Az alábbi táblázat a 2. példa lekérdezésének eredményeit tartalmazza. Figyeld meg, hogy az első két érték, amit az M200 Europe esetében visszaadtak, pontosan ugyanazok, mint az általad megadott új értékek. Ez a viselkedés szándékosan van; Ha az új adatok vége után szeretnél előrejelzéseket indítani, meg kell határoznod egy kezdő és befejező időlépést.
Figyeld meg azt is, hogy nem adtál új adatokat a Csendes-óceáni régióról. Ezért az Analysis Services mind az öt időszeletre új előrejelzéseket ad.
Mennyiség: M200 Európa. EXTEND_MODEL_CASES:
| $TIME | Mennyiség |
|---|---|
| 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 |
Mennyiség: M200 Pacific. EXTEND_MODEL_CASES:
| $TIME | Mennyiség |
|---|---|
| 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 |
4. példa: Statisztikák visszaadása idősorozat előrejelzésben
A PredictTimeSeries függvény nem támogatja INCLUDE_STATISTICS paraméterként. Azonban a következő lekérdezés segítségével visszaadhatjuk az idősorozat lekérdezésének előrejelzési statisztikáit. Ez a megközelítés alkalmazható olyan modelleknél is, amelyeknek beágyazott táblázatoszlopai vannak.
Ebben a modellben a kiszámítható attribútum a mennyiség, ezért az PredictTimeSeries függvény első argumentumként kell használni [Quantity] . Ha a modell más, kiszámítható attribútumot használ, akkor más oszlopnevet is beválthatsz.
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'
Mintaeredmények:
| Modell régió | t.$TIME | t.ELŐREJELZÉS | t.VARIANCIA | t.STDEV |
|---|---|---|---|---|
| M200 Europe | 2008.07.25. 00:00:00 | 121 | 11.6050581415597 | 3.40661975300439 |
| M200 Europe | 2008.08.25. 00:00:00 | 142 | 10.678201866621 | 3.26775180615374 |
| M200 Europe | 2008.09.25. 00:00:00 | 152 | 9.86897842568614 | 3.14149302493037 |
| M200 Észak-Amerika | 2008.07.25. 00:00:00 | 163 | 1.20434529288162 | 1.20434529288162 |
| M200 Észak-Amerika | 2008.08.25. 00:00:00 | 178 | 1.65031343900634 | 1.65031343900634 |
| M200 Észak-Amerika | 2008.09.25. 00:00:00 | 156 | 1.68969399185442 | 1.68969399185442 |
Note
Ebben a példában a FLATTENED kulcsszót használták, hogy az eredmények könnyebben megjeleníthetők legyenek egy táblázatban; viszont, ha a szolgáltatód támogatja a hierarchikus sorsorokat, akkor kihagyhatod a FLATTENED kulcsszót. Ha kihagyod a FLATTENED kulcsszót, a lekérdezés két oszlopot ad vissza: az első oszlop tartalmazza az adatsorozatot azonosító értéket [Model Region] , a második oszlop pedig a beágyazott statisztikai táblát.