Interrogation d'un modèle Time Series (Analysis Services - Exploration de données)

Lorsque vous créez une requête sur un modèle d'exploration de données, vous pouvez soit créer une requête de contenu, qui fournit des détails sur les modèles (ou séquences) découverts au cours de l'analyse, soit créer une requête de prédiction, qui utilise les séquences du modèle pour effectuer des prédictions pour les nouvelles données. Par exemple, une requête de contenu pour un modèle de série chronologique peut fournir des détails supplémentaires sur les structures périodiques détectées, tandis qu'une requête de prédiction peut vous donner des prédictions pour les 5 à 10 tranches de temps suivantes. Vous pouvez également extraire les métadonnées relatives au modèle en utilisant une requête.

Cette section explique comment créer les deux types de requêtes pour les modèles basés sur l'algorithme MTS (Microsoft Time Series).

  • Requêtes de contenu

    Récupération d'indications de périodicité pour le modèle

    Récupération de l'équation d'un modèle ARIMA

    Récupération de l'équation d'un modèle ARTxp

  • Requêtes de prédiction

    Exécution de prédictions avec EXTEND_MODEL_CASES

    Exécution de prédictions avec REPLACE_MODEL_CASES

    Manipulation de valeurs manquantes

Requêtes de contenu sur un modèle de série chronologique

Une requête de contenu de modèle peut fournir des informations de base sur le modèle, telles que les paramètres qui ont été utilisés lors de la création du modèle et l'heure du dernier traitement du modèle. L'exemple suivant illustre la syntaxe de base pour l'interrogation du contenu du modèle à l'aide des ensembles de lignes de schéma d'exploration de données.

Retour au début

Exemple de requête 1 : récupération d'indications de périodicité pour le modèle

Vous pouvez extraire les périodicités qui ont été détectées dans la série chronologique en interrogeant l'arbre ARIMA ou l'arbre ARTxp. Toutefois, les périodicités dans le modèle terminé peuvent ne pas être les mêmes que les périodes que vous avez spécifiées comme indications lors de la création du modèle. Pour extraire les indications qui ont été fournies comme paramètres lors de la création du modèle, vous pouvez interroger l'ensemble de lignes de schéma du contenu du modèle d'exploration de données en utilisant l'instruction DMX suivante :

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

Résultats partiels :

MINING_PARAMETERS

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

L'indication de périodicité par défaut, {1}, apparaît dans tous les modèles ; cet exemple de modèle a été créé avec une indication supplémentaire qui peut ne pas être présente dans le modèle final.

[!REMARQUE]

Pour une meilleure lisibilité, les résultats ont été tronqués ici.

Retour au début

Exemple de requête 2 : récupération de l'équation d'un modèle ARIMA

Vous pouvez récupérer l'équation d'un modèle ARIMA en interrogeant n'importe quel nœud d'un arbre individuel. N'oubliez pas que chaque arbre d'un modèle ARIMA représente une périodicité différente et, s'il y a plusieurs séries de données, chaque série de données aura son propre ensemble d'arbres de périodicités. Par conséquent, pour extraire l'équation correspondant à une série de données spécifique, vous devez tout d'abord identifier l'arbre.

Par exemple, le préfixe TA vous indique que le nœud appartient à un arbre ARIMA, alors que le préfixe TS est utilisé pour les arbres ARTXP. Vous pouvez rechercher tous les arbres racine ARIMA en interrogeant le contenu du modèle pour les nœuds ayant une valeur NODE_TYPE de 27. Vous pouvez également utiliser la valeur de ATTRIBUTE_NAME pour rechercher le nœud racine ARIMA pour une série de données particulière. Cet exemple de requête recherche les nœuds ARIMA qui représentent les quantités vendues du modèle R250 dans la région Europe.

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

À l'aide de cet ID de nœud, vous pouvez récupérer des informations sur l'équation ARIMA pour cet arbre. L'instruction DMX suivante extrait la forme abrégée de l'équation ARIMA pour la série de données. Elle extrait également l'ordonnée à l'origine de la table imbriquée, NODE_DISTRIBUTION. Dans cet exemple, l'équation s'obtient en référençant l'ID unique de nœud TA00000007. Cependant, vous devrez peut-être utiliser un autre ID de nœud et vous obtiendrez éventuellement des résultats légèrement différents de votre modèle.

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

Résultats de l'exemple :

Équation abrégée

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

Pour plus d'informations sur l'interprétation de ces informations, consultez Contenu du modèle d'exploration de données pour les modèles de séries chronologiques (Analysis Services - Exploration de données).

Retour au début

Exemple de requête 3 : récupération de l'équation d'un modèle ARTxp

Pour un modèle ARTxp, des informations différentes sont stockées à chaque niveau de l'arbre. Pour plus d'informations sur la structure d'un modèle ARTxp, et savoir comment interpréter les informations contenues dans l'équation, consultez Contenu du modèle d'exploration de données pour les modèles de séries chronologiques (Analysis Services - Exploration de données).

L'instruction DMX suivante extrait les informations de l'arbre ARTxp qui représente la quantité de ventes du modèle R250 en Europe.

[!REMARQUE]

Le nom de la colonne de la table imbriquée, VARIANCE, doit être placé entre parenthèses afin de le distinguer du mot clé réservé du même nom. Les colonnes de la table imbriquée, PROBABILITY et SUPPORT, ne sont pas incluses car elles sont vides dans la plupart des cas.

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

Pour plus d'informations sur l'interprétation de ces informations, consultez Contenu du modèle d'exploration de données pour les modèles de séries chronologiques (Analysis Services - Exploration de données).

Retour au début

Requêtes de prédiction sur un modèle de série chronologique

Dans SQL Server 2008 Enterprise, vous pouvez ajouter de nouvelles données à un modèle de série chronologique et les incorporer automatiquement au modèle. Vous ajoutez de nouvelles données à un modèle d'exploration de série chronologique de l'une des deux manières suivantes :

  • Utilisez une PREDICTION JOIN pour joindre des données d'une source externe aux données d'apprentissage.

  • Utilisez une requête singleton de prédiction pour fournir les données un secteur à la fois. Pour plus d'informations sur la création d'une requête singleton de prédiction, consultez Création de requêtes de prédiction DMX.

Lorsque vous ajoutez de nouvelles données à un modèle de série chronologique, vous pouvez spécifier s'il faut étendre ou remplacer les données d'apprentissage :

  • Si vous étendez les données, Analysis Services ajoute les nouvelles données à la fin des données d'apprentissage existantes. Le nombre de cas d'apprentissage augmente. L'extension des cas de modèle est utile pour mettre à jour continuellement le modèle avec de nouvelles données.

    Pour étendre les données, vous créez une PREDICTION JOIN sur un modèle de série chronologique, vous spécifiez la source des nouvelles données et vous utilisez l'argument EXTEND_MODEL_CASES.

  • Si vous remplacez les données, Analysis Services conserve le modèle appris, mais utilise les nouvelles données pour remplacer tout ou une partie des cas d'apprentissage existants. Par conséquent, la taille des données d'apprentissage ne change jamais, mais les cas eux-mêmes sont remplacés continuellement par des données plus récentes. Si vous fournissez suffisamment de nouvelles données, vous pouvez remplacer les données d'apprentissage par une série entièrement nouvelle.

    Le remplacement des cas de modèle est utile lorsque vous souhaitez former un modèle sur un ensemble de cas, puis appliquer ce modèle à une série de données différente.

    Pour remplacer les données, vous créez une PREDICTION JOIN sur un modèle de série chronologique, vous spécifiez la source des nouvelles données et vous utilisez l'argument REPLACE_MODEL_CASES.

Vous ne pouvez pas effectuer de prédictions historiques lorsque vous ajoutez de nouvelles données. De plus, les prédictions commencent toujours à l'horodatage qui termine le jeu d'apprentissages d'origine, que vous étendiez ou remplaciez les données d'apprentissage. Par conséquent, si vos nouvelles données contiennent n tranches de temps et que vous demandez des prédictions pour les étapes 1 à n, les prédictions coïncideront avec la même période que les nouvelles données. Pour obtenir de nouvelles prédictions pour des périodes non couvertes par vos données, vous devez commencer les prédictions à la tranche de temps n+1 après la nouvelle série de données ou vous assurer de demander des tranches de temps supplémentaires.

Par exemple, supposez que le modèle existant a des données pour six mois. Vous souhaitez étendre ce modèle en ajoutant les chiffres de vente des trois derniers mois. En même temps, vous souhaitez effectuer une prédiction concernant les trois prochains mois. Pour obtenir uniquement les nouvelles prédictions lorsque vous ajoutez les nouvelles données, spécifiez la tranche de temps 4 comme point de départ et la tranche de temps 7 comme point de terminaison. Vous pourriez également demander un total de six prédictions, mais les tranches de temps pour les trois premières prédictions et celles des nouvelles données ajoutées se chevaucheraient.

Pour obtenir des exemples de requêtes et des informations supplémentaires sur la syntaxe d'utilisation de REPLACE_MODEL_CASES et de EXTEND_MODEL_CASES, consultez PredictTimeSeries (DMX).

Retour au début

Exécution de prédictions avec EXTEND_MODEL_CASES

Le comportement de prédiction diffère selon que vous étendez ou remplacez les cas de modèles. Lorsque vous étendez un modèle, les nouvelles données sont jointes à la fin de la série et la taille du jeu d'apprentissage augmente. Toutefois, les tranches de temps utilisées pour les requêtes de prédiction commencent toujours à la fin de la série d'origine. Par conséquent, si vous ajoutez trois nouveaux points de données et que vous demandez six prédictions, les trois premières prédictions retournées et les nouvelles données se chevauchent. Dans ce cas, Analysis Services retourne les nouveaux points de données réels au lieu d'effectuer une prédiction, jusqu'à ce que tous les nouveaux points de données soient utilisés. Ensuite, Analysis Services effectue des prédictions sur la base de la série composite.

Ce comportement vous permet d'ajouter de nouvelles données, puis d'afficher vos chiffres de vente réels dans le graphique de prédiction, au lieu de voir des projections.

Par exemple, pour ajouter trois nouveaux points de données et effectuer trois nouvelles prédictions, vous procéderiez comme suit :

  • Créez une PREDICTION JOIN sur un modèle de série chronologique et spécifiez la source de trois mois de nouvelles données.

  • Demandez des prédictions pour six tranches de temps. Pour ce faire, spécifiez 6 tranches de temps, où le point de départ est la tranche de temps 1 et le point de terminaison est la tranche de temps 7. Cela est vrai uniquement pour EXTEND_MODEL_CASES.

  • Pour obtenir uniquement les nouvelles prédictions, vous spécifiez la tranche de temps 4 comme point de départ et la tranche de temps 7 comme point de terminaison.

  • Vous devez utiliser l'argument EXTEND_MODEL_CASES.

    Les chiffres de vente réels sont retournés pour les trois premières tranches de temps et des prédictions basées sur le modèle étendu sont retournées pour les trois tranches de temps suivantes.

Retour au début

Exécution de prédictions avec REPLACE_MODEL_CASES

Lorsque vous remplacez les cas dans un modèle, la taille du modèle reste identique mais Analysis Services remplace les cas individuels dans le modèle. Ceci est utile pour les prédictions croisées et les scénarios dans lesquels la maintenance d'une taille de jeu de données d'apprentissage cohérente est importante.

Par exemple, l'un de vos magasins a des données de ventes insuffisantes. Vous pourriez créer un modèle général en faisant la moyenne des ventes pour tous les magasins dans une région particulière et former ensuite un modèle. Ensuite, pour effectuer des prédictions pour le magasin dont les données de ventes sont insuffisantes, vous créez une PREDICTION JOIN sur les nouvelles données de ventes uniquement pour ce magasin. Dans ce cas, Analysis Services conserve les modèles dérivés du modèle régional, mais remplace les cas d'apprentissage existants par les données du magasin individuel. En conséquence, vos valeurs de prédiction seront plus proches des lignes de tendance pour le magasin individuel.

Lorsque vous utilisez l'argument REPLACE_MODEL_CASES, Analysis Services ajoute continuellement de nouveaux cas à la fin de l'ensemble de cas et supprime un nombre correspondant au début de l'ensemble de cas. Si vous ajoutez davantage de nouvelles données qu'il n'en existait dans le jeu d'apprentissages d'origine, Analysis Services ignore les données les plus anciennes. Si vous fournissez suffisamment de nouvelles valeurs, les prédictions peuvent être basées sur des données complètement nouvelles.

Par exemple, vous avez formé votre modèle sur un jeu de données de cas qui contenait 1000 lignes. Vous ajoutez alors 100 lignes de nouvelles données. Analysis Services supprime les 100 premières lignes du jeu d'apprentissage et ajoute les 100 lignes de nouvelles données à la fin du jeu pour un total de 1000 lignes. Si vous ajoutez 1100 lignes de nouvelles données, seules les 1000 lignes les plus récentes sont utilisées.

Voici un autre exemple. Pour ajouter trois mois de nouvelles données et effectuer trois nouvelles prédictions, vous procéderiez comme suit :

  • Créez une PREDICTION JOIN sur un modèle de série chronologique et utilisez l'argument REPLACE_MODEL_CASE.

  • Spécifiez la source de trois mois de nouvelles données. Ces données peuvent provenir d'une source complètement différente des données d'apprentissage d'origine.

  • Demandez des prédictions pour six tranches de temps. Pour cela, spécifiez 6 tranches de temps ou spécifiez que le point de départ est la tranche de temps 1 et le point de terminaison est la tranche de temps 7.

    [!REMARQUE]

    Contrairement à EXTEND_MODEL_CASES, vous ne pouvez pas retourner les mêmes valeurs que celles que vous avez ajoutées comme données d'entrée. Les six valeurs retournées sont des prédictions basées sur le modèle mis à jour, qui inclut à la fois les données anciennes et nouvelles.

    [!REMARQUE]

    Avec REPLACE_MODEL_CASES, commençant à la valeur timestamp 1, vous obtenez de nouvelles prédictions basées sur les nouvelles données, lesquelles remplacent les anciennes données d'apprentissage.

Pour obtenir des exemples de requêtes et des informations supplémentaires sur la syntaxe d'utilisation de REPLACE_MODEL_CASES et de EXTEND_MODEL_CASES, consultez PredictTimeSeries (DMX).

Retour au début

Manipulation de valeurs manquantes

Lorsque vous ajoutez de nouvelles données à un modèle de série chronologique en utilisant une instruction PREDICTION JOIN, le nouveau dataset ne peut pas avoir de valeurs manquantes. Si une série est incomplète, le modèle doit fournir les valeurs manquantes en utilisant une valeur Null, une moyenne numérique, une moyenne numérique spécifique ou une valeur prédite. Si vous spécifiez EXTEND_MODEL_CASES, Analysis Services remplace les valeurs manquantes par des prédictions basées sur le modèle d'origine. Si vous utilisez REPLACE_MODEL_CASES, Analysis Services remplace les valeurs manquantes par la valeur que vous spécifiez dans le paramètre MISSING_VALUE_SUBSTITUTION.

Retour au début

Liste des fonctions de prédiction

Tous les algorithmes Microsoft prennent en charge un ensemble commun de fonctions. Toutefois, l'algorithme MTS (Microsoft Time Series) prend en charge les fonctions supplémentaires, lesquelles sont décrites dans le tableau suivant.

Lag (DMX)

Retourne un nombre de tranches de temps entre la date du cas en cours et la dernière date du jeu d'apprentissage.

En règle générale, cette fonction est utilisée pour identifier les cas d'apprentissage récents afin de vous permettre de récupérer des données détaillées sur les cas.

PredictNodeId (DMX)

Retourne l'ID de nœud pour la colonne prévisible spécifiée.

En règle générale, cette fonction est utilisée pour identifier le nœud qui a généré une valeur prédite particulière afin que vous puissiez examiner les cas associés au nœud, l'équation et d'autres détails.

PredictStdev (DMX)

Retourne l'écart type des prédictions dans la colonne prévisible spécifiée.

Cette fonction remplace l'argument INCLUDE_STATISTICS, qui n'est pas pris en charge pour les modèles de séries chronologiques.

PredictVariance (DMX)

Retourne la variance des prédictions pour la colonne prévisible spécifiée.

Cette fonction remplace l'argument INCLUDE_STATISTICS, qui n'est pas pris en charge pour les modèles de séries chronologiques.

PredictTimeSeries (DMX)

Retourne des valeurs historiques ou futures prédites pour les données de séries chronologiques.

Vous pouvez également interroger des modèles de séries chronologiques en utilisant la fonction de prédiction générale, Predict (DMX).

Pour obtenir la liste des fonctions communes à tous les algorithmes Microsoft, consultez Mappage des fonctions sur les type de requêtes (DMX). Pour connaître la syntaxe de fonctions spécifiques, consultez Fonctions DMX (Data Mining Extensions).