Freigeben über


PredictTimeSeries (DMX)

Gibt vorhergesagte Zukunftswerte für Zeitreihendaten zurück. Zeitreihendaten sind kontinuierlich und können in einer geschachtelten Tabelle oder in einer Falltabelle gespeichert werden. Die PredictTimeSeries-Funktion gibt immer eine geschachtelte Tabelle zurück.

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>

Argumente

  • <table column reference>, <scalar column referenc>
    Gibt den Namen der vorherzusagenden Spalte an. Die Spalte kann entweder Skalar- oder Tabellendaten enthalten.

  • n
    Gibt die Anzahl der nächsten vorherzusagenden Schritte an. Wenn für n kein Wert angegeben ist, lautet der Standardwert 1.

    n darf nicht 0 sein. Die Funktion gibt einen Fehler zurück, wenn Sie nicht wenigstens eine Vorhersage machen.

  • n-start, n-end
    Gibt einen Bereich von Zeitreihenschritten an.

    n-start muss eine ganze Zahl sein und darf nicht 0 sein.

    n-end muss eine ganze Zahl größer als n-start sein.

  • <source query>
    Definiert die externen Daten, die für Vorhersagen verwendet werden.

  • REPLACE_MODEL_CASES | EXTEND_MODEL_CASES
    Gibt an, wie neue Daten behandelt werden.

    REPLACE_MODEL_CASES gibt an, dass die Datenpunkte im Modell durch neue Daten ersetzt werden sollen. Die Vorhersagen basieren jedoch auf den Mustern im vorhandenen Miningmodell.

    EXTEND_MODEL_CASES gibt an, dass die neuen Daten dem ursprünglichen Trainingsdataset hinzugefügt werden sollen. Zukünftige Vorhersagen werden für das zusammengesetzte Dataset erst erstellt, wenn die neuen Daten verarbeitet wurden.

    Diese Argumente können nur verwendet werden, wenn neue Daten mit einer PREDICTION JOIN-Anweisung hinzugefügt werden. Wenn Sie eine PREDICTION JOIN-Abfrage verwenden und kein Argument angeben, ist der Standardwert EXTEND_MODEL_CASES.

Rückgabetyp

A <table expression>.

Hinweise

Der Microsoft Time Series-Algorithmus unterstützt keine Vergangenheitsvorhersage, wenn Sie die PREDICTION JOIN-Anweisung zum Hinzufügen neuer Daten verwenden.

In einer PREDICTION JOIN-Anweisung beginnt die Vorhersage stets mit dem Zeitschritt unmittelbar nach dem Ende der ursprünglichen Trainingsreihe. Dies gilt auch dann, wenn Sie neue Daten hinzufügen. Daher muss für den n-Parameter und den n-start-Parameter eine ganze Zahl größer 0 festgelegt sein.

HinweisHinweis

Die Länge der neuen Daten beeinflusst den Ausgangspunkt für die Vorhersage nicht. Wenn Sie daher neue Daten hinzufügen und außerdem neue Vorhersagen vornehmen möchten, stellen Sie sicher, dass Sie entweder den Ausgangspunkt für die Vorhersage auf einen Wert größer als die Länge der neuen Daten festlegen oder den Endpunkt der Vorhersage um die Länge der neuen Daten erweitern.

Beispiele

In den folgenden Beispielen wird veranschaulicht, wie Vorhersagen aufgrund eines vorhandenen Zeitreihenmodells getroffen werden:

  • Im ersten Beispiel wird gezeigt, wie eine festgelegte Anzahl von Vorhersagen auf der Grundlage des aktuellen Modells getroffen wird.

  • Das zweite Beispiel veranschaulicht die Verwendung des REPLACE_MODEL_CASES-Parameters zum Anwenden der Muster im angegebenen Modell auf ein neues Dataset.

  • Das dritte Beispiel zeigt, wie der EXTEND_MODEL_CASES-Parameter zum Aktualisieren eines Miningmodells mit neuen Daten verwendet wird.

Weitere Informationen zum Arbeiten mit Zeitreihenmodellen finden Sie im Data Mining-Lernprogramm, unter Lektion 2: Erstellen eines Forecasting-Szenarios (Data Mining-Lernprogramm für Fortgeschrittene) und DMX-Lernprogramm für Zeitreihenvorhersagen.

HinweisHinweis

Bei Verwendung Ihres Modells erhalten Sie möglicherweise andere Ergebnisse. Die Ergebnisse der unten angegebenen Beispiele sind lediglich zum Veranschaulichen des Ergebnisformats gedacht.

Beispiel 1: Vorhersagen einer Anzahl von Zeitscheiben

Im folgenden Beispiel wird die PredictTimeSeries-Funktion verwendet, um eine Vorhersage für die nächsten drei Zeitschritte zurückzugeben, und die Ergebnisse werden auf die Reihe M200 in den Regionen Europa und Pazifik beschränkt. In diesem speziellen Modell ist Quantity das vorhersagbare Attribut, daher Sie müssen [Quantity] als erstes Argument für die PredictTimeSeries-Funktion verwenden.

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

Erwartete Ergebnisse:

Model Region

t.$TIME

t.Quantity

M200 Europe

7/25/2004 12:00:00 AM

121

M200 Europe

8/25/2004 12:00:00 AM

142

M200 Europe

9/25/2004 12:00:00 AM

152

M200 Pacific

7/25/2004 12:00:00 AM

46

M200 Pacific

8/25/2004 12:00:00 AM

44

M200 Pacific

9/25/2004 12:00:00 AM

42

In diesem Beispiel wurde das FLATTENED-Schlüsselwort verwendet, um die Ergebnisse übersichtlicher wiederzugeben. Wenn Sie das FLATTENED-Schlüsselwort nicht verwenden und stattdessen ein hierarchisches Rowset zurückgeben, gibt diese Abfrage zwei Spalten zurück. Die erste Spalte enthält den Wert für [Model Region], die zweite Spalte enthält eine geschachtelte Tabelle mit zwei Spalten: $TIME, die die vorhergesagten Zeitscheiben enthält, und Quantity, die die vorhergesagten Werte enthält.

Beispiel 2: Hinzufügen von neuen Daten und Verwenden von REPLACE_MODEL_CASES

Angenommen, Sie stellen fest, dass die Daten für eine bestimmte Region fehlerhaft sind, und Sie möchten die Muster im Modell verwenden, jedoch nur, um die Vorhersagen an die neuen Daten anzupassen. Möglicherweise stellen Sie auch fest, dass in einer anderen Region zuverlässigere Trends vorliegen, und Sie möchten das zuverlässigste Modell auf Daten einer anderen Region anwenden.

In solchen Szenarios können Sie den REPLACE_MODEL_CASES-Parameter verwenden und ein neues Dataset als Vergangenheitsdaten angeben. Bei dieser Vorgehensweise beruhen die Projektionen auf den Mustern im angegebenen Modell, diese werden jedoch ab dem Ende der neuen Datenpunkte glatt fortgeführt. Eine vollständige exemplarische Vorgehensweise dieses Szenarios finden Sie unter Hinzufügen eines aggregierten Forecasting-Modells (Data Mining-Lernprogramm für Fortgeschrittene).

Die folgende PREDICTION JOIN-Abfrage veranschaulicht die Syntax zum Ersetzen von Daten und Erstellen neuer Vorhersagen. Für die Ersetzungsdaten werden im Beispiel die Werte der Spalten Amount und Quantity abgerufen und jeweils mit 2 multipliziert:

SELECT [Forecasting].[Model Region],
    PredictTimeSeries([Forecasting].[Quantity], 3, REPLACE_MODEL_CASES) 
FROM
    [Forecasting]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW2008],
    '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]

In der folgenden Tabelle werden die Ergebnisse der Vorhersage verglichen.

Ursprüngliche Vorhersagen

Aktualisierte Vorhersagen

M200 Pacific7/25/2004 12:00:00 AM46
M200 Pacific8/25/2004 12:00:00 AM44
M200 Pacific9/25/2004 12:00:00 AM42
M200 Pacific7/25/2004 12:00:00 AM91
M200 Pacific8/25/2004 12:00:00 AM89
M200 Pacific9/25/2004 12:00:00 AM84

Beispiel 3: Hinzufügen von neuen Daten und Verwenden von EXTEND_MODEL_CASES

In Beispiel 3 wird die Verwendung der EXTEND_MODEL_CASES-Option zum Bereitstellen neuer Daten veranschaulicht, die dann am Ende einer vorhandenen Datenreihe hinzugefügt werden. Die vorhandenen Datenpunkte werden nicht ersetzt, stattdessen werden die neuen Daten dem Modell hinzugefügt.

Im folgenden Beispiel werden die neuen Daten in der SELECT-Anweisung bereitgestellt, die NATURAL PREDICTION JOIN folgt. Mit dieser Syntax können Sie mehrere neue Eingabezeilen bereitstellen, jedoch muss jede neue Zeile einen eindeutigen Zeitstempel aufweisen:

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')

Da für die Abfrage die EXTEND_MODEL_CASES-Option verwendet wird, führt Analysis Services für die Vorhersagen folgende Aktionen aus:

  • Erhöht die Gesamtgröße der Trainingsfälle, indem dem Modell die beiden neuen Datenmonate hinzugefügt werden.

  • Startet die Vorhersagen am Ende der vorherigen Falldaten. Daher stellen die ersten beiden Vorhersagen die tatsächlichen neuen Verkaufsdaten dar, die Sie soeben dem Modell hinzugefügt haben.

  • Gibt neue Vorhersagen für die verbleibenden drei Zeitscheiben auf der Grundlage des neu erweiterten Modells zurück.

Die folgende Tabelle führt die Abfrageergebnisse von Beispiel 2 auf. Beachten Sie, dass die ersten beiden für M200 Europe zurückgegebenen Werte mit den von Ihnen angegebenen neuen Werten genau identisch sind. Dieses Verhalten ist beabsichtigt: Wenn Sie Vorhersagen nach dem Ende der neuen Daten starten möchten, müssen Sie einen Start- und einen Endzeitschritt angeben. Ein Beispiel dazu finden Sie unter Lektion 5: Erweitern des Zeitreihenmodells.

Beachten Sie auch, dass Sie keine neuen Daten für die Pazifikregion angegeben haben. Deshalb gibt Analysis Services neue Vorhersagen für alle fünf Zeitscheiben zurück.

Quantity

EXTEND_MODEL_CASES

M200 Europe

$TIMEQuantity
7/25/2004 0:0010
8/25/2004 0:0015
9/25/2004 0:0072
10/25/2004 0:0069
11/25/2004 0:0068

M200 Pacific

$TIMEQuantity
7/25/2004 0:0046
8/25/2004 0:0044
9/25/2004 0:0042
10/25/2004 0:0042
11/25/2004 0:0038

Beispiel 4: Zurückgeben der Statistik in einer Zeitreihenvorhersage

Die PredictTimeSeries-Funktion unterstützt INCLUDE_STATISTICS nicht als Parameter. Mit der folgenden Abfrage kann jedoch die Vorhersagestatistik für eine Zeitreihenabfrage zurückgegeben werden. Diese Methode kann auch mit Modellen verwendet werden, in denen geschachtelte Tabellenspalten enthalten sind.

In diesem speziellen Modell ist Quantity das vorhersagbare Attribut, daher Sie müssen [Quantity] als erstes Argument für die PredictTimeSeries-Funktion verwenden. Wenn Ihr Modell ein anderes vorhersagbares Attribut verwendet, können Sie den Spaltennamen durch einen anderen ersetzen.

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'

Beispielergebnisse:

Model Region

t.$TIME

t.PREDICTION

t.VARIANCE

t.STDEV

M200 Europe

7/25/2004 12:00:00 AM

121

11.6050581415597

3.40661975300439

M200 Europe

8/25/2004 12:00:00 AM

142

10.678201866621

3.26775180615374

M200 Europe

9/25/2004 12:00:00 AM

152

9.86897842568614

3.14149302493037

M200 North America

7/25/2004 12:00:00 AM

163

1.20434529288162

1.20434529288162

M200 North America

8/25/2004 12:00:00 AM

178

1.65031343900634

1.65031343900634

M200 North America

9/25/2004 12:00:00 AM

156

1.68969399185442

1.68969399185442

HinweisHinweis

In diesem Beispiel wurde das FLATTENED-Schlüsselwort verwendet, um die Ergebnisse in der Tabelle übersichtlicher darzustellen. Wenn Ihr Anbieter jedoch hierarchische Rowsets unterstützt, können Sie das FLATTENED-Schlüsselwort auslassen. Wenn Sie das Schlüsselwort FLATTENED auslassen, gibt die Abfrage zwei Spalten zurück. Die erste Spalte enthält den Wert, der die [Model Region]-Datenreihen angibt, die zweite Spalte enthält die geschachtelte Spalte der Statistiken.