Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: usług SQL Server Analysis Services
Zwraca przewidywane przyszłe wartości danych szeregów czasowych. Dane szeregów czasowych są ciągłe i mogą być przechowywane w zagnieżdżonej tabeli lub w tabeli przypadków. Funkcja PredictTimeSeries zawsze zwraca zagnieżdżoną tabelę.
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
<Referencja> kolumn w tabeli, <odniesienie> kolumny skalarnej
Określa nazwę kolumny do przewidzenia. Kolumna może zawierać dane skalarne lub tabelaryczne.
n
Określa liczbę kolejnych kroków do przewidzenia. Jeśli wartość dla n nie jest określona, domyślna wartość wynosi 1.
n nie może być równe 0. Funkcja zwraca błąd, jeśli nie wykonasz przynajmniej jednej prognozy.
n-start, n-koniec
Określa zakres kroków szeregów czasowych.
n-start musi być liczbą całkowitą i nie może być 0.
n-end musi być liczbą całkowitą większą niż n-start.
<Zapytanie źródłowe>
Definiuje dane zewnętrzne wykorzystywane do przewidywania.
REPLACE_MODEL_CASES | EXTEND_MODEL_CASES
Wskazuje, jak obsługiwać nowe dane.
REPLACE_MODEL_CASES określa, że punkty danych w modelu powinny zostać zastąpione nowymi danymi. Jednak prognozy opierają się na wzorcach istniejących modeli górniczych.
EXTEND_MODEL_CASES określa, że nowe dane powinny być dodane do oryginalnego zbioru danych treningowych. Prognozy na przyszłość są dokonywane na zbiorze danych złożonych dopiero po wykorzystaniu nowych danych.
Argumenty te można stosować tylko wtedy, gdy nowe dane są dodawane za pomocą instrukcji PREDICTION JOIN. Jeśli użyjesz zapytania PREDICTION JOIN i nie określisz argumentu, domyślnym zapytaniem jest EXTEND_MODEL_CASES.
Zwracany typ
Wyraz >twarzy przy <stole.
Remarks
Algorytm Microsoft Time Series nie obsługuje historycznego przewidywania, gdy używasz instrukcji PREDICTION JOIN do dodawania nowych danych.
W PREDICTION JOIN proces predykcji zawsze rozpoczyna się od kroku czasowego bezpośrednio po zakończeniu oryginalnej serii treningowej. To prawda nawet jeśli dodasz nowe dane. Dlatego wartości n parametrów i n-startowych muszą być liczbą całkowitą większą niż 0.
Note
Długość nowych danych nie wpływa na punkt początkowy do prognozowania. Dlatego jeśli chcesz dodać nowe dane i jednocześnie tworzyć nowe prognozy, upewnij się, że ustawiasz punkt początkowy prognozy na wartość większą niż długość nowych danych lub wydłużysz punkt końcowy o długość nowych danych.
Examples
Poniższe przykłady pokazują, jak dokonywać prognoz na podstawie istniejącego modelu szeregów czasowych:
Pierwszy przykład pokazuje, jak dokonać określonej liczby przewidywań na podstawie obecnego modelu.
Drugi przykład pokazuje, jak użyć parametru REPLACE_MODEL_CASES do zastosowania wzorców z określonego modelu do nowego zbioru danych.
Trzeci przykład pokazuje, jak użyć parametru EXTEND_MODEL_CASES do aktualizacji modelu wydobycia na świeże dane.
Aby dowiedzieć się więcej o pracy z modelami szeregów czasowych, zobacz samouczek eksploracji danych, Lekcja 2: Budowanie scenariusza prognozowania (Tutorial Intermediate Data Mining) oraz Time Series Prediction DMX Tutorial.
Note
Możesz uzyskać inne efekty ze swojego modelu; Wyniki poniższych przykładów przedstawiono jedynie w celu zilustrowania formatu wyników.
Przykład 1: Przewidywanie liczby przekrojów czasowych
Poniższy przykład wykorzystuje funkcję PredictTimeSeries do zwracania prognozy dla kolejnych trzech kroków czasowych i ogranicza wyniki do serii M200 w regionach Europy i Pacyfiku. W tym konkretnym modelu atrybutem przewidywalnym jest Quantity, więc musisz użyć [Quantity] jako pierwszego argumentu do funkcji PredictTimeSeries.
SELECT FLATTENED
[Forecasting].[Model Region],
PredictTimeSeries([Forecasting].[Quantity],3)AS t
FROM
[Forecasting]
WHERE [Model Region] = 'M200 Europe'
OR [Model Region] = 'M200 Pacific'
Oczekiwane wyniki:
| Region modelowy | t.$TIME | t. Ilość |
|---|---|---|
| M200 Europa | 25.07.2008 00:00:00 | 121 |
| M200 Europa | 25.08.2008 00:00:00 | 142 |
| M200 Europa | 25.09.2008 00:00 | 152 |
| M200 Pacyfik | 25.07.2008 00:00:00 | 46 |
| M200 Pacyfik | 25.08.2008 00:00:00 | 44 |
| M200 Pacyfik | 25.09.2008 00:00 | 42 |
W tym przykładzie słowo kluczowe FLATTENED zostało użyte, aby ułatwić odczytanie wyników. Jeśli nie użyjesz słowa kluczowego FLATTENED, lecz zamiast tego zwrócisz hierarchiczny zestaw wierszy, to zapytanie zwraca dwie kolumny. Pierwsza kolumna zawiera wartość dla [ModelRegion], a druga kolumna zawiera zagnieżdżoną tabelę z dwiema kolumnami: $TIME, która pokazuje przewidywane przekłady czasowe, oraz Quantity, która zawiera przewidywane wartości.
Przykład 2: Dodawanie nowych danych i wykorzystanie REPLACE_MODEL_CASES
Załóżmy, że okazuje się, że dane były nieprawidłowe dla danego regionu i chcesz użyć wzorców w modelu, ale dostosować prognozy do nowych danych. Albo możesz odkryć, że inny region ma bardziej wiarygodne trendy i chcesz zastosować najbardziej wiarygodny model do danych z innego regionu.
W takich sytuacjach możesz użyć parametru REPLACE_MODEL_CASES i określić nowy zestaw danych jako dane historyczne. Dzięki temu prognozy będą oparte na wzorcach w określonym modelu, ale będą kontynuowane płynnie od końca nowych punktów danych. Pełny przegląd tego scenariusza można znaleźć w artykule Advanced Time Series Predictions (Intermediate Data Minmining Tutorial).
Poniższe zapytanie PREDICTION JOIN ilustruje składnię do zastępowania danych i tworzenia nowych przewidywań. Dla danych zastępczych przykład pobiera wartość kolumn Amount i Quantity i mnoży każdą przez dwa:
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]
Poniższe tabele porównują wyniki prognozowania.
Oryginalne prognozy:
| Region modelowy | DataRaportowania | Ilość |
|---|---|---|
| M200 Pacyfik | 25.07.2008 00:00:00 | 46 |
| M200 Pacyfik | 25.08.2008 00:00:00 | 44 |
| M200 Pacyfik | 25.09.2008 00:00 | 42 |
Zaktualizowane prognozy:
| Region modelowy | DataRaportowania | Ilość |
|---|---|---|
| M200 Pacyfik | 25.07.2008 00:00:00 | 91 |
| M200 Pacyfik | 25.08.2008 00:00:00 | 89 |
| M200 Pacyfik | 25.09.2008 00:00 | 84 |
Przykład 3: Dodawanie nowych danych i wykorzystanie EXTEND_MODEL_CASES
Przykład 3 ilustruje użycie opcji EXTEND_MODEL_CASES do dostarczania nowych danych, które są dodawane na koniec istniejącej serii danych. Zamiast zastępować istniejące punkty danych, nowe dane są dodawane do modelu.
W poniższym przykładzie nowe dane są dostępne w instrukcji SELECT, która następuje po NATURAL PREDICTION JOIN. Możesz dostarczyć wiele wierszy nowego wejścia w tej składni, ale każdy nowy wiersz musi mieć unikalny znacznik czasowy:
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')
Ponieważ zapytanie korzysta z opcji EXTEND_MODEL_CASES , Analysis Services wykonuje następujące działania dla swoich prognoz:
Zwiększa całkowity rozmiar przypadków treningowych, dodając do modelu dwa nowe miesiące danych.
Zaczyna się przewidywania na końcu poprzednich danych przypadków. Dlatego pierwsze dwie prognozy reprezentują nowe, rzeczywiste dane sprzedażowe, które właśnie dodałeś do modelu.
Zwraca nowe prognozy dla pozostałych trzech przekładów czasowych opartych na nowo rozszerzonym modelu.
Poniższa tabela przedstawia wyniki zapytania z Przykładu 2. Zwróć uwagę, że pierwsze dwie wartości zwrócone dla M200 Europe są dokładnie takie same jak nowe, które podałeś przez Ciebie. Takie zachowanie jest zamierzone; Jeśli chcesz rozpocząć przewidywania po zakończeniu nowych danych, musisz określić krok czasowy na początku i zakończenie.
Zauważ też, że nie dostarczyłeś nowych danych dla regionu Pacyfiku. Dlatego Usługi Analizy zwracają nowe prognozy dla wszystkich pięciu przekładów czasowych.
Ilość: M200 Europe. EXTEND_MODEL_CASES:
| $TIME | Ilość |
|---|---|
| 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 |
Ilość: M200 Pacific. EXTEND_MODEL_CASES:
| $TIME | Ilość |
|---|---|
| 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 |
Przykład 4: Zwracanie statystyk w prognozie szeregu czasowego
Funkcja PredictTimeSeries nie obsługuje INCLUDE_STATISTICS jako parametru. Jednak następujące zapytanie może być użyte do zwrócenia statystyk predykcyjnych dla zapytania o szeregi czasowej. To podejście można również stosować w modelach z zagnieżdżonymi kolumnami tabeli.
W tym konkretnym modelu atrybutem przewidywalnym jest Quantity, więc musisz użyć [Quantity] jako pierwszego argumentu do funkcji PredictTimeSeries. Jeśli Twój model używa innej przewidywalnej cechy, możesz zastąpić inną nazwą kolumny.
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'
Przykładowe wyniki:
| Region modelowy | t.$TIME | t.PREDICTION | t.WARIANCJA | t.STDEV |
|---|---|---|---|---|
| M200 Europa | 25.07.2008 00:00:00 | 121 | 11.6050581415597 | 3.40661975300439 |
| M200 Europa | 25.08.2008 00:00:00 | 142 | 10.678201866621 | 3.26775180615374 |
| M200 Europa | 25.09.2008 00:00 | 152 | 9.86897842568614 | 3.14149302493037 |
| M200 Ameryka Północna | 25.07.2008 00:00:00 | 163 | 1.20434529288162 | 1.20434529288162 |
| M200 Ameryka Północna | 25.08.2008 00:00:00 | 178 | 1.65031343900634 | 1.65031343900634 |
| M200 Ameryka Północna | 25.09.2008 00:00 | 156 | 1.68969399185442 | 1.68969399185442 |
Note
W tym przykładzie użyto słowa kluczowego FLATTENED, aby ułatwić przedstawienie wyników w tabeli; jednak jeśli Twój dostawca obsługuje hierarchiczne wiersze, możesz pominąć słowo kluczowe FLATTENED. Jeśli pominiesz słowo kluczowe FLATTENED, zapytanie zwraca dwie kolumny: pierwsza kolumna zawiera wartość identyfikującą serię [Model Region] danych, a druga kolumna zawiera zagnieżdżoną tabelę statystyk.