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

Microsoft Research a développé l'algorithme ARTXP en le basant sur l'algorithme MDT (Microsoft Decision Trees), qui est un modèle d'arbre autorégressif pour représenter des données de série chronologique périodiques. L'algorithme ARTXP 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 est utilisé pour les prédictions à long terme. Il s'agit d'une implémentation de l'algorithme ARIMA développé par Box et Jenkins. ARIMA, ou moyenne mobile intégrée autoregressive, est une méthode connue permettant de déterminer les dépendances dans les observations effectuées de manière séquentielle dans le temps. Elle prend également en charge le caractère saisonnier multiplicatif. L'algorithme ARIMA utilise aussi bien les termes « autorégressif » que « moyenne mobile ».

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.

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.

[!REMARQUE]

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, dans 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.

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

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 s'applique uniquement à l'algorithme ARTXP ; par conséquent, il ne s'applique pas aux modèles créés uniquement à l'aide de l'algorithme ARIMA. Si ce paramètre est appliqué à un modèle MIXED, il s'applique uniquement à la portion ARTXP du modèle.

La valeur par défaut 1 présente le même comportement que pour les modèles ARTXP 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
0Spé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évisible.

Colonnes d'entrée et prévisibles

L'algorithme MTS (Microsoft Time Series) prend en charge les types de contenu de colonne d'entrée, types de contenu de colonne prévisible 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.