Abfragen eines Zeitreihenmodells (Analysis Services - Data Mining)

Beim Erstellen einer Abfrage für ein Data Mining-Modell können Sie entweder eine Inhaltsabfrage oder eine Vorhersageabfrage auswählen. Die Inhaltsabfrage liefert Details über die bei der Analyse ermittelten Muster. Die Vorhersageabfrage nimmt hingegen Vorhersagen für neue Daten anhand der im Modell befindlichen Muster vor. Eine Inhaltsabfrage für ein Zeitreihenmodell bietet möglicherweise zusätzliche Angaben zu den erkannten periodischen Strukturen, wohingegen eine Vorhersageabfrage Vorhersagen für die nächsten 5 bis 10 Zeitscheiben bietet. Mit einer Abfrage können Sie auch Metadaten zum Modell abrufen.

In diesem Abschnitt wird erläutert, wie diese beiden Abfragetypen für Modelle erstellt werden, die auf dem Microsoft Time Series-Algorithmus basieren.

  • Inhaltsabfragen

    Abrufen von Periodizitätshinweisen für das Modell

    Abrufen der Gleichung für ein ARIMA-Modell

    Abrufen der Gleichung für ein ARTxp-Modell

  • Vorhersageabfragen

    Treffen von Vorhersagen mit EXTEND_MODEL_CASES

    Treffen von Vorhersagen mit REPLACE_MODEL_CASES

    Arbeiten mit fehlenden Werten

Inhaltsabfragen für ein Zeitreihenmodell

Eine Modellinhaltsabfrage kann grundlegende Informationen zum Modell bereitstellen. Dazu gehören beispielsweise die Parameter, die beim Erstellen des Modells verwendet wurden, und die Uhrzeit der letzten Modellverarbeitung. Das folgende Beispiel veranschaulicht die Grundsyntax für die Abfrage des Modellinhalts anhand von Data Mining-Schemarowsets.

Zurück zum Anfang

Beispielabfrage 1: Abrufen von Periodizitätshinweisen für das Modell

Sie können die Periodizitäten abrufen, die innerhalb der Zeitreihe gefunden wurden, indem Sie eine Abfrage der ARIMA-Struktur oder der ARTxp-Struktur durchführen. Die Periodizitäten im vollständigen Modell stimmen jedoch möglicherweise nicht mit den Perioden überein, die Sie beim Erstellen des Modells als Hinweise festgelegt haben. Um die Hinweise, die beim Erstellen des Modells als Parameter bereitgestellt wurden, abzurufen, können Sie eine Abfrage für das Schemarowset des Miningmodells ausführen und dabei die folgende DMX-Anweisung verwenden:

SELECT MINING_PARAMETERS 
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = '<model name>'

Teilergebnisse:

MINING_PARAMETERS

COMPLEXITY_PENALTY=0.1,MINIMUM_SUPPORT=10,PERIODICITY_HINT={1,3},….

Der Standardperiodizitätshinweis ist {1} und wird in allen Modellen angezeigt. Dieses Beispielmodell wurde mit einem zusätzlichen Hinweis erstellt, der möglicherweise nicht im endgültigen Modell vorhanden ist.

HinweisHinweis

Die Ergebnisse wurden für bessere Lesbarkeit hier abgeschnitten.

Zurück zum Anfang

Beispielabfrage 2: Abrufen der Gleichung für ein ARIMA-Modell

Sie können die Gleichung für ein ARIMA-Modell abrufen, indem Sie eine Abfrage für einen Knoten in einer individuellen Struktur durchführen. Beachten Sie, dass jede Struktur in einem ARIMA-Modell eine andere Periodizität darstellt und dass, wenn es mehrere Datenreihen gibt, jede Datenreihe einen eigenen Satz an Periodizitätsstrukturen hat. Um die Gleichung für eine spezifische Datenreihe abzurufen, müssen Sie daher zuerst die Struktur identifizieren.

Beispielsweise sagt das TA-Präfix aus, dass der Knoten Teil einer ARIMA-Struktur ist, während das TS-Präfix auf eine ARTXP-Struktur hinweist. Eine Übersicht über die ARIMA-Stammstrukturen erhalten Sie durch Abfragen des Modellinhalts für Knoten mit dem NODE_TYPE-Wert 27. Den ARIMA-Stammknoten für eine bestimmte Datenreihe können Sie auch anhand des ATTRIBUTE_NAME-Werts ermitteln. Mit der folgenden Abfrage werden beispielsweise die ARIMA-Knoten gefunden, die die verkaufte Menge an R250-Modellen in Europa darstellen.

SELECT NODE_UNIQUE_NAME
FROM Forecasting.CONTENT
WHERE ATTRIBUTE_NAME = 'R250 Europe: Quantity"
AND NODE_TYPE = 27

Mit dieser Knoten-ID können Sie Details über die ARIMA-Formel für die Struktur abrufen. Die folgende DMX-Anweisung wird verwendet, um die Kurzform der ARIMA-Formel für die Datenreihe abzurufen. Sie ruft auch das konstante Glied, NODE_DISTRIBUTION, aus der geschachtelten Tabelle ab. In diesem Beispiel wird die Formel durch Verweisen auf die eindeutige Knoten-ID TA00000007 ermittelt. Möglicherweise müssen Sie jedoch eine andere Knoten-ID verwenden, und die Ergebnisse weichen geringfügig vom Modell ab.

SELECT FLATTENED NODE_CAPTION as [Short equation], 
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE 
FROM NODE_DISTRIBUTION) as t
FROM Forecasting.CONTENT
WHERE NODE_NAME = 'TA00000007'

Beispielergebnisse:

Kurze Gleichung

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

ARIMA (2,0,7)x(1,0,2)(12)

R250 Europe:Quantity(Intercept)

15.24….

ARIMA (2,0,7)x(1,0,2)(12)

R250 Europe:Quantity(Periodicity)

1

ARIMA (2,0,7)x(1,0,2)(12)

R250 Europe:Quantity(Periodicity)

12

Weitere Informationen zur Interpretation dieser Informationen finden Sie unter Miningmodellinhalt von Zeitreihenmodellen (Analysis Services - Data Mining).

Zurück zum Anfang

Beispielabfrage 3: Abrufen der Gleichung für ein ARTxp-Modell

Bei einem ARTxp-Modell werden auf jeder Ebene der Struktur andere Informationen gespeichert. Weitere Informationen zur Struktur eines ARTxp-Modells und Angaben dazu, wie Sie die Informationen in der Gleichung interpretieren sollen, finden Sie unter Miningmodellinhalt von Zeitreihenmodellen (Analysis Services - Data Mining).

Die folgende DMX-Anweisung ruft Teilinformationen für eine ARTxp-Struktur ab, die die verkaufte Menge an R250-Modellen in Europa darstellt.

HinweisHinweis

Der Name der verschachtelten Tabellenspalte VARIANCE muss in Klammern eingeschlossen werden, um ihn von dem reservierten Schlüsselwort mit dem gleichen Namen unterscheiden zu können. Die geschachtelten Tabellenspalten PROBABILITY und SUPPORT sind nicht eingeschlossen, da sie in den meisten Fällen leer sind.

SELECT NODE_CAPTION as [Split information], 
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,
   [VARIANCE]
   FROM NODE_DISTRIBUTION) AS t
FROM Forecasting.CONTENT
WHERE NODE_ATTRIBUTE_NAME = 'R250 Europe:Quantity'
AND NODE_TYPE = 15

Weitere Informationen zur Interpretation dieser Informationen finden Sie unter Miningmodellinhalt von Zeitreihenmodellen (Analysis Services - Data Mining).

Zurück zum Anfang

Vorhersageabfragen für ein Zeitreihenmodell

In SQL Server 2008 Enterprise können Sie dem Zeitreihenmodell neue Daten hinzufügen und die neuen Daten automatisch in das Modell einbeziehen. Es gibt zwei Möglichkeiten, um einem Zeitreihen-Miningmodell neue Daten hinzuzufügen:

  • Verknüpfen Sie mit PREDICTION JOIN Daten in einer externen Quelle mit den Trainingsdaten.

  • Stellen Sie die Daten mit einer SINGLETON-Vorhersageabfrage in einzelnen Slices bereit. Informationen zum Erstellen einer SINGLETON-Vorhersageabfrage finden Sie unter Erstellen von DMX-Vorhersageabfragen.

Wenn Sie einem Zeitreihenmodell neue Daten hinzufügen, können Sie angeben, ob die Trainingsdaten erweitert oder ersetzt werden sollen:

  • Wenn Sie die Daten erweitern, fügt Analysis Services die neuen Daten am Ende der vorhandenen Trainingsdaten hinzu. Die Anzahl der Trainingsfälle wird erhöht. Das Erweitern der Modellfälle ist sinnvoll für das kontinuierliche Aktualisieren des Modells mit neuen Daten.

    Zum Erweitern der Daten erstellen Sie PREDICTION JOIN für ein Zeitreihenmodell, geben die Quelle für die neuen Daten an und verwenden das EXTEND_MODEL_CASES-Argument.

  • Wenn Sie die Daten ersetzen, behält Analysis Services das trainierte Modell bei, verwendet jedoch die neuen Daten zum Ersetzen einiger oder aller Trainingsfälle. Die Größe der Trainingsdaten wird daher nicht geändert, die Fälle selbst werden jedoch kontinuierlich durch neuere Daten ersetzt. Wenn Sie genug neue Daten angeben, können Sie die Trainingsdaten durch eine vollkommen neue Reihe ersetzen.

    Das Ersetzen der Modellfälle ist sinnvoll, wenn Sie ein Modell mit einem Satz von Fällen trainieren und dieses Modell auf eine andere Datenreihe anwenden möchten.

    Zum Ersetzen der Daten erstellen Sie PREDICTION JOIN für ein Zeitreihenmodell, geben die Quelle für die neuen Daten an und verwenden das REPLACE_MODEL_CASES-Argument.

Wenn Sie neue Daten hinzufügen, sind keine Vergangenheitsvorhersagen möglich. Vorhersagen beginnen außerdem unabhängig davon, ob Sie die Trainingsdaten erweitern oder ersetzen, immer mit dem Zeitstempel am Ende des ursprünglichen Trainingssatzes. Wenn die neuen Daten n Zeitscheiben enthalten und Sie Vorhersagen für die Zeitschritte 1 bis n anfordern, stimmen die Vorhersagen mit dem gleichen Zeitraum wie die neuen Daten überein. Wenn Sie neue Vorhersagen für Zeiträume benötigen, die nicht von den Daten abgedeckt werden, müssen die Vorhersagen bei Zeitscheibe n+1 nach der neuen Datenreihe beginnen, oder Sie müssen sicherstellen, dass Sie zusätzliche Zeitscheiben anfordern.

Nehmen Sie z. B. an, dass das vorhandene Modell Daten zu sechs Monaten umfasst. Sie möchten dieses Modell erweitern, indem Sie die Umsatzdaten der letzten drei Monate hinzufügen. Gleichzeitig möchten Sie eine Vorhersage für die nächsten drei Monate treffen. Damit beim Hinzufügen von neuen Daten nur die neuen Vorhersagen abgerufen werden, geben Sie als Startpunkt Zeitscheibe 4 und als Endpunkt Zeitscheibe 7 an. Sie könnten auch insgesamt sechs Vorhersagen anfordern, die Zeitscheiben für die ersten drei Vorhersagen würden sich jedoch mit den gerade hinzugefügten neuen Daten überschneiden.

Abfragebeispiele und weitere Informationen zur Syntax für die Verwendung von REPLACE_MODEL_CASES und EXTEND_MODEL_CASES finden Sie unter PredictTimeSeries (DMX).

Zurück zum Anfang

Treffen von Vorhersagen mit EXTEND_MODEL_CASES

Das Vorhersageverhalten unterscheidet sich abhängig davon, ob Sie die Modellfälle erweitern oder ersetzen. Wenn Sie ein Modell erweitern, werden die neuen Daten am Ende der Reihe angefügt, und die Größe des Trainingssatzes nimmt zu. Die für Vorhersageabfragen verwendeten Zeitscheiben beginnen jedoch immer am Ende der ursprünglichen Reihe. Wenn Sie also drei neue Datenpunkte hinzufügen und sechs Vorhersagen anfordern, überschneiden sich die ersten drei zurückgegebenen Vorhersagen mit den neuen Daten. In diesem Fall gibt Analysis Services die tatsächlichen neuen Datenpunkte zurück und trifft keine Vorhersage, bis alle neuen Datenpunkte verwendet wurden. Danach trifft Analysis Services Vorhersagen auf Grundlage der zusammengesetzten Reihe.

Durch dieses Verhalten können Sie neue Daten hinzufügen und dann im Vorhersagediagramm die tatsächlichen Zahlen anzeigen und keine Projektionen.

Wenn Sie drei neue Datenpunkte hinzufügen und drei neue Vorhersagen treffen möchten, gehen Sie beispielsweise wie folgt vor:

  • Erstellen Sie PREDICTION JOIN für ein Zeitreihenmodell, und geben Sie die Quelle für die neuen Daten für die drei Monate an.

  • Fordern Sie Vorhersagen für sechs Zeitscheiben an. Geben Sie hierzu 6 Zeitscheiben an, wobei der Startpunkt Zeitscheibe 1 und der Endpunkt Zeitscheibe 7 ist. Dies gilt nur für EXTEND_MODEL_CASES.

  • Damit nur neue Vorhersagen abgerufen werden, geben Sie als Startpunkt 4 und als Endpunkt 7 an.

  • Sie müssen das Argument EXTEND_MODEL_CASES verwenden.

    Für die ersten drei Zeitscheiben werden die tatsächlichen Umsatzzahlen zurückgegeben. Für die folgenden drei Zeitscheiben werden Vorhersagen auf Grundlage des erweiterten Modells zurückgegeben.

Zurück zum Anfang

Treffen von Vorhersagen mit REPLACE_MODEL_CASES

Wenn Sie die Fälle in einem Modell ersetzen, bleibt die Größe des Modells gleich, Analysis Services ersetzt jedoch die einzelnen Fälle im Modell. Dies ist für Kreuzvorhersagen und Szenarien hilfreich, in denen das Beibehalten einer einheitlichen Größe für das Trainingsdataset wichtig ist.

Ein Beispielfall ist, dass eines Ihrer Geschäfte nicht über ausreichende Umsatzdaten verfügt. Sie könnten ein allgemeines Modell erstellen, indem Sie die durchschnittlichen Umsätze für alle Geschäfte in einer bestimmten Region ermitteln und dann ein Modell trainieren. Damit Sie mit ausreichenden Umsatzdaten Vorhersagen für das Geschäft treffen können, erstellen Sie dann PREDICTION JOIN mit den neuen Umsatzdaten nur für dieses Geschäft. Analysis Services behält dabei die vom regionalen Model abgeleiteten Muster bei, ersetzt jedoch die vorhandenen Trainingsfälle durch die Daten des einzelnen Geschäfts. Die Vorhersagewerte sind so näher an den Trendlinien für das einzelne Geschäft.

Wenn Sie das REPLACE_MODEL_CASES-Argument verwenden, fügt Analysis Services kontinuierlich neue Fälle am Ende des Fallsatzes ein und löscht die entsprechende Anzahl am Anfang des Fallsatzes. Wenn Sie mehr neue Daten hinzufügen, als im ursprünglichen Trainingssatz vorhanden waren, verwirft Analysis Services die ältesten Daten. Wenn Sie genügende neue Werte angeben, können die Vorhersagen auf vollkommen neuen Daten basieren.

Angenommen, Sie haben das Modell mit einem Falldataset mit 1000 Zeilen trainiert. Dann fügen Sie 100 Zeilen mit neuen Daten hinzu. Analysis Services verwirft die ersten 100 Zeilen des Trainingssatzes und fügt die 100 Zeilen mit neuen Daten am Ende des Satzes ein, sodass insgesamt 1000 Zeilen vorhanden sind. Wenn Sie 1100 Zeilen mit neuen Daten hinzufügen, werden nur die letzten 1000 Zeilen verwendet.

Im Folgenden wird ein weiteres Beispiel beschrieben. Wenn Sie neue Daten für drei Monate hinzufügen und drei neue Vorhersagen treffen möchten, führen Sie die folgenden Aktionen aus:

  • Erstellen Sie PREDICTION JOIN für ein Zeitreihenmodell, und verwenden Sie das REPLACE_MODEL_CASE-Argument.

  • Geben Sie die Quelle der neuen Daten für drei Monate an. Diese Daten können aus einer vollkommen anderen Quelle als die ursprünglichen Trainingsdaten stammen.

  • Fordern Sie Vorhersagen für sechs Zeitscheiben an. Geben Sie hierzu 6 Zeitscheiben an, oder geben Sie als Startpunkt Zeitscheibe 1 und als Endpunkt Zeitscheibe 7 an.

    HinweisHinweis

    Im Gegensatz zu EXTEND_MODEL_CASES können Sie nicht die Werte zurückgeben, die Sie als Eingabedaten hinzugefügt haben. Alle sechs zurückgegebenen Werte sind Vorhersagen auf Grundlage des aktualisierten Modells, das sowohl alte als auch neue Daten enthält.

    HinweisHinweis

    Wenn Sie bei REPLACE_MODEL_CASES am Timestamp 1 beginnen, erhalten Sie neue Vorhersagen basierend auf den neuen Daten, die die alten Trainingsdaten ersetzen.

Abfragebeispiele und weitere Informationen zur Syntax für die Verwendung von REPLACE_MODEL_CASES und EXTEND_MODEL_CASES finden Sie unter PredictTimeSeries (DMX).

Zurück zum Anfang

Arbeiten mit fehlenden Werten

Wenn Sie einem Zeitreihenmodell mit einer PREDICTION JOIN-Anweisung neue Daten hinzufügen, darf das neue Dataset keine fehlenden Werte aufweisen. Wenn eine Reihe unvollständig ist, muss das Modell die fehlenden Werte einfügen. Dabei wird NULL, ein numerisches Mittel, ein bestimmtes numerisches Mittel oder ein Vorhersagewert verwendet. Wenn Sie EXTEND_MODEL_CASES angeben, ersetzt Analysis Services die fehlenden Werte durch Vorhersagen auf Grundlage des ursprünglichen Modells. Wenn Sie REPLACE_MODEL_CASES verwenden, ersetzt Analysis Services die fehlenden Werte durch den im MISSING_VALUE_SUBSTITUTION-Parameter angegebenen Wert.

Zurück zum Anfang

Liste der Vorhersagefunktionen

Alle Algorithmen von Microsoft unterstützen einen gemeinsamen Funktionssatz. Der Microsoft Time Series-Algorithmus unterstützt jedoch die zusätzlichen Funktionen, die in der folgenden Tabelle aufgeführt sind.

Lag (DMX)

Gibt eine Anzahl von Zeitscheiben zwischen dem Datum des aktuellen Falls und dem letzten Datum des Trainingssatzes zurück.

Diese Funktion dient in der Regel dazu, neuere Trainingsfälle zu ermitteln, sodass Sie detaillierte Daten über die Fälle abrufen können.

PredictNodeId (DMX)

Gibt die Knoten-ID für die angegebene vorhersagbare Spalte zurück.

Diese Funktion dient gewöhnlich zum Identifizieren des Knotens, der einen bestimmten vorhergesagten Wert generiert hat, sodass Sie die mit dem Knoten verknüpften Fälle, die Gleichung und andere Details prüfen können.

PredictStdev (DMX)

Gibt die Standardabweichung der Vorhersagen in der angegebenen vorhersagbaren Spalte zurück.

Diese Funktion ersetzt das INCLUDE_STATISTICS-Argument, das bei Zeitreihenmodellen nicht unterstützt wird.

PredictVariance (DMX)

Gibt die Varianz der Vorhersagen für die angegebene vorhersagbare Spalte zurück.

Diese Funktion ersetzt das INCLUDE_STATISTICS-Argument, das bei Zeitreihenmodellen nicht unterstützt wird.

PredictTimeSeries (DMX)

Gibt vorhergesagte Vergangenheits- oder Zukunftswerte für Zeitreihendaten zurück.

Sie können Zeitreihenmodelle auch mithilfe der allgemeinen Vorhersagefunktion Predict (DMX) abfragen.

Eine Liste der Funktionen, die bei allen Microsoft-Algorithmen gleich verwendet werden, finden Sie unter Zuordnen von Funktionen zu Abfragetypen (DMX). Die Syntax bestimmter Funktionen finden Sie unter Data Mining-Erweiterungen (DMX) - Funktionsreferenz.