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 verarbeitet werden.

    REPLACE_MODEL_CASES gibt an, dass die Datenpunkte im Modell durch neue Daten ersetzt werden sollen. 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 erst nach Verwendung der neuen Dateien basierend auf dem zusammengesetzten Dataset getroffen.

    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, lautet der Standardwert EXTEND_MODEL_CASES.

Rückgabetyp

Ein <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 Grundlage des aktuellen Modells getroffen wird.

  • Im zweiten Beispiel wird gezeigt, wie Sie mit dem REPLACE_MODEL_CASES-Parameter die Muster im angegebenen Modell auf einen neuen Satz Daten anwenden.

  • Im dritten Beispiel wird gezeigt, wie Sie mit dem EXTEND_MODEL_CASES-Parameter ein Miningmodell mit neuen Daten aktualisieren.

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

HinweisHinweis

Ihr Modell liefert ggf. andere Ergebnisse. Die Ergebnisse der nachfolgenden Beispiele dienen lediglich zum Veranschaulichen des Ergebnisformats.

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. Die Ergebnisse werden auf die Reihe M200 in den Regionen Europa und Pazifik beschränkt. In diesem speziellen Modell wird als vorhersagbares Attribut Quantity verwendet. Sie müssen daher [Quantity] als erstes Argument der PredictTimeSeries-Funktion angeben.

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/2008 12:00:00 AM

121

M200 Europe

8/25/2008 12:00:00 AM

142

M200 Europe

9/25/2008 12:00:00 AM

152

M200 Pacific

7/25/2008 12:00:00 AM

46

M200 Pacific

8/25/2008 12:00:00 AM

44

M200 Pacific

9/25/2008 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 [ModelRegion] und die zweite Spalte enthält eine geschachtelte Tabelle mit zwei Spalten: $TIME für die vorhergesagten Zeitscheiben und Quantity für die vorhergesagten Werte.

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 falsch waren. Sie möchten aber die Muster im Modell verwenden und die Vorhersagen entsprechend den neuen Daten anpassen. Oder Sie stellen fest, dass eine andere Region zuverlässigere Trends liefert, und möchten das zuverlässigste Modell auf Daten aus einer anderen Region anwenden.

In solchen Szenarien können Sie den REPLACE_MODEL_CASES-Parameter verwenden und einen neuen Satz Daten angeben, der als Vergangenheitsdaten verwendet werden soll. Auf diese Weise basieren die Projektionen auf den Mustern im angegebenen Modell, werden jedoch nahtlos am Ende der neuen Datenpunkte fortgesetzt. 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 Treffen neuer Vorhersagen. Im Beispiel wird für die Ersetzungsdaten der Wert der Spalten Amount und Quantity abgerufen und jeweils mit zwei multipliziert:

SELECT [Forecasting].[Model Region],
    PredictTimeSeries([Forecasting].[Quantity], 3, REPLACE_MODEL_CASES) 
FROM
    [Forecasting]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW2008R2],
    '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/2008 12:00:00 AM46
M200 Pacific8/25/2008 12:00:00 AM44
M200 Pacific9/25/2008 12:00:00 AM42
M200 Pacific7/25/2008 12:00:00 AM91
M200 Pacific8/25/2008 12:00:00 AM89
M200 Pacific9/25/2008 12:00:00 AM84

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

In Beispiel 3 wird veranschaulicht, wie Sie mit der EXTEND_MODEL_CASES-Option neue Daten bereitstellen, die am Ende einer vorhandenen Datenreihe hinzugefügt werden. Statt die vorhandenen Datenpunkte zu ersetzen, werden die neuen Daten dem Modell hinzugefügt.

Im folgenden Beispiel werden die neuen Daten in der SELECT-Anweisung bereitgestellt, die auf NATURAL PREDICTION JOIN folgt. Sie können mit dieser Syntax mehrere Zeilen mit neuen Eingaben bereitstellen, jede neue Zeile muss jedoch 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, ergreift Analysis Services für die Vorhersagen für folgende Maßnahmen:

  • Die Gesamtgröße der Trainingsfälle wird erhöht, indem die beiden neuen Datenmonate zum Modell hinzugefügt werden.

  • Am Ende der vorherigen Falldaten werden die Vorhersagen gestartet. Daher stellen die ersten zwei Vorhersagen die neuen tatsächlichen Umsatzdaten dar, die Sie soeben zum Modell hinzugefügt haben.

  • Es werden neue Vorhersagen für die verbleibenden drei Zeitscheiben auf Grundlage des neu erweiterten Modells zurückgegeben.

Die folgende Tabelle führt die Abfrageergebnisse von Beispiel 2 auf. Beachten Sie, dass die ersten zwei für M200 Europe zurückgegebenen Werte exakt mit den neuen Werten übereinstimmen, die Sie angegeben haben. Dieses Verhalten ist entwurfsbedingt. Wenn Sie die Vorsagen erst nach dem Ende der neuen Daten starten möchten, müssen Sie einen Anfangs- und Endzeitschritt angeben. Ein Beispiel hierfür finden Sie in Lektion 5: Erweitern des Zeitreihenmodells.

Beachten Sie außerdem, dass für die Region Pazifik keine neuen Daten angegeben wurden. Deshalb gibt Analysis Services neue Vorhersagen für alle fünf Zeitscheiben zurück.

Quantity

EXTEND_MODEL_CASES

M200 Europe

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

M200 Pacific

$TIMEQuantity
7/25/2008 0:0046
8/25/2008 0:0044
9/25/2008 0:0042
10/25/2008 0:0042
11/25/2008 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 wird als vorhersagbares Attribut Quantity verwendet. Sie müssen daher [Quantity] als erstes Argument der PredictTimeSeries-Funktion angeben. 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/2008 12:00:00 AM

121

11.6050581415597

3.40661975300439

M200 Europe

8/25/2008 12:00:00 AM

142

10.678201866621

3.26775180615374

M200 Europe

9/25/2008 12:00:00 AM

152

9.86897842568614

3.14149302493037

M200 North America

7/25/2008 12:00:00 AM

163

1.20434529288162

1.20434529288162

M200 North America

8/25/2008 12:00:00 AM

178

1.65031343900634

1.65031343900634

M200 North America

9/25/2008 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. Bei Auslassung des FLATTENED-Schlüsselworts gibt die Abfrage zwei Spalten zurück. Die erste Spalte enthält den Wert, der die [Model Region]-Datenreihen angibt, und die zweite Spalte enthält die geschachtelte Tabelle mit der Statistik.