Nouveautés 2008: L’algorithme ARIMA

Il est connu depuis longtemps que l’algorithme Time Series basé sur des Autoregressive Trees utlisé en SQL 2005 pose des problèmes de fiabilité sur des prédictions à long terme. Cette lacune a été corrigée dans SQL Server 2008 en intégrant un nouveau paradigme, l’utilisation d’un modèle de type ARMA (AutoRegressive – Moving Average).

Théorie

Les modèles ARMA sont des modèles d’autoregression sur des séries temporelles, derrière ce barbarisme, cela veut dire qu’ils font partie d’une série de modèles permettant, connaissant une série temporelle (une série datée de valeurs) de prédire l’évolution pour des dates à venir.

Mathématiquement, cela se traduit par cela pour la partie autoregressive:

La valeur à l’intant t est égale à une somme pondérée des valeurs précédentes, additionné d’une éventuelle constante et d’une valeur de bruit locale. Ce bruit est de type blanc gaussien: dit simplement il s’agit d’une quantité aléatoire de moyenne nulle. (On compare souvent un bruit blanc à la chute de gouttes d’eau sur un toit: on perçoit un signal globalement constant alors qu’il est constitué d’une foule de signaux indépendants de fréquences différentes).

L’équation précédente représente un modèle AR(p). Ce modèle peut être amélioré en intégrant à chaque niveau non pas un bruit aléatoire, mais un bruit fonction de ceux des Xt précédents. C’est un modèle dit à « mouvement moyen ». Celle ci va remplacer par la suite l’Epsilon introduit dans le modèle AR(p) et est souvent appellée par son acronyme MA(q) :


Ce qui donne le modèle ARMA(p,q) suivant:


Que l’on peut simplifier en:


en utilisant L(k), le rapport de lag, défini par L(i) = X(t-i)/X(i).

Le modèle consiste donc principalement à donner des valeurs à p et q et à trouver les pondérations phi et delta. Le modèles utilisé dans MTS est une généralisation de ARMA appellé ARIMA, (AutoRegressive Integrated Moving Average). Cette généralisation tient en fait compte d’une possible tendance (saisonnière par exemple). Pour savoir si une série est stationnaire ou pas il suffit de calculer l’évolution des moyennes et variances. Si celle ci évolue on rajoute alors un facteur paramétrable fonction de L (égal donc à X(t-1) / X(t). )

Ceci donne donc:

Le paramétrage du modèle ARIMA consiste donc à fixer p, et q l’ordre des parties AR et MA, et d la valeur de saisonnalité de la partie I. On peut noter qu’un d=0 donnera un ARMA, 1 donnera un ARIMA à différenciation constante, >1 on passe dans des différenciations variables.

Et dans SQL Server 2008?

Un modèle ARIMA dans 2008 est représenté sous cette forme:

Modèle
—Sous Modèle 1 (Périodicité=m)
—Sous Modèle 2 (Périodicité=n)
——Partie AR (coefficients)
——Partie MA (coefficients)

A noter que la partie « integrated » est définie au niveau du sous-modèle périodique.

On retrouve ceci dans le MODEL.CONTENT de 2008 avec des NODE_TYPE apparaissant sous les intitulés suivants: (source Technet)

ArimaAutoRegressive: Partie AR
ArimaMovingAverage: Partie MA
ArimaPeriodicStructure Un sous modèle

Ces attributs permettent de représenter une équation de cette forme dans l’interface du model.content:

ARIMA
(
{1,-0.601632961198351,0.201226585797145},
0,
{1,-7.75497432751346E-03,1.04690169310278E-02,4.38248091839735E-02}
)

La première ligne désigne la partie AR: la somme est par pas de 1 (jour), et s’exprime par (-0.6*X-1 + 0.2*X-2).
La seconde ligne dit qu’il n’y a pas ici de dimension d’évolution: d=0 on est sur un modèle ARMA.
La troisième enfin définit la partie MA: par pas de 1 et égale à (-7.7e-3E-1 + 1.04e-2E-2 +4.3e-2X-2) .

On trouve ces information dans le MODEL.CONTENT, au niveau sous modèle et fils. Ici une capture des informations d’un sous-modèle:


Ce modèle en notation MS est un ARIMA(2,0,3), p=2, d=0 et q=3.

Comment l’algorithme MTS procède-t-il pour générer cette équation?

Ms Research n’a pas officiellement publié de papier sur cet algorithme et son implémentation, cependant puisqu’il s’inspire de la méthode de Box et Jenkins, on peut citer le formalisme utilisé par ceux ci dans leur papier de 1976.

  1. Transformation de données (stabilisation de variance) et recherche de périodicités par utilisation de la fonction d’auto-corrélation du signal (ACF, RACF)
  2. Détermination des paramètres de chaque sous modèle trouvé ci dessus par un algorithme de la classe EM (Espérance-Maximisation)
  3. Ajustement des constantes, test du modèle. Retour en 2 si besoin.

Et le paramétrage?

Dans BIDS, vous n’avez pas grande latitude de paramétrage « direct ». Sachez cependant que le PERIODICY_HINT est important car il permettra de construire les bons sous-modèles… Attention aussi aux valeurs d’HISTORICAL_MODEL_GAP et _COUNT.

Attention cependant: l’algorithme ARTxp par arbres d’autorégression n’a pas disparu: il est important de noter qu’ARIMA n’est pas très précis sur du court-terme et par défaut MTS utilise conjointement les deux algorithmes selon le type de prédictions réalisées. Les paramètres affectant ce comportement sont:

  • PREDICTION_SMOOTHING (pondération des prédictions par algorithme)
  • FORECAST_METHOD (choix d’un algorithme à forcer)

Pour ce qui concerne les prévisions à long-terme avec ARIMA, voici un résultat sur des données pour lesquels ARTxp 2005 convergeait systématiquement vers l’infini négatif au bout de quelques itérations (et ce peu importe la valeur de COMPLEXITY_PENALTY). Le résultat est je trouve assez étonnant: (en rouge le réel, en bleu la prédiction)

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s