ANALYSE DESCRIPTIVE DES SERIES TEMPORELLES
Sié Rachid Traoré
Ingénieur Statisticien Economiste
$\mbox{https://github.com/JODRAFF9}$
# Définition des paramètres de la fenêtre graphique
options(repr.plot.width = 6, repr.plot.height = 6)
Chapitre 1: GENERALITES SUR LES SERIES TEMPORELLES
Les statisticiens sont souvent appelés à analyser des phénomènes passés et d'en déduire un comportement futur aussi réaliste que possible. En quoi une telle prévision est-elle importante ?
La réponse à cette question se mesure par l'importance des domaines d'application des séries temporelles, lesquels sont nombreux. En effet, en démographie, le suivi de l'évolution de la population d'un pays est un exercice courant dans les Instituts nationaux de Statistique (INS), et la prévision de l'évolution de la population est très déterminant dans les politiques publiques.
Aussi, en économie, il est possible de connaître la demande de consommation d'un bien dans le futur, aux moyens des niveaux de consommation passés et présent. Célà est utile aux entreprises pour ajuster leurs nouvelles productions.
De même, en suivant le potentiel écologique d'une forêt, d'une savane, etc., il est possible de prévenir une désertification, et en temps utile, de recommander des politiques de reboisements.
Par ailleurs, le domaine du marketing offre de nombreux défis en ce qui concerne la prévision de la clientèle, l'évolution des parts de marché etc.
Il y a aussi le domaine de la finance avec le suivi du cours d’une action au niveau des marchés boursiers qui constitue un important champs d'application des séries temporelles.
Introduction
Une série temporelle est le résultat d'un phénomène aléatoire suivi dans le temps. Chaque valeur du processus est identifiée à un moment précis et par interval régulier.
1. Définition d'une série temporelle
Par définition, une série temporelle (ou série chronologique) est une suite réel à valeurs finies indéxée par le temps $(X_t)_{t \in \mathbb{N}}$. Le temps $t$ peut correspondre à la seconde, à la minute, à l'heure, au jour, à la semaine, au mois, au trimestre, au semestre ou encore à l'année.
2. Les objectifs de l'analyse des séries temporelles
Les séries temporelles sont étudiées principalement dans le but de comprendre un phénomène au cours du temps (passé et présent) afin de prédir son comportement dans le futur. La comprehension dudit procéssus consiste à trouver une struture expliquant le phénomène dans sa forme maitrisable. Il sera question de déceler la présence d'une tendance et d'une saisonnalité pour mener à bien la prévision.
3. Période et notation d'une série temporelle
Soit la série temporelle définie par : $(X_{t_1}, X_{t_2}, X_{t_3}, X_{t_4}, ..., X_{t_n})$
$\tau = t_{i+1}-t_i$ est la période de la série;
$L = t_n - t_1 +1$ est la longueur de la série.
La représentation avec un seul indice est la plus courante (comme illustré précédemment). Une notation à plusieurs indices est possible dans le cas des séries infra-annuelles. Par exemple,
$(X_{i,j}),~~$ $i$ = années et $j$ = trimestre (j = 1, 2, 3, 4).
La valeur de la série au troisième trimestre de la première année est $X_{1,3}$. Et celle au deuxième trimestre de la cinquième année est $X_{5,2}$.
Une notation avec un seul indice peut se déduire de la double notation suivant la relation ci-après: $$X_{i,j} = X_{4*(i-1) + j}~~~~~~~~(1)$$ avec $i \in \mathbb{N}$*.
La notation à plusieurs indice peut devenir complexe et pas nécessairement utile pour l'analyse: par exemple $(X_{i,j,k}),~~$ avec i = année, j = trimestre, k = jours.
I. Exemples de séries temporelles
Nous allons presenter des exemples de séries annuelle, trimestrielle, mensuelle etc.
1. Exemple de série temporelle annuelle
Notons par $(P_n)_{n \in \mathbb{N}^*}$ la série de la population du Sénégal de 2008 $(P_1)$ à 2020. Tableau 1: Population totale du Senegal
NB: Les données sont téléchargeable sur https://github.com/IbrahimaTall dans le dossier ENSAE-Training-Courses et sur la feuille excel POPAN.
| Dates | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Population | 12,0 | 12,3 | 12,6 | 13,0 | 13,4 | 13,7 | 14,1 | 14,5 | 14,9 | 15,4 | 15,8 | 16,2 | 16,7 |
2. Exemple de série temporelle trimestrielle
Soit $(Y_t)_{t\in \mathbb{N}^*}$ le Produit Inétieur Brut (PIB) du Sénégal avec $t$ correspondant au trimestre et $Y_1$ le PIB en premier trimestre de 2014.
Tableau 2: PIB trimestriel du Sénégal
| Dates | 2014Q1 | 2014Q2 | 2014Q3 | 2014Q4 | 2015Q1 | 2015Q2 | 2015Q3 | 2015Q4 | 2016Q1 | 2016Q2 |
|---|---|---|---|---|---|---|---|---|---|---|
| PIB | 1346,7 | 1333,9 | 1315,6 | 1603,1 | 1421,2 | 1395,0 | 1386,4 | 1761,7 | 1512,5 | 1473,9 |
3. Exemple de série temporelle mensuelle
On s'intéresse à l'indice des prix à la consommation (IPC) de janvier 2009 à décembre 2015: $(X_t)_{t\in \mathbb{N}^*}$, avec $t$ représentant le mois. Tableau 3: Indice des Prix à la Consommation (IPC)
| Dates | Janvier | Février | Mars | Avril | Mai | Juin | Juillet | Août | Septembre | Octobre | Novembre | Décembre |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 | 98.5 | 98.4 | 98.4 | 97.8 | 96.8 | 96.1 | 96.6 | 97.8 | 98 | 99.1 | 98.3 | 97.1 |
| 2010 | 97.8 | 97.8 | 97.7 | 96.8 | 96.4 | 97.4 | 98.9 | 100 | 100.9 | 101.4 | 101.1 | 101.3 |
| 2011 | 101.8 | 101.4 | 100.8 | 100.9 | 101.2 | 101.6 | 102 | 102.7 | 103.6 | 104.1 | 103.8 | 104 |
| 2012 | 103.3 | 103.6 | 103.6 | 103 | 101.8 | 101.8 | 102.3 | 103.8 | 104.9 | 106.1 | 105.9 | 105.2 |
| 2013 | 104 | 103.9 | 103.4 | 103.3 | 103 | 102.5 | 103.4 | 105.1 | 106 | 107.5 | 106.8 | 105.1 |
| 2014 | 104.8 | 103.4 | 102.9 | 102.2 | 101.3 | 101.3 | 102 | 103.8 | 104.6 | 105.4 | 104.4 | 104.3 |
| 2015 | 102.3 | 102.1 | 101.6 | 101.6 | 101.9 | 102.1 | 103.3 | 103.9 | 105.4 | 107.4 | 106 | 104.7 |
II. Représentation d'une série temporelle
La réprésentation d'une série temporelle se fait sous la forme matricielle ou par la représentation graphique.
1. Forme matricielle d'une série temporelle
Soit la série de l'Indice Humain de Développement du Sénégal. La représentation matricielle de cette série est donnée par le tableau suivant:
Tableau 4: Indice de Développement Humain du Sénégal
| Dates | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| IDH | 0.42 | 0.43 | 0.44 | 0.45 | 0.45 | 0.46 | 0.47 | 0.48 | 0.48 | 0.49 | 0.49 | 0.5 | 0.51 |
NB: Dans le cas d'une double indexation, il est d'usage de représenter la série sous forme de matrice en mettant l'une des indices en ligne et l'autre en colonne (Cf Tableau 3). Par exemple, le PIB trimestriel peut être représenté comme suit:
Tableau 5: PIB trimestriel du Senegal (sous forme de tableau)
| Années\Trimestres | Trimestre1 | Trimestre2 | Trimestre3 | Trimestre4 |
|---|---|---|---|---|
| 2014 | 1346,70 | 1333,90 | 1315,60 | 1603,10 |
| 2015 | 1421,20 | 1395,00 | 1386,40 | 1761,70 |
| 2016 | 1512,50 | 1473,90 |
2. Représentation graphique d'une série temporelle
La représentation graphique d'une série temporelle $(X_t)_{t\in \mathbb{N}}$ est la courbe représentative de la fonction f définie par: $$ f: T \longrightarrow \mathbb{R} $$
$$t \longrightarrow f(t) = X_t$$ $O\grave{u}$ $T$ est l'ensemble temps. La figure suivante illutre l'évolution de la série de l'IPC sur la periode 2009-2019.

Dans le cas d'une notation à double indexe, il est possible de faire une représentation par période afin de voir les variations sur une même période. Par exemple, la figure ci-desous, permet de voir les variations du nombre de touristes arrivés à l'aéroport LSS sur la période de 2008 à 2012. Mais ce type de représentation ne permet pas de voir l'évolution complète de la série.

III. Caractéristiques des séries temporelles
Une série est caractérisée par un ensemble d'indices descriptifs qui résument la série.
1. Moyenne empirique d'une série
La moyenne empirique d'une série temporelle est donnée par : $$\bar{X}_T =\frac{1}{T}\sum_{t=1}^{T} X_t ~~~~~~~~(2)$$
2. Auto-covariance empirique d'une série
L'auto-covariance empirique d'une série temporelle est donnée par: $$\hat{\gamma}_T(h) = \frac{1}{T}\sum_{t=1}^{T-h}(X_t - \bar{X}_T)(X_{t+h}-\bar{X}_T)~~~~~~~~~~(3)$$
Le cas h = 0 correspondant à la variance empirique.
3. Auto-corrélation empirique d'une série
L'auto corrélation empirique d'une série est définie par: $$\hat{\rho}_T(h) = \frac{\hat{\gamma}_T(h)}{\hat{\gamma}_T(0)} ~~~~~~~~~~~~~~(4)$$
IV. Composantes (tendance, saisonnalité, résidus)
La composition d'une série temporelle peut être étudiée en suivant son évolution. Pour certaines séries temporelles, il est constaté une stabilité autour de la moyenne, on dit alors que la série est stationnaire (autour de sa moyenne). Par ailleurs, d'autres séries présentent une moyenne non constante qui suit une tendance . La saisonnalité est la reproduction d'un phénomène à des périodes réguilières.
1. Tendance d'une série temporelle
Formellement, la tendance est la partie de la série qui, à une erreur $\epsilon$ près, s'écrit comme une combinaison linéaire finie de fonctions prédéfinies (logarithme, polynômes, exponentiel, etc.): $$Z_t = \sum_{i=1}^{K}\alpha_i f_i(t) + \epsilon_t ~~~~~~~~~~~~~~(5)$$ Lorsque $Z_t = \alpha + \beta t + \epsilon_t$, on dit que la tendance est linéaire. Une tendance logarithmique est donnée par: $Z_t = \alpha + log(t) + \epsilon_t$. Une tendance polynomiale est de la forme: $Z_t = \alpha_0 + \alpha_1 t + \alpha_2 t^2 + ... + \alpha_p t^p + \epsilon_t$.
2. Saisonnalité d'une série temporelle
La composante saisonnière (ou composante périodique) est la partie de la série définie par: $$ S_t = \phi (t) + \epsilon_t ~~~~~~~~~~~~~~(6)$$ avec $\phi (t+T) = \phi (t)$.
$T$ est alors la période de la série temporelle.
3. Composante aléatoire d'une série temporelle
La composante aléatoire (ou bruit) est la partie de la série qui reste après extraction de la tendance et de la saisonnalité. C'est une variable aléatoire dont l'analyse fait appel à des modèles de type SARIMA et qui ne sera pas étudiée dans ce cours.
V. Schémas d'une série temporelle
L'étude d'une série temporelle nécessite la détermination du schémas qui décrit le comportement de ladite série. Il s'agit de modéliser la série à l'aide d'une function simple et avec une faible erreur de modélisation.
1. Modèle additif et multiplicatif
En partique, il se distingue deux schémas: les modèles additif et multiplicatif.
Le modèle additif se présente sous la forme suivante: $$ X_t = Z_t + S_t + \epsilon_t ~~~~~~~~~~~~~~(7)$$
Le modèle multiplicatif se présente sous la forme suivante: $$ X_t = Z_t S_t \epsilon_t ~~~~~~~~~~~~~~(8)$$ NB: Remarquez qu'il est possible de ramener un modèle multiplicatif en un schémas additif par transformation logarithmique: $$ log(X_t) = log(Z_t) + log(S_t) + log(\epsilon_t) ~~~~~~~~~~~~~~(9)$$ Et en posant: $$Y_t = log(X_t),~~ W_t = log(Z_t),~~ P_t = log(S_t) ~~et~~ \psi_t = log(\epsilon_t)$$ alors la série obtenue devient: $$ Y_t = W_t + P_t + \psi_t ~~~~~~~~~~~~~~(10)$$
Remarque: Une série temporelle peut présenter une combinaison des deux modèles additif et multiplicatif: on parle de modèle mixte. Le modele mixte peut se presenter sous les formes suivantes: $$ X_t = Z_t S_t + \epsilon_t ~~~~~~~~~~~~~~(11)$$ $$ X_t = (Z_t + S_t) \epsilon_t ~~~~~~~~~~~~~~(12)$$
2. Choix du type de modèle
Dans la recherche du schémas d'une série temporelle, il est question de savoir si la composante saisonnière:
- s'ajoute simplement à la tendance (schémas additif);
- est proportionnelle à la tendance (schémas multiplication).
Il existe deux approches pour déterminer le schémas: graphique et analytique. Nous allons illustrer ces deux téchniques à travers des exemples sur le logiciel R téléchargeable sur https://cran.r-project.org/. Ce logiciel est en général utilisé via l'environnement de développement Intégré Rstudio.
Pour comprendre la différence entre R et Rstudio, considérons les deux images suivante:

Le moteur est une composante indispensable de la voiture et le tableau de board en facilite l'utilisation.
Rstudio est pour R ce le tableau de bord est pour le moteur de la voiture.
L'utilisation de R appelle à installer des packages et à inclure des librairies. Un package est comparable à une application sur un Smartphone. Les packages (resp applications) sont, pour la plupart, disponibles sur https://cran.r-project.org (resp PlaySore). L'installation des packages dans se fait via la fonction install.packages() et leurs utilisation se fait avec la fonction library().
- installation: install.packages(tseries, readxl, stats, tidyverse)
- utilisation des packages:
- library(tseries);
- library(readxl);
- library(stats);
- library(tidyverse).
- library(tseries);
Une série temporelle dans R est définie à l'aide de la fonction ts(vect, start, end, frequency), en indiquant les quatre principaux arguments.
| Nom de l'argument | Explication de l'utilité de l'argument | Exemples de valeurs |
|---|---|---|
| vect | les vecteurs de données | x <- 1:100:3 |
| start | la date de début | start = c(1960,1) |
| end | la date de fin | end = c(2020,3) |
| frequency | la fréquence de la série | frequency = 1 |
a) Méthode graphique de détermination du schémas
La représentation graphique de la série temporelle peut nous orienter sur le choix du schémas. Deux téchniques sont utilisées: la méthode du profil et celle de la bande.
Description de la méthode du profil:
La méthode du profil est applicable pour les séries infra-annuelles. Elle consiste à représenter la série en différentes courbes pour chaque année en superposant les saisons sur une même graphique. Le modèle additif sera adopté si les courbes sont parallèles entre les périodes. Dans le cas contraire, le modèle est multiplicatif.
Exemple
Considérons la série de l'IPC présentée plus haut. La représetation graphique de la série de l'IPC par année et sur les douze mois est illustrée sur la figure 3.
Il apparait que des courbes se croisent entre certaines dates: le modèle est donc multiplicatif.
Description de la méthode de la bande:
Le modèle est additif lorsque les droites des minima et des maxima sont parallèles.
Exemple: Considérons la série de l'IPC présentée sur la figure 1.
Les droites de la bande ne sont pas parallèles: le modèle est multiplicatif.
b). Méthode analytique de détermination du schémas
Les moyennes et les écarts-types sont calculés pour chacune des périodes considérées puis la droite des moindres carrés déterminée: $$\sigma = a\bar{x} + b ~~~~~~~~~~~~~~(11)$$ Si $a$ est nul, le modèle est additif, sinon il est multiplicatif.
Exemples pratique dans R
# Définir le fuseau horaire, nécessaire pour le bon chargement des packages
Sys.setenv(TZ = "UTC")
# Appel de librarie readxl pour importer des bases au format Excel
library(readxl)
# Lecteur de la base au moyen de la fonction read_xlsx().
base <- read_xlsx("TimeSeries.xlsx", sheet = "IPCAN")
# On utilise les fonctions head() ou tail() pour afficher les premières ou dernières observations de la base
head(base, 5)
tail(base, 4)
# Calcul de a de la formule (11): C'est le coéfficient de corrélation en
model <- lm(ecat_types~moyennes, data = base)
# Description des résultats du modèle
summary(model)
Call:
lm(formula = ecat_types ~ moyennes, data = base)
Residuals:
Min 1Q Median 3Q Max
-1.00234 -0.14268 0.07287 0.29123 0.53819
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.64675 5.77854 0.631 0.544
moyennes -0.02159 0.05587 -0.386 0.708
Residual standard error: 0.5001 on 9 degrees of freedom
Multiple R-squared: 0.01631, Adjusted R-squared: -0.09298
F-statistic: 0.1493 on 1 and 9 DF, p-value: 0.7082
La valeur du coéfficient est $ a = -0.02159$. La valeur de la $p-value$ nous indique de la nullité ou non de $a$. Ainsi une marge d'erreur inférieur ou égal à 5% (0,05) est le seuil usuel. Cela signifie que dans mois de 5 cas sur 100 (donc dans plus de 95 cas sur 100) le coéfficiant est nul (resp non nul). Le résultat ci-haut affiche une p-valeur de 0,7 soit 70 cas sur 100 d'avoir un coéfficient nul (ce qui est énorme car il devrait y avoir seulement mois de 5 cas sur 100 d'avoir un coéfficient nul pour que celui-ci soit statistiquement non nul): donc ce coéfficient est statistiquement nul (non significatif).
Le modèle sera multiplicatif si le coéfficient $a$ est significatif (c'est-à-dire si $p-value < 0.05$).
VI. Etapes d'étude d'une série temporelle
L'étude d'une série temporelle implique une démarche cohérente, dont les étapes sont:
- Correction des données (valeurs manquantes, découpage, centrage/réduction etc.);
- choix du schémas de la série;
- Analyse des composantes de la série (partie déterministe);
- Prévision.
VII. Exercice d'application: détermination du schémas d'une série temporelle avec R
Dans cette partie, il sera utilisé deux bases de données disponibles dans R. La première, USAccDeaths, est une série mensuelle portant sur le nombre de morts par accident au Etats-Unis d'Amérique de 1973 à 1978. La deuxième dase, AirPassengers , est aussi une série mensuelle et elle indique le nombre de passagers dans les vols internationaux entre 1949 et 1960. Pour chacune de ces bases:
- Affichez les cinq premières observations
- Identifiez le modèle de la série en utilisant le profil, la bande et l'analytique.
- Déterminez le modèle final retenu pour chaque série.
Solution de l'exercice d'application
################# 0. CHARGEMENT DES PACKAGES #####################################################################
# Chargement des packages: manipulation de données (dplyr) et (tidyr) et bases de données (datasets)
library(dplyr)
library(tidyr)
library(datasets)
1. Affichez les cinq premières observations
################# 1. AFFICHEZ LES CINQ PREMIERES OBSERVATIONS #######################################################
# Affichage des premierès valeurs
head(AirPassengers, 3)
- 112
- 118
- 132
2. Identifiez le modèle de la série en utilisant le profil, la bande et l'analytique
################# 2. IDENTIFIEZ LE MODEL DE LA SERIE EN UTILISANT LE PROFIL, LA BANDE ET L'ANALYTIQUE ###############
# Recupération de la série des données comme vecteur via la fonction as.vector()
passagers <- as.vector(AirPassengers)
# Recuperation du temps comme vecteur via la fonction time()
temp <- as.vector(time(AirPassengers))
head(temp)
- 1949
- 1949.08333333333
- 1949.16666666667
- 1949.25
- 1949.33333333333
- 1949.41666666667
Le temps apparait comme un vecteur de décimaux (le point indique le décimal en anglais). La partie décimale marque le pas de temps: $\frac{1}{12}$ pour le mois, $\frac{1}{4}$ pour le trimestre etc. Par exemple, janvier 1949 est representé par le décimal 1949 = 1949.000, février 1949 par 1949.083 où la partie décimale est le pas mensuel: $\frac{1}{12} = 0.083$. Le mois de mars 1949 est représenté par 1949.167 où la partie décimale reprsente deux fois le pas mensuel: $\frac{2}{12} = 0.167$. Ainsi, pour le mois $i$ la partie décimale est données par $\frac{i-1}{12}$ pour $i \in \{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11\}$. Et pour le trimestre ce sera: $\frac{i-1}{4}$ pour $i \in \{0, 1, 2, 3\}$ etc.
# Creation de la variable années comme partie entière (fonction trunc()) du vecteur temp définie précédemment
years = trunc(temp)
# Combinaison (via la fonction cbind()) du vecteur
# des donnees, du mois et de l'annees en data.frame
BaseAirPassengers <- as.data.frame(cbind(years,
passagers))
# Affichage des premiers observations
head(BaseAirPassengers, 3)
| years | passagers |
|---|---|
| 1949 | 112 |
| 1949 | 118 |
| 1949 | 132 |
# Creation de la variable mois: désignée ici par: mouth correspondant au numero de ligne par
# groupe d'annee
BaseAirPassengers <- BaseAirPassengers %>%
group_by(years) %>%
mutate(mouth = row_number())
# Regard sur la nouvelle base apres creation de
# l'indice des mois
head(BaseAirPassengers, 3)
| years | passagers | mouth |
|---|---|---|
| 1949 | 112 | 1 |
| 1949 | 118 | 2 |
| 1949 | 132 | 3 |
# Ecriture de la base sous forme de matrice: anneé en colonne mois en ligne
matrice <- BaseAirPassengers %>%
spread(years, passagers)
# Regard sur les donnees sous forme matricielle
head(matrice, 3)
| mouth | 1949 | 1950 | 1951 | 1952 | 1953 | 1954 | 1955 | 1956 | 1957 | 1958 | 1959 | 1960 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 112 | 115 | 145 | 171 | 196 | 204 | 242 | 284 | 315 | 340 | 360 | 417 |
| 2 | 118 | 126 | 150 | 180 | 196 | 188 | 233 | 277 | 301 | 318 | 342 | 391 |
| 3 | 132 | 141 | 178 | 193 | 236 | 235 | 267 | 317 | 356 | 362 | 406 | 419 |
# Changement de nom des variables en mettant p (passagers) devant les annees
names(matrice) <- c("mouth", "p49", "p50", "p51", "p52", "p53", "p54", "p55", "p56", "p57", "p58", "p59", "p60")
# Regard sur les donnees sous forme matricielle avec les changements de noms
head(matrice, 3)
| mouth | p49 | p50 | p51 | p52 | p53 | p54 | p55 | p56 | p57 | p58 | p59 | p60 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 112 | 115 | 145 | 171 | 196 | 204 | 242 | 284 | 315 | 340 | 360 | 417 |
| 2 | 118 | 126 | 150 | 180 | 196 | 188 | 233 | 277 | 301 | 318 | 342 | 391 |
| 3 | 132 | 141 | 178 | 193 | 236 | 235 | 267 | 317 | 356 | 362 | 406 | 419 |
summary(BaseAirPassengers$passagers)
# Donc pour le graphique les valeurs de y seront limitees entre 104 et 622 (min = 104, max = 622)
Min. 1st Qu. Median Mean 3rd Qu. Max. 104.0 180.0 265.5 280.3 360.5 622.0
################################# Méthode du profil
# Afficher la série de chaque année sur les 12 mois (0 à 11)
plot(matrice$mouth, matrice$p49, type = "l", xlab = "Mois", ylab = "Passagers", ylim = c(104, 622), col = "red")+
lines(matrice$mouth, matrice$p50, type = "l", col = "yellow")+
lines(matrice$mouth, matrice$p51, type = "l", col = "yellowgreen")+
lines(matrice$mouth, matrice$p52, type = "l", col = "blue")+
lines(matrice$mouth, matrice$p53, type = "l", col = "black")+
lines(matrice$mouth, matrice$p54, type = "l", col = "burlywood4")+
lines(matrice$mouth, matrice$p55, type = "l", col = "darkmagenta")+
lines(matrice$mouth, matrice$p56, type = "l", col = "darkslateblue")+
lines(matrice$mouth, matrice$p57, type = "l", col = "lightpink")+
lines(matrice$mouth, matrice$p58, type = "l", col = "yellow3")+
lines(matrice$mouth, matrice$p59, type = "l", col = "tan1")+
lines(matrice$mouth, matrice$p60, type = "l", col = "springgreen")
legend("topleft", c("1949","1950","1951","1952","1953","1954","1955","1956","1957","1958","1959","1960"), cex = 0.8,
text.width = 1.5, col = c("red", "yellow", "yellowgreen", "blue", "black", "burlywood4", "darkmagenta",
"darkslateblue", "lightpink", "yellow3", "tan1", "springgreen"), ncol = 2, lty = c(1,1))
################################# Méthode de la bande
# Affichage de la série AirPassengers pour voir comment traçer les deux droites des minima et maxima
plot(AirPassengers)
La droite des maxima peut être traçée en prenant le point maximum de 1949 et celui de 1960. La droite des minima peut être traçée en prenant le point minimum de 1950 et celui de 1953. Les valeurs de ces points vont être calculées.
BaseAirPassengers %>%
group_by(years) %>%
summarise(min = min(passagers),
max = max(passagers))
| years | min | max |
|---|---|---|
| 1949 | 104 | 148 |
| 1950 | 114 | 170 |
| 1951 | 145 | 199 |
| 1952 | 171 | 242 |
| 1953 | 180 | 272 |
| 1954 | 188 | 302 |
| 1955 | 233 | 364 |
| 1956 | 271 | 413 |
| 1957 | 301 | 467 |
| 1958 | 310 | 505 |
| 1959 | 342 | 559 |
| 1960 | 390 | 622 |
# Le max en 1949 = 148; max en 1960 = 622
# et min en 1950 = 114 et min en
BaseAirPassengers %>%
subset(passagers %in% c(148, 622, 114, 180),
selected = c(years, mouth, passagers))
| years | passagers | mouth |
|---|---|---|
| 1949 | 148 | 7 |
| 1949 | 148 | 8 |
| 1950 | 114 | 11 |
| 1952 | 180 | 2 |
| 1953 | 180 | 11 |
| 1960 | 622 | 7 |
# Définition une fonction qui calcule l'ordonnée de x via la droite passant par a = c(xa, ya) et b = c(xb, yb)
ordonnee <- function(x, a = c(0, 0), b = c(1, 1)){
return(x*(a[2]-b[2])/(a[1]-b[1]) + (a[1]*b[2]-b[1]*a[2])/(a[1]-b[1]))
}
# Les ordonnées des droites minima et maxima
y_max = ordonnee(temp, c(1949+6/12, 148), c(1960+6/12, 622))
y_min = ordonnee(temp, c(1950+10/12, 114), c(1953+10/12, 180))
# Ici on affiche la série elle-meme (AirPassengers) Pour savoir comment traçer les deux droites des minima et maxima
plot(AirPassengers) + lines(temp, y_max, col = "red") + lines(temp, y_min, col = "red")
################################# Méthode analytique
# Nouvelle base avec moyenne et ecart-type par annees
MinMaxBase <- BaseAirPassengers %>%
group_by(years) %>%
summarise(passagers_mean = mean(passagers),
passagers_sd = sd(passagers))
# Affichissage de la base constituee de la moyenne et de l'ecart-type par an
head(MinMaxBase, 3)
| years | passagers_mean | passagers_sd |
|---|---|---|
| 1949 | 126.6667 | 13.72015 |
| 1950 | 139.6667 | 19.07084 |
| 1951 | 170.1667 | 18.43827 |
# Description de la regression lineaire de l'ecart-type sur la moyenne
summary(lm(passagers_sd~passagers_mean, data = MinMaxBase))
Call:
lm(formula = passagers_sd ~ passagers_mean, data = MinMaxBase)
Residuals:
Min 1Q Median 3Q Max
-2.7872 -2.3326 -0.1083 1.2405 4.1311
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -11.403254 1.982789 -5.751 0.000185 ***
passagers_mean 0.188613 0.006577 28.676 6.19e-11 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.528 on 10 degrees of freedom
Multiple R-squared: 0.988, Adjusted R-squared: 0.9868
F-statistic: 822.3 on 1 and 10 DF, p-value: 6.192e-11
3. Déterminez le modèle final retenu pour chaque série
La méthode du profil affiche des courbes qui s'entre coupent: le modèle est donc multiplicatif selon la méthode du profil. La méthode de la bande montre des droites de minima et maxima qui sont sécantes : le modèle peut être considéré comme multiplicatif selon la méthode de la bande. La méthode analytique affiche un coéficient $a = 0.188 $ et p-value = 6.192 x $10^{-11}$: donc $a$ est significatif à $95\%$ : le modèle est donc multiplicatif selon la méthode analytique.
En définitive, la série est donc multiplicatif.
Chapitre 2: METHODES D'AJUSTEMENT DE LA TENDANCE
Une série temporelle est le résultat d'un phénomène survenu dans le temps, dont le comportement peut être simplifié sous la forme suivante: $$x_t = f(t,\epsilon_t) ~~~~~~~~~~~~~~(12)$$ Avec $\epsilon_t$ une variable aléatoire.
Il existe plusieurs méthodes d'estimation de $f$. Certaines d'entre elles font intervenir des procédures qui donnent la même importance aux valeurs de la série sur toute la période (ajustement global) alors que d'autres accordent plus d'importance aux valeurs proches de la période courantes (ajustement local).
I. Ajustement global ¶
Les méthodes d'ajustement globales sont nombreuses. Parmi elles: les moindres carrées, les points médians, l'approche non linéaire et la méthodes non paramétrique.
1. Moindre carré ordinaire
La méthode des moindres carrés consiste à estmer la tendence sous une forme linéaire: $$Z_t = \alpha + \beta t + \epsilon ~~~~~~~~~~~~~~(13)$$ Voyons en guise de rappel, la méthode d'estimation des moindres carré.
a) Principe des moindre carré ordinaire
L'expression de $Z$ fournie en (13) peut être approchée par sa partie linéaire:
$$\widehat{Z}_t = \alpha + \beta t ~~~~~~~~~~~~~~(14)$$Cette approximation est faite de sorte que les écarts entre $Z$ et $\widehat{Z}$ soient faible. Plusieurs critères d'optimisation peuvent être envisagés:
$Min \sum_{t=1}^T |Z_t-(\alpha + \beta t)|_{(\alpha,\beta) \in \mathbb{R}}$
$Min \sum_{t=1}^T (Z_t-(\alpha + \beta t))_{(\alpha,\beta) \in \mathbb{R}}^2$
Le second critère d'optimisation des paramètres $(\alpha,\beta)$ est celui adopté par la méthode des moindres carrés ordinaires.
Il s'agit de trouver le minimum de la fonction $H$ définie de la manière suivante: $$H(\alpha,\beta) = \sum_{t=1}^T (Z_t-(\alpha + \beta t))^2 = 0~~~~~~~~~~~~~~~~~~(15)$$ Notons par $\tau = (1, 2, ..., t, ..., T) $ le vecteur temps. Ainsi $\tau_t = t$. La première condition d'optimalité nécessaire est la nullité des dérivées premières:
$$\frac{\partial H(\alpha,\beta)}{\partial \alpha} = \sum_{t=1}^T -2(Z_t-(\alpha + \beta t)) = 0~~~~~~~~~~(16)$$
$$\frac{\partial H(\alpha,\beta)}{\partial \beta} = \sum_{t=1}^T -2t (Z_t-(\alpha + \beta t)) = 0~~~~~~~~~~(17)$$
$$~~~~~~~~~~~~~~~~~~~\Longrightarrow ~ \sum_{t=1}^T Z_t t -(\bar{Z}-\beta\bar{\tau}) \sum_{t=1}^T t -\beta \sum_{t=1}^T t^2 = 0$$
$$~~~~~~~~~~~~~~~~~~~\Longrightarrow ~ \beta (\sum_{t=1}^T t^2 -\bar{\tau}\sum_{t=1}^T t) = \sum_{t=1}^T Z_t t -\bar{Z}\sum_{t=1}^T t$$
$$~~~~~~~~~~~~~~~~~~~\Longrightarrow ~ \beta (\sum_{t=1}^T t^2 -T\bar{\tau}^2) = \sum_{t=1}^T Z_t t -T\bar{Z}\bar{\tau}~~~~~~~~~~~~~~$$
$$~~~~~~\Longrightarrow ~ \beta =\frac{\sum_{t=1}^T (Z_t t -\bar{Z}\bar{\tau})}{\sum_{t=1}^T (t^2 -\bar{\tau}^2)}~~~~~~~~~~~~~~~~~~~~~~~~~$$
Une valeur simplifiée de $\beta$ est: $$\beta = \frac{Cov(\tau,Y)}{Var(\tau)}$$ Et $\alpha$ en est déduit:
$$\alpha = \bar{Z} - \beta \bar{\tau}$$L'ajustement linéaire du nuage de points se justifie par l'existance d'une relation linéaire entre la série des données et le temps. Cette relation linéaire est appréciée par le coéfficient de corrélation linéaire (encore appelé coefficient de Bravais-Pearson) entre la série des données et la variable temps.
– Si $r(\tau, Z) = 0$, alors la série des données $Z$ et le vecteur temps $\tau$ sont linéairement indépendants. Graphiquement, les points du nuage ont un éloignement maximal de la droite de régression.
– Si $|r(\tau, Z)|$ est proche de 1, alors la série des données $Z$ et le vecteur temps $\tau$ sont fortement liés: la relation linéaire est partfaite. Les points du nuage sont alors alignés. Pour $r(\tau, Z)> 0$ (resp $r(\tau, Z)< 0$) , la corrélation linéaire est dite croissante ou positive (resp décroissante ou négative).
En pratique, la corrélation linéaire sera dite faible lorsque $0 < |r(\tau, Z)| < 0,3$, moyenne lorsque $0,3 ≤ |r(\tau, Z)| ≤ 0,7$ et forte lorsque $|r(\tau, Z)| > 0,7$.
b) Exemple graphique d'estimation de la tendance
# Simulation d'une serie temporelle y = z + s + e
t = 1:40 # vecteur temps de 1 a 40
# Creation de la tendance z
z = 2.5 + 0.08*t + rnorm(40, mean = 2, sd = 3)
# Saisonnalite: En ajoutant la partie aleatoire, la periode n'est plus pi
s = cos(t*pi) + rnorm(40, mean = 0.5, sd = 2)
# Definir la serie y = z + s + e
y = z + s + rnorm(40) # ie mean = 0, sd = 1
# Definir le type de serie
serie <- ts(y, start = c(2009, 1), frequency = 4)
print(serie)
Qtr1 Qtr2 Qtr3 Qtr4 2009 0.7964195 3.2810648 -3.8551594 5.2898481 2010 7.4440003 2.0253322 3.1308063 14.5325682 2011 3.9211108 1.8857441 9.1817814 6.9459089 2012 3.9888613 8.2978535 -0.7918511 6.8329090 2013 12.1744607 0.2969913 0.4117735 8.2014722 2014 8.0598985 11.0823840 4.7466332 11.5759869 2015 6.7258639 0.3637599 11.8375931 9.4768463 2016 9.1820626 7.4443712 0.8957905 8.4053550 2017 10.7507558 10.4684258 10.9540244 5.8710578 2018 9.7367481 14.1060262 -1.6064376 9.9192563
# Representation graphique
plot(serie, xlab = "Temps en trimestre", ylab = "Valeurs de serie", main = "Graphique 1")
# Representation de la tendance en nuages de points
plot(t, z, type = "p", col = "red")
# Ajustement de la tendance par MCO:
# Nous avons changer l'expression de z pour voir: poinst du nuage vs droite d'ajustement
# 1. z = 2.5 + 0.08*t + rnorm(40, mean = 2, sd = 3)
# 2. z = 2.5 + 0.02*t + rnorm(40, mean = 2, sd = 3)
# 3. z = 2.5 - 0.9*t + rnorm(40, mean = 2, sd = 3)
plot(t, z, type = "p", col = "red") + abline(lm(z~t))
cor(z,t) # Coef correlation lineaire: r(z,t)
cor.test(z,t) # Test de la nullite de r(z,t)
Pearson's product-moment correlation
data: z and t
t = 3.6536, df = 38, p-value = 0.0007775
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.2358051 0.7087958
sample estimates:
cor
0.5098623
2. Estimation par points médian (Méthode de Mayer)
L'ajustement par points médian n'utilise pas de critères d'optimisation. La série globale est scindée en deux groupes de taille égale (à une observation près). La droite d'ajustement est contruite à l'aide de deux points qui sont les points médians (ou moyens) des deux groupes. Le choix de la médiane est utilise en présence de valeurs extrèmes dans la série.
Exemple
# Lecteur de la base au moyen de la fonction
# read_xlsx().
library(readxl)
# Nous utilisons les donnees disponibles
# sur: https://github.com/IbrahimaTall
ipc <- read_xlsx("TimeSeries.xlsx", sheet = "IPC2")
# Définition de la série
basets <- ts(ipc, start = c(2009, 1), frequency=12)
mois <- as.vector(time(basets))
ipc <- as.vector(ipc)
base <- cbind(mois, ipc)
colnames(base) <- c("mois", "ipc")
# Définition des deux groupes de données
base$groupe <- ifelse(base$ipc<median(base$ipc),1,2)
# Calcul des moyennes et médianes des deux groupes
base %>%
group_by(groupe) %>%
summarise(ipc_med = median(ipc),
mois_med = median(mois))
| groupe | ipc_med | mois_med |
|---|---|---|
| 1 | 101.600 | 2011.500 |
| 2 | 105.455 | 2016.542 |
y_median <- ordonnee(base$mois, c(2011.5, 101.6), c(2016.542, 105.455))
plot(base$mois, base$ipc, ylab = "IPC du Senegal 2009-2019", xlab = "Temps") +
lines(base$mois, y_median, col = "blue") + abline(lm(base$ipc~base$mois), col = "red")
# Ajout de la legend suivant position (x, y)
legend("bottomright", cex = 0.8, text.width = 4.5,
c("Ajustement MCO", "Ajustement points Medians"), col = c("red", "blue"), lty = c(1,1))
3. L'approche non linéaire
L'ajustement de la tendance peut le plus souvent se ramener sous une forme linéaire par tranformation. Cependant, ces transformation ne sont pas applicables dans tous les cas. Il est alors possible d'ajuster la tendance suivant une approche non linéaire: polynomiale, quadratique etc. $$\widehat{Z}_t = \alpha + \beta t^2~~~~~~~~~~~~~~~~~~~~~~~~~~~(19)$$
4. Estimation non paramétrique
Dans certaines situations, les ajustements linéaire et non linéaire ne sont pas adéquates. D'autres approches sont alors utilisées. Par exemples les moyennes mobiles d'ordre $2m + 1$, permettent d'ajuster la tendance selon la formule suivante:$$\widehat{Z}_t = M_{2m+1}(t)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(20)$$.
II. Ajustement local (moyennes et médianes mobiles) ¶
Les moyennes mobiles visent à transformer la série afin de trouver une estimation de la tendance et la saisonnalité. La transformation vise d’abord à supprimer la saisonnalité, puis a reconstituer les deux composantes de la série (tendance et saisonnalité).
1. Définition des moyennes mobiles
Une moyenne mobile $M_{m_1+m_2+1}$ est une transformation qui, à toute série $X = (X_t)_{t\in \mathbb{N}^*}$, associe une nouvelle série $M_{m_1+m_2+1}X = (M_{m_1+m_2+1}X_t)_{t\in \mathbb{N}^*}$ dont la valeur à l'instant $t$ s’écrit comme une combinaison linéaire finie des valeurs de la série $X = (X_t)_{t\in \mathbb{N}^*}$ à des dates entourant l'instant $t$. La valeur de la série transformée $M_{m_1+m_2+1}X$ à la date $t$ s’écrit : $$M_{m_1+m_2+1}X_t = \sum_{i = -m_1}^{m_2}\theta_iX_{t+i}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$ $$ = \theta_{-m_1}X_{t-m_1} + … + \theta_{-1}X_{t-1} + \theta_0X_t + \theta_1X_{t+1} +...+ \theta_{m_2}X_{t+m_2}~~~~~~~~~~~~~~(21)$$ Où $ \theta_{-m_1}, , + \theta_{m_2} $ sont des réels et $ (m_1, m_2) \in \mathbb{N}^*$. Le nombre $ m_1+m_2+1 $ est l’ordre de la moyenne mobile. C’est le nombre de termes considérés dans la somme.
Il est possible de réécrire la série transformée au moyen d’un opérateur. En effet, soit $B $ une application (ou simplement un operateur) définie par:$$BX_t = X_{t-1}~~~~~~~~~~~~~~~~~~~~~(22)$$ $$~~$$ $B$ (= Backward ou parfois L = lag) est appelé operateur retard . L'opérateur $B$ peut être composé par lui même plusieurs fois: $$\underbrace{B◦B◦B...B◦B}_{\text{p fois}} = B^p$$ $B$ vérifie alors les relations suivantes : $$B^2X_t = B(BX_t) = BX_{t-1} = X_{t-2}$$ $$~~$$ $$B^kX_t = X_{t-k}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$
L’opérateur retard est linéaire: $\forall ~~(X_t, Y_t)$ les valeurs de deux series a l'instant $t$ et $\forall (\alpha, \beta) \in \mathbb{R}^2$ $$ B^k(\alpha X_t + \beta Y_t) = \alpha B^kX_t + \beta B^kY_t= \alpha X_{t-k} + \beta Y_{t-k}$$ En plus, $B$ est inversible. Son inverse est note $F$ (= forward): $$ B^{-1}X_t = FX_t = X_{t+1}$$ $$B^{-k}X_t = F^kX_t = X_{t+k}$$ $F$ est appelé operateur avance. Et donc $B◦F = F◦B = I$ (opérateur identité): $$~~$$ $$\forall~t, B◦FX_t = F◦BX_t = X_t$$
Ainsi la relation (21) devient :$$ M_{m_1+m_2+1}X_t = \sum_{i = -m_1}^{m_2}\theta_i B^{-i}X_t = \sum_{i = -m_1}^{m_2}\theta_i F^iX_t $$ En posant $j = m_1+i:~~i~$ varie de $-m_1$ à $m_2~\Longrightarrow ~~~~j$ varie de $0$ à $m_1 + m_2$: $$~~$$ $$ M_{m_1+m_2+1}X_t = \sum_{j = 0}^{m_1+m_2}\theta_{j-m_1} B^{m_1-j}X_t = B^{m_1}\underbrace{\sum_{j = 0}^{m_1+m_2}\theta_{j-m_1} B^{-j}X_t}_{\text{polynôme en $B^{-1}$}}$$
Considérons le polynôme $P $ définie par : $$P(x) = \sum_{i = 0}^{m_1+m_2}\theta_{i-m_1} x^i = \theta_{-m_1} + \theta_{-m_1+1} x + … +\theta_{m_2} x^{m_1+m_2}$$ Il est alors claire que :$$M_{m_1+m_2+1}X_t = B^{m_1}P(B^{-1})X_t $$
$P$ est un polynôme de degré $m_1+m_2$ : c’est le polynôme caractéristique de la moyenne mobile $M_{m_1+m_2+1}$. La moyenne mobile et son polynôme caractéristique ont les mêmes coéficients $\theta_i$, et la moyenne mobile se définie alors simplement : $$M_{m_1+m_2+1} = B^{m_1}P(B^{-1})~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(23)$$
L'ordre de la moyenne mobile $M_{m_1+m_2+1}$ et le degré de son polynôme caractéristique $P$ sont liés par : $m_1+m_2+1$ = degré$(P)+1$
La moyenne mobile $M_{m_1+m_2+1}$ est dite :
- centrée si $m_1 = m_2 = m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(24)$
- symétrique si elle est centrée et si $ \forall i \in {1,…,m} : \theta_{-i}=\theta_i~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(25)$
- arithmétique d’ordre impaire ($2m+1$) si elle est centrée et :$$\theta_i = \frac{1}{2m+1},~~\forall i \in \{-m,…,m\}~~~~~~~~~~~~~~~~~~~~~~~~~(26)$$
NB : la moyenne mobile $M_{m_1+m_2+1} $ ne s’applique à la série qu’aux instants $t$ tels que : $$m_1 + 1 \leq t \leq T – m_2$$
Exemple : Considérons la série $X_t$ définie par : $X_1 = 7, X_2 = 5, X_3 = 4, X_4 = 3, X_5 = 8$.
La moyenne mobile arithmétique d’ordre impaire 3, $M_3$ transforme la série $X$ en une nouvelle série $Y$.
D’après la relation (26) : $\forall i, \theta_i = \frac{1}{3}$ et $3 = 2*1+1$ donc $m = 1 : i \in {-1,0,1} $
Les valeurs de $Y$ sont données par :
$$Y_t = M_3X_t = \theta_{-1}X_{t-1} + \theta_0X_t + \theta_1X_{t+1}$$
$$Y_t = \frac{1}{3}X_{t-1} + \frac{1}{3}X_t + \frac{1}{3}X_{t+1}~~~~~~~~~~~~~~~~~~~$$
$$Y_t = \frac{1}{3}(X_{t-1} + X_t + X_{t+1})~~~~~~~~~~~~~~~~~~~~~~~~$$
D’où donc : $Y_2 = \frac{16}{3}, Y_3 = 4, Y_4 = 5$
La définiton d'une moyenne mobile centrée donnée ci-haut, implique que l'ordre de celle-ci soit impair : $m_1 = m_2 = m$
Cependant, cette définition peut être élargie aux moyennes mobiles d'ordre pair. Soit donc $M_k$ une moyenne mobile d'ordre $k = 2m$ : $$M_{2m} = \frac{1}{2}\theta_{-m}B^m + \theta_{-m+1}B^{m-1} + ... +\theta_{-1}B + \theta_0 + \theta_1B^{-1} + ... +\theta_{m-1}B^{-m+1} + \frac{1}{2}\theta_mB^{-m}$$
L'expression de la moyenne mobile centrée d'ordre pair $2m$ peut être réécrite comme une moyenne de deux moyennes mobiles.
En effet: $$M_{2m} = \frac{1}{2}\theta_{-m}B^m + \theta_{-m+1}B^{m-1} + ... +\theta_{-1}B + \theta_0 + \theta_1B^{-1} + ... +\theta_{m-1}B^{-m+1} + \frac{1}{2}\theta_mB^{-m}$$ $$~~$$ $$M_{2m} = \frac{1}{2}[\theta_{-m}B^m + \theta_{-m+1}B^{m-1} + ... +\theta_{-1}B + \theta_0 + \theta_1B^{-1} + ... +\theta_{m-1}B^{-m+1}] ~~~~~~~~~~~~~~~~$$ $$+ \frac{1}{2}[\theta_{-m+1}B^{m-1} + ... +\theta_{-1}B + \theta_0 + \theta_1B^{-1} + ... +\theta_{m-1}B^{-m+1}+\theta_mB^{-m}]$$
En notant par $G_{2m}$ et $D_{2m}$ les expressions définies par:
$G_{2m} = \theta_{-m}B^m + \theta_{-m+1}B^{m-1} + ... +\theta_{-1}B + \theta_0 + \theta_1B^{-1} + ... +\theta_{m-1}B^{-m+1}~~~~~~~~~~$ moyenne mobile avec $m_1 = m$ et $m_2 = m-1$ $$~~$$
$D_{2m} = \theta_{-m+1}B^{m-1} + ... +\theta_{-1}B + \theta_0 + \theta_1B^{-1} + ... +\theta_{m-1}B^{-m+1}+\theta_mB^{-m}~~~~~~~~~~$ moyenne mobile avec $m_1 = m-1$ et $m_2 = m$ $$~~$$
Ainsi, la moyenne mobile centrée d'ordre $2m$ est définie par:$$M_{2m} = \frac{1}{2}G_{2m} + \frac{1}{2}D_{2m}$$
Remarque
Une moyenne mobile symétrique est nécessairement centrée d'ordre impair.
Pour une moyenne mobile arithmétique d'ordre pair, les coéfficients $\theta_i$ restent constantes et égaux à l'inverse de l'ordre de la moyenne mobile : $$\theta_i = \frac{1}{2m},~~\forall i \in \{-m,…,m\}$$
Exemple : Considérons la série $X_t$ définie par : $X_1 = 6, ~~X_2 = 5, ~~X_3 = 4, ~~X_4 = 3, ~~X_5 = 8, ~~X_6 = 9, ~~X_7 = 2, ~~X_8 = 11, ~~X_9 = 10, ~~X_{10} = 12, ~~X_{11} = 9, ~~X_{12} = 8$.
La moyenne mobile arithmétique d'ordre 4, $M_4$, appliquée à cette série donne une nouvelle série $Y = (Y_t)_{t}$.
$M_4X_t$ est défini pour $t$: $~~~~~~3 \leq t \leq 10~~$ et $\forall i~~ \theta_i = \frac{1}{4}~~$
Et pour $~~t = 3 :$
$$~~G_4X_3 = \frac{1}{4}(6+5+4+3)=\frac{18}{4}=\frac{9}{2}$$ $$~~$$
$$~D_4X_3 = \frac{1}{4}(5+4+3+8)=\frac{20}{4}=5 $$ $~~~~~$D’où donc :
$$M_4X_3 = \frac{1}{2}\frac{9}{2} + \frac{1}{2}5=\frac{19}{4}~~~~~~~~~~~~~~~~~$$
| Dates $t$ | $X_t$ | $~~~~~~~~~~~~~G_4X_t~~~~~~~$ | $~~~~~~~~~~~~~~D_4X_t~~~~~~$ | $~~~~~~~~~~~M_4X_t~~$ |
|---|---|---|---|---|
| $~$3 | $$~4$$ | $$4.5$$ | $$5$$ | $$4.75$$ |
| $~$4 | $$~3$$ | $$5$$ | $$6$$ | $$5.5$$ |
| $~$5 | $$~8$$ | $$6$$ | $$5.5$$ | $$5.75$$ |
| $~$6 | $$~9$$ | $$5.5$$ | $$7.5$$ | $$6.5$$ |
| $~$7 | $$~2$$ | $$7.5$$ | $$8$$ | $$7.75$$ |
| $~$8 | $$11$$ | $$8$$ | $$8.75$$ | $$8.375$$ |
| $~$9 | $$10$$ | $$8.75$$ | $$10.5$$ | $$9.625$$ |
| 10 | $$12$$ | $$10.5$$ | $$9.75$$ | $$10.125$$ |
NB Le but des moyennes mobiles est :
- d’absorber les composantes saisonnières en laissant invariantes les tendances ;
- de réduire la variance des perturbations.
Ainsi, les moyennes mobiles agissent en tamis (d'où leur second nom de filtre) pour laisser passer la tendance, supprimer la partie saisonnière et réduire fortement les effets des perturbations. Cette fonction de filtre est justifiable à travers les propriétés des moyennes mobiles présentées ci-après.
2. Opérations sur les moyennes mobiles
Soient $M_{k_M}$ et $N_{k_N}$ deux moyennes mobiles d'ordres respectifs $k_M$ et $k_N$.
$~~~~~$a) Définitions et términologies
La moyenne mobile $S_{k_S}$ somme de $M_{k_M}$ et $N_{k_N}$ est definie par:$$S_{k_S}X_t = (M_{k_M} + N_{k_N})X_t = M_{k_M}X_t + N_{k_N}X_t$$ Avec $k_S$ = max$\{k_M, k_N\}$
La moyenne mobile $C_{k_C}$ composée (ou produit) de $M_{k_M}$ et $N_{k_N}$ est definie par:$$C_{k_C}X_t = M_{k_M}N_{k_N}X_t = M_{k_M}(N_{k_N}X_t)$$ Avec $k_C$ = $k_M + k_N-1$
Etant donné la formule (23) qui définie une moyenne mobile comme une combinaison d'opérateurs, une moyenne mobile est une application linéaire. Ainsi, l'ensemble des moyennes mobiles est un espace vectoriel.
Le noyau d'une moyenne mobile $M_k$ est l'ensemble noté $Ker(M_k)$ défini par: $$Ker(M_k) = \{X = (X_t)_{t\in \mathbb{N}^*}~~|~~\forall t: M_kX_t = 0 \}$$
Ainsi, $Ker(M_k)$ est l'ensemble des séries temporelles dont leur transformation par $M_k$ conduit à une série temporelle nulle en tout instant $t$ où $M_k$ est applicable.
Pour une moyenne mobile $M_k$ d'ordre $k$, s'il existe un réel $\lambda$, et une série $X = (X_t)_{t\in \mathbb{N}^*} ~~$tels que : $$\forall ~t : M_kX_t = \lambda X_t$$ alors, $\lambda$ est appelé valeur propre associée au vecteur propre $X = (X_t)_{t\in \mathbb{N}^*}$
En particulier, $\forall ~t$ :
- si $\lambda = 0$ : $M_kX_t = 0$, la série $X = (X_t)_{t\in \mathbb{N}^*}$ est dite absorbée par $M_k$.
- si $\lambda = 1$ : $M_kX_t = X_t$, la série $X = (X_t)_{t\in \mathbb{N}^*}$ est dite invariante par $M_k$
La réduction de la variance de la partie aléatoire $\epsilon$ d'une série temporelle par une moyenne mobile est plus évidente lors que $\epsilon$ présente une forme régulière. Une des formes les plus simples de suite de variables aléatoires est le bruit blanc
Un bruit blanc est une suite de variables aléatoires $\epsilon = (\epsilon_t)_{t\in \mathbb{N}^*}$, lorsque $\forall~~t~$: $\mathbb{E}(\epsilon_t) = 0,~~$Var$(\epsilon_t) = \delta^2$
Un bruit blanc est dit fort si $\forall ~(t,~t^{'})~:~$ Cov$(\epsilon_t,~\epsilon_{t^{'}}) = 0~$; $\epsilon = (\epsilon_t)_{t\in \mathbb{N}^*}$ est alors une suite indépendante identiquement distribuée (iid).