Partager via


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

L'algorithme MTS (Microsoft Time Series) inclut deux algorithmes distincts :

  • 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. À compter de 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 des algorithmes MTS (Microsoft Time Series)

La recherche Microsoft 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'arbre autorégressif pour représenter des 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. Vous pouvez toutefois utiliser une seule méthode spécifique, c'est-à-dire utiliser uniquement l'algorithme 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.

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

Prenons l'exemple de la série chronologique (z1, z2, …, zn) et effectuons les calculs à l'aide d'un seul ordre de différence, on obtient ainsi 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 par 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 indication de saisonnalité. Si des indications de saisonnalité sont fournies, un terme polynomial AR distinct est ajouté à gauche de l'équation pour chaque indication de saisonnalité et la même stratégie est appliquée pour éliminer les termes qui pourraient destabiliser les séries différenciées.

Personnalisation de l'algorithme MTS (Microsoft Time Series)

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

Détection de saisonnalité

Les deux algorithmes prennent en charge la détection de saisonnalité ou périodicité. Analysis Services utilise la transformation Fast Fourier pour détecter la saisonnalité avant l'apprentissage.

Pour obtenir des résultats optimaux, vous pouvez contrôler la détection de saisonnalité 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 périodes répétitives connues et augmenter la précision de la détection.

Notes

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

Fusion d'algorithmes

Par défaut, Analysis Services associe et affecte la même pondération aux algorithmes. Toutefois, à compter de SQL Server 2008 Enterprise, vous pouvez personnaliser la fusion des résultats en sélectionnant l'option MIXED et en définissant un paramètre qui pondère les résultats vers une prédiction soit à court terme, soit à long terme.

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

Pour contrôler le choix de l'algorithme, vous définissez le paramètre FORECAST_METHOD. 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. Vous pouvez toutefois définir ARTXP pour FORECAST_METHOD si vous voulez utiliser uniquement l'algorithme ARTxp, ou définir ARIMA si vous voulez utiliser uniquement l'algorithme ARIMA.

À partir de SQL Server 2008 Enterprise, vous pouvez également personnaliser la façon dont Analysis Services associe les algorithmes ARIMA et ARTXP. Vous pouvez contrôler aussi bien le point de départ de l'association que le taux de changement en définissant le paramètre PREDICTION_SMOOTHING :

  • Si vous affectez 0 à PREDICTION_SMOOTHING, le modèle devient purement ARTxp.

  • Si vous affectez 1 à PREDICTION_SMOOTHING, le modèle devient purement ARIMA.

  • Si vous affectez une valeur comprise entre 0 et 1 à set 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 comme nombre d'augmentations des étapes de la prédiction, ARIMA est pesé plus lourdement.

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. Ensuite, le poids d'ARIMA augmente de façon exponentielle et le poids 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é.

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

RemarqueRemarque
Ce paramètre est disponible uniquement dans SQL Server Enterprise.

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 générés. La valeur par défaut est 1.

RemarqueRemarque
Ce paramètre est disponible uniquement dans SQL Server Enterprise.

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.

RemarqueRemarque
Ce paramètre est disponible uniquement dans SQL Server Enterprise.

INSTABILITY_SENSITIVITY

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

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

La valeur par défaut 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 les écarts types d'une prédiction dépassent le seuil, 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.

RemarqueRemarque
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 la quantité de ventes prédite pour n'importe quel jour ne doit jamais dépasser le nombre de produits en stock.

RemarqueRemarque
Ce paramètre est disponible uniquement dans SQL Server Enterprise.

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.

RemarqueRemarque
Ce paramètre est disponible uniquement dans SQL Server Enterprise.

MINIMUM_SUPPORT

Spécifie le nombre minimal de tranches de temps qui sont requises pour générer une division 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 :

ValeurDescription
PreviousRépète la valeur de la tranche de temps précédente.
MeanUtilise une moyenne mobile des tranches de temps utilisées pour l'apprentissage.
Constante numériqueUtilise le nombre spécifié pour remplacer toutes les valeurs manquantes.
NoneRemplace 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}.

RemarqueRemarque
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 :

RemarqueRemarque
Utilisez le paramètre FORECAST_METHOD pour contrôler l'apprentissage.
ValeurDescription
0 Spécifie que la prédiction utilise uniquement ARTxp. La prévision est optimisée pour un petit nombre de prédictions.
1Spé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.
RemarqueRemarque
Ce paramètre est disponible uniquement dans SQL Server Enterprise.

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

Notes

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.

Historique des modifications

Mise à jour du contenu

  • Ajout d'une nouvelle section qui décrit l'implémentation de la différenciation dans l'algorithme ARIMA.