Partager via


Informations techniques de référence sur l’algorithme Microsoft Time Series

L’algorithme Microsoft Time Series comprend deux algorithmes distincts pour l’analyse des séries chronologiques :

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

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

Par défaut, Analysis Services utilise chaque algorithme séparément pour entraîner le modèle, puis fusionne les résultats pour générer la meilleure prédiction pour un nombre variable de prédictions. Vous pouvez également choisir d’utiliser l’un des algorithmes, en fonction de vos données et de vos exigences de prédiction. Dans SQL Server 2008 Enterprise, vous pouvez également personnaliser le point de coupure qui contrôle le mélange d’algorithmes pendant la prédiction.

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

Implémentation de l’algorithme Microsoft Time Series

Microsoft Research a développé l’algorithme ARTXP d’origine qui a été utilisé dans SQL Server 2005, en basant l’implémentation sur l’algorithme Microsoft Decision Trees. Par conséquent, l’algorithme ARTXP peut être décrit comme un modèle d’arbre de régressivité automatique 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 en cours de prédiction. Le nom ARTXP dérive du fait que la méthode d’arborescence autorégressive (algorithme ART) est appliquée à plusieurs états antérieurs inconnus. Pour obtenir une explication détaillée de l’algorithme ARTXP, consultez Modèles d’arborescences autoregressifs pour Time-Series Analysis.

L’algorithme ARIMA a été ajouté à l’algorithme Microsoft Time Series dans SQL Server 2008 pour améliorer la prédiction à long terme. Il s’agit d’une implémentation du processus permettant de calculer les moyennes mobiles intégrées auto-régressives décrite par Box et Jenkins. La méthodologie ARIMA permet de déterminer les dépendances dans les observations effectuées séquentiellement dans le temps et d’incorporer des chocs aléatoires dans le cadre du modèle. La méthode ARIMA prend également en charge la saisonnalité multiplicative. Les lecteurs qui souhaitent en savoir plus sur l’algorithme ARIMA sont encouragés à lire le travail seminal par Box et Jenkins ; Cette section est destinée à fournir des détails spécifiques sur la façon dont la méthodologie ARIMA a été implémentée dans l’algorithme Microsoft Time Series.

Par défaut, l’algorithme Microsoft Time Series utilise les deux méthodes, ARTXP et ARIMA, et fusionne les résultats pour améliorer la précision de prédiction. Si vous souhaitez utiliser uniquement une méthode spécifique, vous pouvez définir les paramètres d’algorithme pour utiliser uniquement ARTXP ou UNIQUEMENT ARIMA, ou pour 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, mais pas l’algorithme ARIMA. Par conséquent, la prédiction croisée est disponible uniquement lorsque vous utilisez un mélange d’algorithmes ou lorsque vous configurez le modèle pour utiliser uniquement ARTXP.

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

Cette section présente une terminologie nécessaire pour comprendre le modèle ARIMA et décrit l’implémentation spécifique de la différenciation dans l’algorithme Microsoft Time Series. Pour obtenir une explication complète de ces termes et concepts, nous vous recommandons d’examiner 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 de constantes.

  • La formule ARIMA incluse dans l'algorithme Microsoft Time Series utilise à la fois des termes autoregressifs et de moyenne mobile.

  • Les modèles de série chronologique peuvent être stationnaires ou non stationnaires. Les modèles stationnaires sont ceux qui reviennent à une moyenne, bien qu’ils aient des cycles, alors que les modèles non stationnaires n’ont pas le focus sur l’équilibre et sont soumis à une variance ou à un changement plus important introduit par des chocs ou des variables externes.

  • L’objectif de la différenciation est de stabiliser une série chronologique et de devenir stationnaire.

  • L’ordre de différence représente le nombre de fois où la différence entre les valeurs est prise pour une série chronologique.

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

Par exemple, si vous avez 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), basée sur la série y dérivée de la première équation de l’ordre. La quantité correcte de différenciation dépend des données. Un ordre unique de différenciation est le plus courant dans les modèles qui montrent une tendance constante ; un deuxième ordre de différenciation peut indiquer une tendance qui varie avec le temps.

Par défaut, l’ordre de différence utilisé dans l’algorithme Microsoft Time Series est -1, ce qui signifie que l’algorithme détecte automatiquement la meilleure valeur pour l’ordre de différence. En règle générale, cette meilleure valeur est 1 (lorsque la différenciation est requise), mais dans certaines circonstances, l’algorithme augmente cette valeur à un maximum de 2.

L’algorithme Microsoft Time Series détermine l’ordre de différence ARIMA optimal à l’aide des valeurs de régression automatique. L’algorithme 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 comprises entre -1 et 8. À la valeur par défaut de -1, l’algorithme sélectionne automatiquement l’ordre de différence approprié.

Chaque fois que 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 se résout à 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 des différences d’environ 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, si la valeur d’AR = 2, le terme polynomial AR résultant peut 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 élimine ce terme de la formule polynomiale, mais ne peut pas augmenter l’ordre de différence par un, car il est déjà à la valeur maximale de 2.

Il est important de noter que la seule façon dont vous pouvez forcer une modification dans l’ordre de différence consiste à utiliser le paramètre non pris en charge, ARIMA_DIFFERENCE_ORDER. Ce paramètre masqué contrôle le nombre de fois où l’algorithme effectue une différenciation sur la série chronologique et peut être défini en tapant un paramètre d’algorithme personnalisé. Toutefois, nous vous déconseillons de modifier cette valeur, sauf si vous êtes prêt à expérimenter et que vous êtes familiarisé avec les calculs impliqués. Notez également qu’il n’existe actuellement aucun mécanisme, y compris les paramètres masqués, pour vous permettre de contrôler le seuil auquel l’augmentation de l’ordre de différence est déclenchée.

Enfin, notez que la formule décrite ci-dessus est le cas simplifié, sans 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 susceptibles de déstabiliser la série différente.

Personnalisation de l’algorithme de série chronologique Microsoft

L’algorithme 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 résultant.

Remarque

L’algorithme Microsoft Time Series est disponible dans toutes les éditions de SQL Server ; Toutefois, certaines fonctionnalités avancées, notamment les paramètres de personnalisation de l’analyse de série chronologique, ne sont prises en charge que dans des éditions spécifiques de SQL Server. Pour obtenir la liste des fonctionnalités prises en charge par les éditions de SQL Server, consultez Fonctionnalités prises en charge par les éditions de SQL Server 2012.

Détection de la saisonnalité

Les algorithmes ARIMA et ARTXP prennent 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 la formation. Toutefois, vous pouvez affecter la détection de saisonnalité et les résultats de l’analyse de série chronologique en définissant des paramètres d’algorithme.

  • En modifiant la valeur de AUTODETECT_SEASONALITY, vous pouvez influencer le nombre de segments de temps possibles générés.

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

Remarque

Les algorithmes ARTXP et ARIMA sont très sensibles aux indicateurs de saisonnalité. Par conséquent, la fourniture d’un mauvais indicateur peut affecter les résultats.

Choix d’un algorithme et spécification du mélange d’algorithmes

Par défaut, ou lorsque vous sélectionnez l’option MIXED, Analysis Services combine les algorithmes et leur attribue une pondération égale. 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 poids les résultats vers la prédiction à court ou à long terme. Par défaut, le paramètre FORECAST_METHOD est défini sur MIXED, et Analysis Services utilise les deux algorithmes, puis pondéré leurs valeurs pour optimiser les forces de chaque algorithme.

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

  • Si vous souhaitez utiliser la prédiction croisée, vous devez utiliser l’option ARTXP ou MIXED, car ARIMA ne prend pas en charge la prédiction croisée.

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

  • Définissez la 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 combine la combinaison des algorithmes ARIMA et ARTXP. Vous pouvez contrôler à la fois le point de départ du mélange et le taux de modification en définissant le paramètre PREDICTION_SMOOTHING :

  • Si vous définissez PREDICTION_SMOOTHING sur 0, le modèle utilise UNIQUEMENT ARTXP.

  • Si vous définissez PREDICTION_SMOOTHING sur 1, le modèle utilise UNIQUEMENT ARIMA.

  • Si vous définissez PREDICTION_SMOOTHING sur une valeur comprise entre 0 et 1, le modèle poids l’algorithme ARTXP comme fonction décroissante exponentielle des étapes de prédiction. En même temps, le modèle pondère également l'algorithme ARIMA comme le complément de 1 du poids ARTXP. Le modèle utilise la normalisation et une constante de stabilisation pour lisser les courbes.

En général, si vous prévoyez jusqu’à 5 tranches de temps, ARTXP est presque toujours le meilleur choix. Toutefois, à mesure que vous augmentez le nombre de tranches de temps à prédire, ARIMA fonctionne généralement mieux.

Le diagramme suivant montre comment le modèle fusionne les algorithmes lorsque PREDICTION_SMOOTHING est défini sur la valeur par défaut 0,5. ARIMA et ARTXP sont pondérés de façon égale au début, mais à mesure que le nombre d’étapes de prédiction augmente, ARIMA est pesé plus fortement.

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

En revanche, le diagramme suivant illustre la fusion des algorithmes lorsque PREDICTION_SMOOTHING a la valeur 0.2. Pour l'étape 0, les poids du modèle sont : ARIMA à 0,2 et ARTXP à 0,8. Par la suite, le poids d’ARIMA augmente de façon exponentielle et le poids d’ARTXP diminue de façon exponentielle.

courbe de désintégration pour le modèle de série chronologique en mélange

Définition des paramètres d’algorithme

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

Paramètre Descriptif
DETECTION_AUTOMATIQUE_PERIODICITE 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 plus proche de 0, la périodicité est détectée uniquement pour les données fortement périodiques.

La définition de cette valeur plus proche de 1 favorise la découverte de nombreux modèles qui sont presque périodiques et la génération automatique d’indicateurs de périodicité.

Remarque : Le traitement de nombreux indicateurs de périodicité entraînera probablement des temps d’entraînement de modèle beaucoup plus longs, mais des modèles plus précis.
PÉNALITÉ_COMPLEXITÉ 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’un fractionnement. L’augmentation de cette valeur diminue la probabilité d’un fractionnement.

Remarque : ce paramètre est disponible uniquement dans certaines éditions de SQL Server.
MÉTHODE_DE_PRÉVISION 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.

Remarque : ce paramètre est disponible uniquement dans certaines éditions de SQL Server.
HISTORICAL_MODEL_GAP Spécifie le décalage temporel entre deux modèles historiques consécutifs. La valeur par défaut est 10. La valeur représente un certain nombre d’unités de temps, où l’unité est définie par le modèle.

Par exemple, la définition de cette valeur sur g entraîne la génération de modèles historiques pour les données tronquées par tranches de temps à intervalles de g, 2*g, 3*g, et ainsi de suite.

Remarque : ce paramètre est disponible uniquement dans certaines éditions de SQL Server.
SENSIBILITÉ_INSTABILITÉ Contrôle le point auquel la variance de prédiction dépasse un certain seuil, après lequel l’algorithme ARTXP supprime les 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 fournit 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 de toute 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 de l’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é, 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.

Remarque : ce paramètre est disponible uniquement dans certaines éditions de SQL Server.
MINIMUM_SERIES_VALUE Spécifie la valeur minimale qui peut être prédite. Ce paramètre est utilisé, 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 disponible uniquement dans certaines éditions de SQL Server.
MINIMUM_SUPPORT Spécifie le nombre minimal de tranches de temps requises pour générer un fractionnement dans chaque arborescence de série chronologique. La valeur par défaut est 10.
SUBSTITUTION_DE_VALEUR_MANQUANTE Spécifie la façon dont les lacunes dans les données historiques sont remplies. Par défaut, les lacunes dans les données ne sont pas autorisées. Si vos données contiennent plusieurs séries, les séries ne doivent pas non plus avoir de bords irréguliers. Autrement dit, toutes les séries doivent avoir les mêmes points de début et de fin. Analysis Services utilise également la valeur de ce paramètre pour combler les lacunes dans les nouvelles données lorsque vous effectuez un PREDICTION JOIN modèle de série chronologique. Le tableau suivant répertorie les valeurs possibles pour ce paramètre :

Aucun : valeur par défaut. Remplace les valeurs manquantes par des valeurs tracées le long de la courbe du modèle entraîné.

Précédent : répète la valeur de la tranche de temps précédente.

Moyenne : utilise une moyenne mobile des tranches de temps utilisées dans l’entraînement.

Constante numérique : utilise le nombre spécifié pour remplacer toutes les valeurs manquantes.
PERIODICITY_HINT Fournit un indicateur à l’algorithme quant à la périodicité des données. Par exemple, si les ventes varient d’une année à l’autre et que l’unité de mesure de la série est de mois, la périodicité est de 12. Ce paramètre prend le format {n [, n]}, où n est un nombre positif quelconque.

Le n entre crochets [] est facultatif et peut être répété aussi fréquemment que nécessaire. Par exemple, pour fournir plusieurs indicateurs 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 un effet fort sur la qualité du modèle. Si l’indicateur que vous donnez diffère de la périodicité réelle, vos résultats peuvent être affectés négativement.

La valeur par défaut est {1}.

Remarque : Les accolades sont requises. De plus, ce paramètre a un type de données de chaîne. Par conséquent, si vous tapez ce paramètre dans le cadre d’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 mélangé pour optimiser la prévision. Ce paramètre est disponible uniquement dans certaines éditions de SQL Server. Vous pouvez taper n’importe quelle valeur comprise entre 0 et 1 ou utiliser l’une des valeurs suivantes :

0 : Spécifie que la prédiction utilise ARTXP uniquement. La prévision est optimisée pour moins de prédictions.

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

1 : Spécifie que la prédiction utilise UNIQUEMENT ARIMA. La prévision est optimisée pour de nombreuses prédictions.



Remarque : Utilisez le paramètre FORECAST_METHOD pour contrôler l’entraînement.

Drapeaux de modélisation

L’algorithme 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 Descriptif
NON NUL Indique que la colonne ne peut pas contenir de valeur Null. Une erreur se produit si Analysis Services rencontre une valeur Null pendant l’entraînement du modèle.

S'applique aux colonnes des structures minières.
MODÈLE_EXISTENCE_SEULEMENT Signifie que la colonne sera traitée comme ayant deux états possibles : Manquant et Existant. Une valeur Null est manquante.

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

Spécifications

Un modèle de série chronologique doit contenir une colonne de temps clé qui contient des valeurs uniques, des colonnes d’entrée et au moins une colonne prévisible.

Colonnes d'entrée et colonnes prévisibles

L’algorithme Microsoft Time Series prend en charge les types de contenu de colonne d’entrée spécifiques, les types de contenu de colonne prédictibles et les indicateurs de modélisation répertoriés dans le tableau suivant.

Colonne Types de contenu
Attribut d’entrée Continu, clé, heure de clé et table
Attribut prédictible Continu, Tableau

Remarque

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

Voir aussi

Microsoft Time Series AlgorithmExemples de requêtes de modèles de séries chronologiquesContenu du modèle de fouille pour les modèles de séries chronologiques (Services d'analyse - Exploration de données)