• Keine Ergebnisse gefunden

Les méthodes de lissage exponentiel

Chapitre 5 : Analyse des séries temporelles sous R :

5.4. Les méthodes de lissage exponentiel

5.4.1. Généralités sur les méthodes de lissages exponentiels

Les méthodes de lissages exponentiels sont une généralisation de la méthode de décomposition par les moyennes mobiles où le poids de chaque observation décroît de manière exponentielle quand elle s’éloigne dans le passé.

On distingue trois grandes familles de méthodes de lissages exponentiels:

− Le lissage exponentiel simple: dans lequel la tendance est ajustée à une constante

− Le lissage exponentiel double: dans lequel la tendance est ajustée à une droite locale

− Et les méthodes de lissage Holt-Winters qui ajustement la tendance à une droite locale tout en contrôlant les saisonnalités et les irrégularités de la série.

Sous R, les méthodes de lissage exponentiels se mettent en œuvre la fonction HoltWinters().

On peut aussi utiliser les fonctions disponibles dans le package « forecast ». Mais ces fonctions ne sont pas présentées ici.

5.4.2. Le lissage exponentiel simple LES

Le LES sert à lisser une série ayant une tendance localement constante en utilisant la méthode des moyennes mobiles attribuant des pondérations de plus en plus faibles aux observations les plus éloignées.

NB: Il arrive aussi d’attribuer des pondérations plus faibles aux observations récentes et des pondérables plus élevées aux valeurs éloignées. Tout dépend, en fait du choix de paramètre de lissage (Cf. théorie).

Exemple: Série econso, consommation d’énergie aux USA entre Mai 1990 et Mai 2008

Considérons la série econso préalablement scindé en lsample et vsample.

Les étapes de mise en œuvre du LES sont présentées ci-dessous:

les <-

HoltWinters(lsample$econso,alpha=NULL,beta=FALSE,gamma=FALSE)

# Lissage avec détermination automatique des valeurs optimales des paramètres de lissage

print(les)

econsoFit<-les$fitted[,1] # Récupère la série lissée Visualisation de la série lissée:

183 graphics.off(); x11() ;par(mfrow=c(2,1))

plot(lsample$trend,lsample$econso, type="l", xlim=c(min(lsample$trend), max(lsample$trend)), lwd=1.8, main="Série brute") # valeurs observées

plot(lsample$trend[1:length(econsoFit)],econsoFit,

type="l",col="red", xlim=c(min(lsample$trend), max(lsample$trend)), lwd=1.8 , main="Série lissée par L.E.S")

# valeurs lissées

Prévision de la série lissée

Contrairement aux fonctions filter() et decompose(), il existe une fonction predict() associée à la fonction HoltWinters() qui permet de réaliser directement les prévisions sur un horizon bien défini.

L’exemple ci-dessous réalise une prévision sur un horizon égal à la dimension de l’échantillon de validation vsample afin de faire des comparaisons avec les valeurs brutes observées:

econsoPred<-predict(les,n.ahead=nrow(vsample),prediction.interval=FALSE) # Effectue la prévision

Visualisation de la série prévue : graphics.off(); x11() ;

plot(vsample$trend,vsample$econso, type="l", xlim=c(min(vsample$trend), max(vsample$trend)), lwd=1.8) # valeurs observées

184 lines(vsample$trend[1:length(econsoPred)],econsoPred,col="red"

,xlim=c(min(vsample$trend), max(vsample$trend)), lwd=1.8 ) # valeurs lissées prévues

legend(x=2006.8,y=7900,legend=c("Série brute observée","Série lissée prévue"),fill=c("black", "red"))

5.4.3. Le lissage exponentiel double LED

Le LED est utilisé lorsque la tendance de la série peut être localement ajustée par une droite. Tout comme dans le LES, le LED réalise un lissage par les moyennes mobiles attribuant des pondérations à croissance (décroissance) exponentielle. Sa mise en œuvre nécessite également le choix des paramètres de lissage.

Exemple: Série econso, consommation d’énergie aux USA entre Mai 1990 et Mai 2008

Les étapes de mise en œuvre du LED sont présentées ci-dessous:

led <-

HoltWinters(lsample$econso,alpha=NULL,beta=NULL,gamma=FALSE) # Lissage avec détermination automatique des paramètres optimaux print(led)

econsoFit<-led$fitted[,1] # la série lissée Visualisation de la série lissée:

graphics.off(); x11() ;par(mfrow=c(2,1))

plot(lsample$trend,lsample$econso, type="l", xlim=c(min(lsample$trend), max(lsample$trend)), lwd=1.8, main="Série brute") # valeurs observées

185 plot(lsample$trend[1:length(econsoFit)],econsoFit,

type="l",col="red", xlim=c(min(lsample$trend), max(lsample$trend)), lwd=1.8 , main="Série lissée par L.E.D")

# valeurs lissées

Prévision de la série lissée

La prévision à la suite d’un LED se fait comme la prévision après un LES en utilisant la fonction predict() avec l’horizon de prévision fixé.

Dans l’exemple suivant, on réalise une prévision sur un horizon égal à la dimension de l’échantillon de validation vsample afin de comparer les valeurs prévues avec les valeurs brutes observées:

econsoPred<-predict(led,n.ahead=nrow(vsample),prediction.interval=FALSE) # Effectue la prévision

Visualisation de la série prévue : graphics.off(); x11()

plot(vsample$trend,vsample$econso, type="l", xlim=c(min(vsample$trend), max(vsample$trend)), lwd=1.8) # valeurs observées

lines(vsample$trend[1:length(econsoPred)],econsoPred,col="red"

,xlim=c(min(vsample$trend), max(vsample$trend)), lwd=1.8 ) # valeurs lissées prévues

legend(x=2006.8,y=7900,legend=c("Série brute observée","Série lissée prévue"),fill=c("black", "red"))

186

5.4.4. Le lissage exponentiel Holt-Winters HW

La méthode de lissage Holt-Winters est utilisée lorsque la série présente non seulement une tendance (localement ajustable par une droite) mais aussi une saisonnalité (de type additive ou multiplicative). Il existe toutefois une version du HW sur les séries sans saisonnalité. Il s’agit dans ce cas de l’estimateur Holt qui est très proche de la méthode LED.

Exemples d’application de la méthode HW:

Cas d’une série avec saisonnalité additive: Série econso, consommation d’énergie aux USA entre Mai 1990 et Mai 2008

econso<- ts(data = lsample$econso,start = c(1990, 05), end = c(2003,11), frequency = 12)

hwAd <- HoltWinters(econso,alpha=NULL,beta=NULL,gamma=NULL, seasonal='add') # détermination automatique des paramètres optimaux.

print(hwAd)

Pour une série avec saisonnalité multiplicative, indiquer simplement: seasonal='multi' Visualisation de la série lissée:

graphics.off(); x11() ;par(mfrow=c(2,1))

plot(lsample$trend,lsample$econso, type="l", xlim=c(min(lsample$trend), max(lsample$trend)), lwd=1.8, main="Série brute") # valeurs observées

plot(lsample$trend[1:length(econsoFit)],econsoFit,

type="l",col="red", xlim=c(min(lsample$trend),

187 max(lsample$trend)), lwd=1.8 , main="Série lissée par HW additif") # valeurs lissées

Prévision de la série lissée

La prévision à la suite d’un HW se fait comme dans le cas d’un LES ou d’un LED en utilisant la fonction predict() avec l’horizon de prévision fixé.

Dans l’exemple suivant, on réalise une prévision sur un horizon égal à la dimension de l’échantillon de validation vsample afin de comparer les valeurs prévues avec les valeurs brutes observées:

econsoPred<-predict(hwAd,n.ahead=nrow(vsample),prediction.interval=FALSE) Visualisation de la série prévue :

graphics.off(); x11() ;

plot(vsample$trend,vsample$econso, type="l", xlim=c(min(vsample$trend), max(vsample$trend)), lwd=1.8) # valeurs observées

lines(vsample$trend[1:length(econsoPred)],econsoPred,col="red"

,xlim=c(min(vsample$trend), max(vsample$trend)), lwd=1.8 ) # valeurs lissées prévues

legend(x=2006.8,y=7900,legend=c("Série brute observée","Série lissée prévue"),fill=c("black", "red"))

188

5.5. Les modélisations stochastiques