Méthodes de filtrage des données

Filtrer, c'est traiter une chronique pour éliminer tous les phénomènes perturbant qui d'une période à l'autre viennent brouiller le modèle sous-jacent. On filtre une chronique avant de faire les prévisions. Dans le cas d'une chronique saisonnière, on doit d'abord la désaisonnaliser avant de la filtrer. Les deux outils classiques sont la moyenne mobile et le lissage.

Moyenne mobile

La moyenne mobile est l’outil le plus simple pour filtrer une chronique et pour faire des prévisions. La moyenne mobile se définit de la manière suivante :


[math]\overline {y(t)} = \displaystyle\frac{1}{n} \sum_{i = 0}^{n-1} (y(t-i)) [/math]



Elle demande pour la calculer la connaissance des n-1 dernières valeurs de la chronique, plus la valeur courante. La moyenne mobile ignore le passé lointain et donne autant d’importance à chacune des « n » valeurs utilisées.



Prévision :

Dans le cas d’une chronique sans tendance, la moyenne mobile est un estimateur sans biais de la prévision et on a [math]\hat Y (t+i)=\overline {y(t)}[/math].

Si la chronique suit une tendance [math]y(t)= at + b [/math], alors la moyenne mobile des n dernières valeurs induit un biais de [math]\displaystyle\frac {m-1}{2}[/math] et on a : [math]\overline {y(t)} = a \left( t - \displaystyle\frac {m-1}{2} \right ) + b [/math].

Voir la fiche technique Prévisions dans la section des fiches techniques.



Remarque :
On utilise quelque fois la moyenne mobile centrée :


[math]\overline {y(t)} = \displaystyle\frac {1}{2n-1} \sum_{i = -n}^{n} y(t-i)[/math]



Ceci ne change pas trop, sauf que la moyenne mobile centrée n’introduit pas de biais lorsque la chronique suit une tendance, mais en revanche elle n’est pas définie pour les n dernières valeurs de la chronique.

La moyenne mobile d’ordre 2 noté [math] \overline{\overline {y(t)}}[/math] est la moyenne des moyennes :


[math]\overline{\overline {y(t)}}= \displaystyle\frac{1}{n} \sum_{i = 0}^{n-1} \overline{y(t-i)}[/math]



Prévision :

Dans le cas d’une chronique avec tendance, la prévision [math]\hat y (t+i)[/math] peut être obtenue par la courbe

[math] \hat y (t+i)= a*i + b [/math]


avec [math] a=\displaystyle\frac {2}{n-1} \left( \overline{y(t)}-\overline{\overline {y(t)}}\right)[/math] et [math]b= 2\overline{y(t)} - \overline{\overline{y(t)}}[/math]

Voir la fiche technique Prévisions dans la section des fiches techniques.

On peut aussi étudier la chronique [math]\overline{a(t)} = \overline{y(t)} - \overline{y(t-1)} [/math] qui est normalement une chronique constante de moyenne a. On peut prendre la moyenne des k dernières valeurs de a, faire un lissage exponentiel, etc..
Finalement, la prévision sera [math] \hat Y (t+i)= \overline{y(t)}+ a* \left( i+\displaystyle\frac {m-1}{2}\right) [/math]
Voir l'exemple dans le fiche technique Exemple de prévision avec la moyenne


Lissage exponentiel

Le lissage exponentiel permet de filtrer les données en donnant une importance plus importante au passé proche qu’au passé lointain. Le lissage exponentiel de la chronique y(t) est définie par


[math]y'(t)= \alpha \displaystyle \sum_{i = 0}^{\infty} (1- \alpha)^i y(t-i)[/math]


C’est en quelque sorte une moyenne avec des poids variables. En effet, la somme des coefficients vaut 1 puisque :


[math]\displaystyle \sum_{i = 0}^{\infty} (1- \alpha)^i = \displaystyle \frac {1}{ \alpha}[/math]



Plutôt que de mémoriser l’historique complet, on remarque que


[math]y'(t)= \alpha \displaystyle \sum_{i = 0}^{\infty} (1-\alpha)^i y(t-i)=\alpha y(t)+ \displaystyle \sum_{i=1}^{\infty}(1- \alpha)^i y(t-i)[/math]



En sortant le terme en i=0, puis en changeant de variable (j=i-1)


[math]y'(t)= \alpha y(t)+(1- \alpha) \alpha \displaystyle \sum_{i=1}^{\infty} (1- \alpha)^{i-1}y \left( t-1-(i-1) \right) = \alpha y(t)+(1- \alpha) \alpha \displaystyle \sum_{j=0}^{\infty}(1- \alpha)^{j}y \left( t-1-j \right) [/math]


donc
[math]y'(t)= \alpha *y(t)+(1-\alpha)*y'(t-1)[/math]


Le lissage prenant en compte l’historique au complet peut donc être calculé en n’utilisant que deux valeurs, la valeur observée courante de la chronique et la valeur lissée à la période précédente.


Prévision :

Si le modèle sous-jacent est un modèle constant (sans tendance), alors la prévision pour [math] \hat {Y}(t+i)[/math] est Y'(t).

Si le modèle sous-jacent est un modèle avec tendance, alors il faut utiliser le lissage d’ordre deux. En effet, le lissage simple induit un retard de [math]\displaystyle \frac {1- \alpha}{\alpha} [/math]

Voir la fiche technique Prévisions dans la section des fiches techniques.

Le lissage exponentiel d’ordre 2 est noté y’’(t). Il se défini comme le lissage du lissage.


[math]y''(t)= \alpha \displaystyle \sum_{i=0}^{\infty}(1- \alpha)^i y'(i-t)[/math]



Comme pour le lissage d’ordre 1, on remarque que


[math]y''(t)= \alpha y'(t) + (1- \alpha) y''(t)(t-1)[/math]



Avec ce lissage double, il est possible d’effectuer plus de prévisions



Prévision :

Si le modèle est un modèle avec tendance, alors en prenant comme la prévision pour [math]\hat {Y}(t+i)[/math] est

[math]\hat {Y}(t+i)=a(i)+b[/math]


Où [math] a= \displaystyle \frac {\alpha}{1- \alpha} \left( y'(t) - y''(t) \right )[/math] et [math]b=2y'(t) - y'' (t) [/math]

Voir la fiche technique Prévisions dans la section des fiches techniques.

On peut aussi utiliser les écarts entre deux lissage consécutif comme estimateur de a.
Voir aussi pour les prévisions l'exemple dans le fiche technique Exemple de prévision avec le lissage exponentiel

Exemple :

Dans le fichier previsions-lissageexponentiel.xlsx
il y a deux feuilles. Considérons la feuille prévision avec lissage simple.

Partie 1

Le principe de le feuille est de générer aléatoirement une chronique y(t) pour t=1 à t=83. Cette chronique est générée suivant la loi suivante : Y(t)=base+pente+bruit.

En jouant sur les coefficients de la pente ou du bruit, on génère une chronique plus ou moins régulière.

Les colonnes y’(t) et y’’(t) donnent les lissages d’ordre 1 et 2 de la chronique. Les valeurs initiales (pour t=1) sont prise par défaut à y’(1)=y’’(1)=y(1). Évidement, cela ne permet pas de connaitre le passé, mais l’équation mathématique [math] \displaystyle \sum_{i=0}^ \infty \alpha (1- \alpha)^i y(t-i) [/math] n’a pas de sens dans le monde réel, aucune chronique ne comment à [math]- \infty [/math].

Les colonnes a et b donnent les coefficients de la pente tel qu’ils sont calculables à chaque instant.

Par exemple, pour la date t=22, en connaissant seulement les y(t) de 1 à 22, le coefficient calculé est dans la cellule (E26). Le b calculé est dans la cellule (E27). Avec ces deux coefficients, le responsable peut prédire la valeur [math] \hat {y}(23) [/math] qui est dans la cellule (G27).

La colonne H donne les écarts entre cette prévision (faisant l’hypothèse que la chronique suit une tendance) et la réalité. La colonne I, quant à elle, donne l’écart entre le lissage fait en semaine t-1 et la valeur observée en t : c’est donc l’écart entre prévision et observation si on utilise pour la chronique un modèle sans tendance donc [math]\hat {y}(t)=y’(t-1)[/math].

La colonne J représente la prévision qu’on pourrait faire en date de la semaine 52, pour les semaines de 53 à 83. Il faut comprendre qu’évidement, lorsque cette prévision est faite, les valeurs y(t) pour t=53 à 83 sont inconnus.

Question

Faites varier le coefficient alpha de 0.01 à 0.3 et observez ce qui se passe. Pourquoi ces variations?

Faites varier le coefficient de la pente et interpréter.

Partie 2

Regarder la feuille «prevision avec lissage complexe ». Le générateur de chronique est plus complexe, et le phénomène sous jacent est une courbe avec tendance, mais dont la tendance évolue légèrement (sinusoïde) en fonction du temps.

La courbe bleu est la chronique, la rouge est la prévision en utilisant le modèle avec tendance, la verte en utilisant le modèle sans tendance. La courbe verte accuse donc un retard de [math] \displaystyle \frac {(1- \alpha)}{ \alpha} [/math] sur la chronique. Soit si alpha=0.1, un retard de 9 périodes.

1 http://fr.wikipedia.org/wiki/Pr%C3%A9vision_%C3%A9conomique
2 http://en.wikipedia.org/wiki/Focus_group
3 Le coefficient R2 mesure la part de la variance totale de la chronique par la variance de l’approximation, autrement dit c’est la (variance du modèle)/(variance de X(t)). Proche de 1, le modèle explique bien les données.