Abfragebeispiel Zeitreihenmodell

Gilt für: SQL Server 2019 und früheren Analysis Services Azure Analysis Services Fabric/Power BI Premium

Wichtig

Data Mining wurde in SQL Server 2017 Analysis Services als veraltet eingestuft und wurde jetzt in SQL Server 2022 Analysis Services eingestellt. Die Dokumentation wird für veraltete und eingestellte Features nicht aktualisiert. Weitere Informationen finden Sie unter Abwärtskompatibilität von Analysis Services.

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

Grundlegendes zum Ersetzen und Erweitern von Zeitreihendaten

Treffen von Vorhersagen mit EXTEND_MODEL_CASES

Treffen von Vorhersagen mit REPLACE_MODEL_CASES

Ersetzen von fehlenden Werten in Zeitreihenmodellen

Abrufen von Informationen zu einem 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.

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.

Hinweis

Die Ergebnisse wurden für bessere Lesbarkeit hier abgeschnitten.

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 aus der geschachtelten NODE_DISTRIBUTION-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 zum Interpretieren dieser Informationen finden Sie unter Miningmodellinhalt für Zeitreihenmodelle (Analysis Services – Data Mining).

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 zur Interpretation der Informationen in der Formel finden Sie unter Miningmodellinhalt für Zeitreihenmodelle (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.

Hinweis

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 zum Interpretieren dieser Informationen finden Sie unter Miningmodellinhalt für Zeitreihenmodelle (Analysis Services – Data Mining).

Erstellen von Vorhersagen für ein Zeitreihenmodell

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

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

  • Bereitstellen von Daten in einzelnen Slices mit einer SINGLETON-Vorhersageabfrage Informationen zum Erstellen einer Singleton-Vorhersageabfrage finden Sie unter Data Mining-Abfragetools.

Grundlegendes zum Verhalten von Vorgängen zum Ersetzen und Erweitern

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

  • Erweitern: Wenn Sie eine Datenreihe erweitern, fügt SQL Server Analysis Services die neuen Daten am Ende der vorhandenen Trainingsdaten hinzu. Die Anzahl der Trainingsfälle wird ebenfalls erhöht.

    Das Erweitern der Modellfälle ist sinnvoll für das kontinuierliche Aktualisieren des Modells mit neuen Daten. Wenn z. B. der Trainingssatz im Zeitverlauf zunehmen soll, können Sie einfach das Modell erweitern.

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

  • Ersetzen: Wenn Sie die Daten in der Datenreihe ersetzen, behält SQL Server Analysis Services das trainierte Modell bei, verwendet jedoch die neuen Datenwerte, um einige oder alle vorhandenen Trainingsfälle zu ersetzen. 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 einen PREDICTION JOIN für ein Zeitreihenmodell, geben die Quelle für die neuen Daten an und verwenden das REPLACE_MODEL_CASES -Argument.

Hinweis

Wenn Sie neue Daten hinzufügen, sind keine Vergangenheitsvorhersagen möglich.

Vorhersagen beginnen unabhängig davon, ob Sie die Trainingsdaten erweitern oder ersetzen, immer mit dem Zeitstempel am Ende des ursprünglichen Trainingssatzes. Wenn die neuen Daten also 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, und Sie erhalten keine neuen Vorhersagen.

Wenn Sie neue Vorhersagen für Zeiträume benötigen, die nicht mit den neuen Daten überlappen, müssen die Vorhersagen entweder bei Zeitscheibe n+1 starten, 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).

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 SQL Server Analysis Services die tatsächlichen neuen Datenpunkte zurück, anstatt eine Vorhersage zu treffen, bis alle neuen Datenpunkte verbraucht sind. Anschließend trifft SQL Server Analysis Services Vorhersagen basierend auf der zusammengesetzten Datenreihe.

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_CASESverwenden.

    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.

Treffen von Vorhersagen mit REPLACE_MODEL_CASES

Wenn Sie die Fälle in einem Modell ersetzen, bleibt die Größe des Modells gleich, aber SQL Server Analysis Services ersetzt 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. Wenn Sie dies tun, behält SQL Server Analysis Services die vom regionalmodell abgeleiteten Muster bei, ersetzt jedoch die vorhandenen Trainingsfälle durch die Daten aus dem einzelnen Speicher. Die Vorhersagewerte sind so näher an den Trendlinien für das einzelne Geschäft.

Wenn Sie das Argument REPLACE_MODEL_CASES verwenden, fügt SQL Server Analysis Services kontinuierlich neue Fälle am Ende des Fallsatzes hinzu und löscht eine entsprechende Zahl vom Anfang des Fallsatzes. Wenn Sie mehr neue Daten hinzufügen, als im ursprünglichen Trainingssatz enthalten waren, verwirft SQL Server Analysis Services die frühesten 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. Anschließend fügen Sie 100 Zeilen neuer Daten hinzu. SQL Server Analysis Services löscht die ersten 100 Zeilen aus dem Trainingssatz und fügt die 100 Zeilen neuer Daten am Ende des Satzes für insgesamt 1000 Zeilen hinzu. Wenn Sie 1100 Zeilen mit neuen Daten hinzufügen, werden nur die letzten 1000 Zeilen verwendet.

Hier ist ein weiteres Beispiel angegeben. 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 einen PREDICTION JOIN für ein Zeitreihenmodell und verwenden Sie das Argument REPLACE_MODEL_CASE .

  • 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.

    Hinweis

    Im Gegensatz zu EXTEND_MODEL_CASESkö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.

    Hinweis

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

Ersetzen von fehlenden Werten in Zeitreihenmodellen

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 SQL Server Analysis Services die fehlenden Werte durch Vorhersagen, die auf dem ursprünglichen Modell basieren. Wenn Sie REPLACE_MODEL_CASES verwenden, ersetzt SQL Server Analysis Services die fehlenden Werte durch den Wert, den Sie im parameter MISSING_VALUE_SUBSTITUTION angeben.

Liste der Vorhersagefunktionen

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

Vorhersagefunktion Verbrauch
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 prüfen oder die Gleichung und andere Details abrufen 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 eine Zeitreihe zurück.

Sie können Auch Zeitreihenmodelle abfragen, indem Sie die allgemeine Vorhersagefunktion Predict (DMX) verwenden.

Eine Liste der Funktionen, die allen Microsoft-Algorithmen gemeinsam sind, finden Sie unter Allgemeine Vorhersagefunktionen (DMX). Die Syntax bestimmter Funktionen finden Sie in der Funktionsreferenz für Data Mining-Erweiterungen (DMX).

Weitere Informationen

Data Mining-Abfragen
Microsoft Time Series-Algorithmus
Microsoft Time Series Algorithm Technical Reference
Miningmodellinhalt von Zeitreihenmodellen (Analysis Services &ndash; Data Mining)