Partager via


Références techniques relatives à l'algorithme MTS (Microsoft Time Series)

L'algorithme MTS (Microsoft Time Series) Microsoft inclut deux algorithmes séparés pour l'analyse de la série chronologique :

  • L'algorithme ARTXP, qui a été introduit dans SQL Server 2005, est optimisé pour la prédiction de la valeur probable suivante d'une série.

  • L'algorithme ARIMA a été ajouté dans SQL Server 2008 pour améliorer la précision dans la prédiction à long terme.

Par défaut, Analysis Services utilise chaque algorithme séparément pour l'apprentissage du modèle, puis fusionne les résultats pour produire la meilleure prédiction pour un nombre variable de prédictions. Vous pouvez également choisir d'utiliser un seul des algorithmes, en fonction de vos données et de vos spécifications de prédiction. Dans SQL Server 2008 Enterprise, vous pouvez également personnaliser le point d'arrêt qui contrôle la fusion d'algorithmes pendant la prédiction.

Cette rubrique fournit des informations supplémentaires sur la façon dont chaque algorithme est implémenté, ainsi que sur la façon dont vous pouvez personnaliser l'algorithme en définissant des paramètres pour optimiser l'analyse et les résultats de prédiction.

Implémentation de l'algorithme MTS (Microsoft Time Series)

Microsoft Research a développé l'algorithme d'origine ARTXP utilisé dans SQL Server 2005, en basant l'implementation sur l'algorithme MDT (Microsoft Decision Trees). Par conséquent, l'algorithme ARTXP peut être décrit comme un modèle d'arborescence autoregressif pour la représentation de données de série chronologique périodiques. Cet algorithme associe un nombre variable d'éléments passés à chaque élément actuel prédit. Le nom ARTXP vient du fait que l'algorithme ART (ou la méthode d'arbre autorégressif) est appliqué à plusieurs états antérieurs inconnus. Pour obtenir des explications détaillées sur l'algorithme ARTXP, consultez Autoregressive Tree Models for Time-Series Analysis (en anglais).

L'algorithme ARIMA a été ajouté dans l'algorithme MTS (Microsoft Time Series) dans SQL Server 2008 pour améliorer la prédiction à long terme. C'est une implémentation du processus de calcul de moyennes mobiles intégrées autoregressives décrit par Box et Jenkins. La méthode ARIMA permet de déterminer les dépendances dans les observations effectuées de manière séquentielle dans le temps et peut inclure des chocs aléatoires dans le modèle. Elle prend également en charge le caractère saisonnier multiplicatif. Si vous souhaitez en savoir plus sur l'algorithme ARIMA, nous vous conseillons de lire les travaux de Box et Jenkins ; cette rubrique vise à vous fournir plus de détails sur la façon dont la méthodologie ARIMA a été implémentée dans l'algorithme MTS.

Par défaut, l'algorithme MTS (Microsoft Time Series) utilise les deux méthodes, ARTXP et ARIMA, et fusionne les résultats pour améliorer la précision de la prédiction. Si vous souhaitez utiliser une seule méthode spécifique, vous pouvez définir les paramètres d'algorithme afin d'utiliser uniquement ARTXP ou ARIMA, ou contrôler la façon dont les résultats des algorithmes sont combinés. Notez que l'algorithme ARTXP prend en charge la prédiction croisée, ce que ne fait pas l'algorithme ARIMA. Par conséquent, la prédiction croisée est disponible uniquement lorsque vous utilisez une fusion d'algorithmes, ou lorsque vous configurez le modèle de façon à utiliser uniquement ARTXP.

Présentation de l'ordre des différences ARIMA

Cette section définit la terminologie à connaître pour comprendre le modèle ARIMA et aborde l'implémentation spécifique de la différenciation dans l'algorithme MTS. Pour une explication complète de ces termes et concepts, nous vous recommandons de lire les travaux de Box et Jenkins.

  • term est un composant d'une équation mathématique. Par exemple, un terme dans une équation polynomiale peut inclure une combinaison de variables et constantes.

  • La formule ARIMA incluse dans l'algorithme MTS utilise à la fois les termes autorégressif et moyenne mobile.

  • Les modèles de séries chronologiques peuvent être stationnaires ou non stationnaires. Les modèles stationnaires sont ceux qui régressent vers la moyenne, bien qu'ils puissent avoir des cycles, tandis que les modèles non stationnaires ne ciblent aucun équilibre et peuvent varier davantage ou changer selon des chocs, ou des variables externes.

  • L'objectif de la différenciation est de stabiliser les séries chronologiques et de les rendre stationnaires.

  • L'ordre de différence représente le nombre de fois que la différence entre des valeurs est constatée pour une série chronologique.

L'algorithme MTS (Microsoft Time Series) fonctionne en enregistrant des valeurs dans une série de données et en tentant d'adapter les données à un modèle. Si la série de données n'est pas encore stationnaire, l'algorithme applique un ordre de différence. Chaque augmentation dans l'ordre de différence tend à rendre la série chronologique plus stationnaire.

Par exemple, si vous disposez de la série chronologique (z1, z2, …, zn) et effectuez des calculs à l'aide d'un ordre de différence, vous obtenez une nouvelle série (y1, y2,…., yn-1), où yi = zi+1-zi. Lorsque l'ordre de différence est 2, l'algorithme génère une autre série (x1, x2, …, xn-2), en fonction de la série y qui était dérivée de l'équation du premier ordre. L'ampleur correcte pour la différenciation dépend des données. Un ordre de différenciation unique est plus commun dans les modèles qui indiquent une tendance constante, le second ordre de différenciation peut indiquer une tendance qui varie dans le temps.

Par défaut, l'ordre de différence utilisé dans l'algorithme MTS est -1, ce qui signifie que l'algorithme détectera automatiquement la meilleure valeur pour l'ordre de différence. Généralement, la meilleure valeur est 1 (lorsqu'une différenciation est requise), mais dans certains cas, l'algorithme va augmenter cette valeur à 2 au maximum.

L'algorithme MTS détermine l'ordre de différence ARIMA optimal en utilisant les valeurs autorégressives. Il examine les valeurs AR et définit un paramètre masqué, ARIMA_AR_ORDER, représentant l'ordre des termes AR. Ce paramètre masqué, ARIMA_AR_ORDER, a une plage de valeurs variant de -1 à 8. Selon la valeur par défaut de -1, l'algorithme va sélectionner automatiquement l'ordre de différence approprié.

Lorsque la valeur de ARIMA_AR_ORDER est supérieure à 1, l'algorithme multiplie la série chronologique par un terme polynomial. Si un terme de la formule polynomiale est résolu en une racine de 1, ou proche de 1, l'algorithme tente de préserver la stabilité du modèle en supprimant le terme et en augmentant l'ordre de différence par 1. Si l'ordre de différence est déjà au maximum, le terme est supprimé et l'ordre de différence ne change pas.

Par exemple, en supposant que la valeur de AR = 2, le terme polynomial AR résultant devrait ressembler à ceci : 1 – 1.4B + .45B^2 = (1- .9B) (1- 0.5B). Notez le terme (1- .9B) qui a une racine d'environ 0,9. L'algorithme supprime ce terme de la formule polynomiale, mais ne peut pas augmenter l'ordre de différence d'un car il a déjà atteint la valeur maximale de 2.

Il est important de noter que la seule façon de forcer un changement dans l'ordre de différence est d'utiliser le paramètre non pris en charge ARIMA_DIFFERENCE_ORDER. Ce paramètre caché contrôle le nombre de fois que l'algorithme exécute une différenciation sur la série chronologique et peut être défini en entrant un paramètre d'algorithme personnalisé. Toutefois, nous ne vous recommandons pas de modifier cette valeur, sauf à titre expérimental et si vous connaissez bien les calculs impliqués. Notez également qu'il n'y a actuellement aucun mécanisme ni paramètre caché, qui vous permet de contrôler le seuil de déclenchement de l'augmentation de l'ordre de différence.

Enfin, notez que la formule décrite ci-dessus est le cas le plus simple, sans aucune indicateur de saisonnalité. Si des indicateurs de saisonnalité sont fournis, un terme polynomial AR distinct est ajouté à gauche de l'équation pour chaque indicateur de saisonnalité et la même stratégie est appliquée pour éliminer les termes qui pourraient déstabiliser les séries différenciées.

Personnalisation de l'algorithme MTS (Microsoft Time Series)

L'algorithme MTS (Microsoft Time Series) prend en charge les paramètres suivants qui affectent le comportement, les performances et la précision du modèle d'exploration de données obtenu.

[!REMARQUE]

Il est disponible dans toutes les éditions de SQL Server ; toutefois, certaines fonctionnalités avancées, dont les paramètres permettant de personnaliser l'analyse de la série chronologique, sont prises en charge uniquement dans les éditions spécifiques de SQL Server. Pour obtenir la liste des fonctionnalités prises en charge par l'édition de SQL Server, consultez Fonctionnalités prise en charge par les éditions de SQL Server 2012 (https://go.microsoft.com/fwlink/?linkid=232473).

Détection de saisonnalité

Les algorithmes ARIMA et ARTXP prennent tous les deux en charge la détection de la saisonnalité ou de la périodicité. Analysis Services utilise la transformation Fast Fourier pour détecter la saisonnalité avant l'apprentissage. Toutefois, vous pouvez affecter la détection de saisonnalité, et les résultats d'analyse en série chronologique, en définissant des paramètres d'algorithme.

  • En modifiant la valeur d'AUTODETECT_SEASONALITY, vous pouvez influencer le nombre de segments temporels pouvant être générés.

  • En définissant une ou plusieurs valeurs pour PERIODICITY_HINT, vous pouvez fournir à l'algorithme des informations sur les cycles de données connus et augmenter potentiellement la précision de la détection.

[!REMARQUE]

Les algorithmes ARTXP et ARIMA sont tous les deux très sensibles aux indications de saisonnalité. Par conséquent, le fait de fournir une indication fausse peut nuire aux résultats.

Choix d'un algorithme et spécification de la fusion d'algorithmes

Par défaut, ou lorsque vous sélectionnez l'option MIXED, Analysis Services combine les algorithmes et leur affecte un poids égal. Toutefois, dans SQL Server 2008 Enterprise, vous pouvez spécifier un algorithme particulier, ou vous pouvez personnaliser la proportion de chaque algorithme dans les résultats en définissant un paramètre qui pondère les résultats par rapport à la prédiction à court ou long terme. Par défaut, ce paramètre FORECAST_METHOD a la valeur MIXED, et Analysis Services utilise les deux algorithmes, puis pondère leurs valeurs afin d'optimiser les points forts de chacun.

  • Pour contrôler le choix de l'algorithme, vous définissez le paramètre FORECAST_METHOD.

  • Si vous voulez utiliser la prédiction croisée, vous devez utiliser soit ARTXP, soit l'option MIXED, car ARIMA ne prend pas en charge cette fonctionnalité.

  • Définissez le FORECAST_METHOD sur ARTXP si vous souhaitez favoriser la prédiction à court terme.

  • Définissez le FORECAST_METHOD sur ARIMA si vous souhaitez améliorer la prédiction à long terme.

Dans SQL Server 2008 Enterprise, vous pouvez également personnaliser la façon dont Analysis Services mixe la combinaison d'algorithmes ARTXP et ARIMA. Vous pouvez contrôler à la fois le point de départ du mélange et le taux de changement, en définissant le paramètre PREDICTION_SMOOTHING :

  • Si vous affectez 0 à PREDICTION_SMOOTHING, le modèle utilise uniquement ARTXP.

  • Si vous affectez 1 à PREDICTION_SMOOTHING, le modèle utilise uniquement ARIMA.

  • Si vous affectez une valeur comprise entre 0 et 1 à PREDICTION_SMOOTHING, le modèle pondère l'algorithme ARTXP comme une fonction décroissante de manière exponentielle des étapes de prédiction. Parallèlement, le modèle pondère également l'algorithme ARIMA comme complément à 1 du poids d'ARTXP. Le modèle utilise la normalisation et une constante de stabilisation pour lisser les courbes.

En général, si vous prédisez jusqu'à 5 tranches de temps, ARTXP est presque toujours le choix le plus adapté. Toutefois, lorsque vous augmentez le nombre de tranches de temps à prédire, ARIMA est généralement plus performant.

Le diagramme suivant illustre la façon dont le modèle fusionne les algorithmes lorsque PREDICTION_SMOOTHING a la valeur par défaut, 0.5. ARIMA et ARTXP ont la même pondération au début, mais au fil de l'augmentation du nombre d'étapes de prédiction, ARIMA est pondéré de manière plus importante.

courbe par défaut pour combinaison d'algorithmes de série chronologique

À l'inverse, le diagramme suivant illustre la fusion des algorithmes lorsque PREDICTION_SMOOTHING a la valeur 0.2. Pour l'étape 0, le modèle pondère ARIMA avec la valeur 0.2 et ARTXP avec la valeur 0.8. La pondération d'ARIMA augmente ensuite de façon exponentielle alors que la pondération d'ARTXP diminue de la même façon.

courbe de délai pour combinaison de modèles de série chronologique

Définition de paramètres d'algorithme

Le tableau suivant décrit les paramètres qui peuvent être utilisés avec l'algorithme MTS (Microsoft Time Series).

Paramètre

Description

AUTO_DETECT_PERIODICITY

Spécifie une valeur numérique comprise entre 0 et 1 qui détecte la périodicité. La valeur par défaut est 0.6.

Si la valeur est proche de 0, la périodicité n'est détectée que pour les données fortement périodiques.

Une valeur proche de 1 favorise la découverte de nombreux modèles qui sont presque périodiques et la génération automatique d'indications de périodicité.

[!REMARQUE]

Le traitement d'un grand nombre d'indications de périodicité est susceptible d'allonger de façon significative les durées d'apprentissage des modèles, mais de produire des modèles plus précis.

COMPLEXITY_PENALTY

Contrôle la croissance de l'arbre de décision. La valeur par défaut est 0.1.

La diminution de cette valeur augmente la probabilité d'une division. L'augmentation de cette valeur diminue la probabilité d'une division.

[!REMARQUE]

Ce paramètre est uniquement disponible dans certaines éditions de SQL Server.

FORECAST_METHOD

Spécifie l'algorithme à utiliser pour l'analyse et la prédiction. Les valeurs possibles sont ARTXP, ARIMA ou MIXED. La valeur par défaut est MIXED.

HISTORIC_MODEL_COUNT

Spécifie le nombre de modèles historiques qui seront construits. La valeur par défaut est 1.

[!REMARQUE]

Ce paramètre est uniquement disponible dans certaines éditions de SQL Server.

HISTORICAL_MODEL_GAP

Spécifie le décalage dans le temps entre deux modèles historiques successifs. La valeur par défaut est 10. La valeur représente plusieurs unités de temps, où l'unité est définie par le modèle.

Par exemple, la valeur g produit des modèles historiques générés pour des données tronquées par tranches de temps à des intervalles de g, 2*g, 3*g, et ainsi de suite.

[!REMARQUE]

Ce paramètre est uniquement disponible dans certaines éditions de SQL Server.

INSTABILITY_SENSITIVITY

Contrôle le point à partir duquel la variance de prédiction dépasse un certain seuil, après quoi l'algorithme ARTXP supprime des prédictions. La valeur par défaut est 1.

[!REMARQUE]

Ce paramètre ne s'applique pas aux modèles qui utilisent uniquement ARIMA.

La valeur par défaut de 1 présente le même comportement que dans SQL Server 2005. Analysis Services surveille l'écart type normalisé pour chaque prédiction. Dès que cette valeur dépasse le seuil d'une prédiction, l'algorithme de série chronologique retourne une valeur Null et arrête le processus de prédiction.

La valeur 0 arrête la détection d'instabilité. Cela signifie que vous pouvez créer un nombre infini de prédictions, quelle que soit la variance.

[!REMARQUE]

Ce paramètre ne peut être modifié que dans SQL Server Enterprise. Dans SQL Server Standard, Analysis Services utilise uniquement la valeur par défaut 1.

MAXIMUM_SERIES_VALUE

Spécifie la valeur maximale à utiliser pour les prédictions. Ce paramètre est utilisé, en association avec MINIMUM_SERIES_VALUE, pour limiter les prédictions à une plage attendue. Par exemple, vous pouvez spécifier que le volume de ventes prédites pour un jour ne doit jamais dépasser le nombre de produits dans l'inventaire.

[!REMARQUE]

Ce paramètre est uniquement disponible dans certaines éditions de SQL Server.

MINIMUM_SERIES_VALUE

Spécifie la valeur minimale qui peut être prédite. Ce paramètre est utilisé conjointement avec MAXIMUM_SERIES_VALUE pour limiter les prédictions à une plage attendue. Par exemple, vous pouvez spécifier que la quantité de ventes prédite ne doit jamais être un nombre négatif.

[!REMARQUE]

Ce paramètre est uniquement disponible dans certaines éditions de SQL Server.

MINIMUM_SUPPORT

Spécifie le nombre minimal de tranches de temps qui sont requises pour générer un fractionnement dans chaque arbre de série chronologique. La valeur par défaut est 10.

MISSING_VALUE_SUBSTITUTION

Spécifie la façon dont les vides dans les données d'historique sont comblés. Par défaut, les vides dans les données ne sont pas autorisés.

Le tableau suivant répertorie les valeurs possibles de ce paramètre :

Valeur

Description

Previous

Répète la valeur de la tranche de temps précédente.

Mean

Utilise une moyenne mobile des tranches de temps utilisées pour l'apprentissage.

Constante numérique

Utilise le nombre spécifié pour remplacer toutes les valeurs manquantes.

None

Remplace les valeurs manquantes par les valeurs représentées le long de la courbe du modèle ayant fait l'objet d'un apprentissage.

Il s'agit de la valeur par défaut.

Si vos données contiennent plusieurs séries, les séries ne peuvent pas non plus avoir des extrémités déséquilibrées. En d'autres termes, toutes les séries doivent avoir les mêmes points de départ et d'arrêt.

Analysis Services utilise également la valeur de ce paramètre pour combler les vides dans les nouvelles données lorsque vous effectuez une opération PREDICTION JOIN sur un modèle de série chronologique.

PERIODICITY_HINT

Fournit à l'algorithme une indication de la périodicité des données. Par exemple, si les ventes varient chaque année, et que l'unité de mesure de la série est le mois, la périodicité est égale à 12. Ce paramètre s'affiche sous la forme {n [, n]}, où n est un nombre positif.

Le n entre crochets [] est facultatif et peut être répété aussi souvent que nécessaire. Par exemple, pour fournir plusieurs indications de périodicité pour les données fournies mensuellement, vous pouvez entrer {12, 3, 1} pour détecter les modèles pour l'année, le trimestre et le mois. Toutefois, la périodicité a une répercussion importante sur la qualité du modèle. Si l'indication que vous fournissez diffère de la périodicité réelle, vos résultats peuvent être gravement compromis.

La valeur par défaut est {1}.

[!REMARQUE]

Les accolades sont obligatoires. Par ailleurs, ce paramètre a un type de données chaîne. Par conséquent, si vous tapez ce paramètre dans une instruction DMX (Data Mining Extensions), vous devez placer le nombre et les accolades entre guillemets.

PREDICTION_SMOOTHING

Spécifie la façon dont le modèle doit être combiné pour optimiser la prévision. Vous pouvez taper toute valeur comprise entre 0 et 1, ou utiliser l'une des valeurs suivantes :

[!REMARQUE]

Utilisez le paramètre FORECAST_METHOD pour contrôler l'apprentissage.

Valeur

Description

0

Spécifie que la prédiction utilise uniquement ARTXP. La prévision est optimisée pour un petit nombre de prédictions.

1

Spécifie que la prédiction utilise uniquement ARIMA. La prévision est optimisée pour un grand nombre de prédictions.

0.5

(Valeur par défaut) Spécifie que les deux algorithmes doivent être utilisés et les résultats fusionnés pour la prédiction.

[!REMARQUE]

Ce paramètre est uniquement disponible dans certaines éditions de SQL Server.

Indicateurs de modélisation

L'algorithme MTS (Microsoft Time Series) prend en charge les indicateurs de modélisation suivants. Lorsque vous créez la structure d'exploration de données ou le modèle d'exploration de données, vous définissez des indicateurs de modélisation pour spécifier la façon dont les valeurs de chaque colonne sont gérées pendant l'analyse. Pour plus d'informations, consultez Indicateurs de modélisation (Exploration de données).

Indicateur de modélisation

Description

NOT NULL

Indique que la colonne ne peut pas contenir de valeur Null. Une erreur est générée si Analysis Services rencontre une valeur Null au cours de l'apprentissage du modèle.

S'applique aux colonnes de structure d'exploration de données.

MODEL_EXISTENCE_ONLY

Signifie que la colonne sera considérée comme ayant deux états possibles : manquant et existant. Null est une valeur manquante.

S'applique aux colonnes de modèle d'exploration de données.

Spécifications

Un modèle de série chronologique doit contenir une colonne Key Time qui contient des valeurs uniques, des colonnes d'entrée et au moins une colonne prédictible.

Colonnes d'entrée et prédictibles

L'algorithme MTS (Microsoft Time Series) prend en charge les types de contenu de colonne d'entrée, types de contenu de colonne prédictible et indicateurs de modélisation spécifiques qui sont répertoriés dans le tableau suivant.

Colonne

Types de contenu

Attribut d'entrée

Continu, Clé, Key Time et Table

Attribut prévisible

Continu, Table

[!REMARQUE]

Les types de contenu Cyclique et Trié sont pris en charge, mais l'algorithme les traite comme des valeurs discrètes et n'effectue pas de traitement spécial.

Voir aussi

Référence

Contenu du modèle d'exploration de données pour les modèles de séries chronologiques (Analysis Services - Exploration de données)

Concepts

Algorithme MTS (Microsoft Time Series)

Exemples de requêtes de modèle de série chronologique