Un exemple d'autocorrélation

Traitement d'une autocorrélation avec R

L’autocorrélation est un phénomène fréquemment observé sur les séries chronologiques. Alors pour vous être agréable, nous l’illustrons ici avec des données réelles…

 

Données

Soit la série de nombres mensuels de nuitées d’hôtel en France entre 2013 et 2019. Les données figurent en page de traitement d'une série chronologique avec stats (stats est un package de R). Le graphique montre une saisonnalité très marquée.

nuitées

Afin d’étudier l’autocorrélation, nous utiliserons le package stat de R.

 

Corrélogramme

Écrivons le script pour tracer le corrélogramme.

library(readxl)
nuitées_pour_R <- read_excel("nuitées pour R.xlsx")


# Création de la série temporelle
serie <- ts(
  nuitées_pour_R$Nuitées,
  start = c(2013, 1),
  frequency = 12
)

# Corrélogramme
acf(
  serie,
  main = "Corrélogramme des nuitées hôtelières",
  xlab = "Décalage (lag)"
)

Nous obtenons ceci :

corrélogramme

La lecture de ce corrélogramme n’est pas immédiate car les abscisses sont en années (donc, 0.5 = 6 mois) et ce n’est pas l’objet de cette page de peaufiner un graphique avec R (désolé !).

La première barre est sans intérêt. Ensuite, on observe le schéma classique d’une saisonnalité annuelle.

Si après la création de serie on écrit le script suivant…

resultat_acf <- acf(
serie,
plot = FALSE
)
tableau_acf <- data.frame(
Mois = round(as.numeric(resultat_acf$lag) * 12),
Autocorrelation = as.numeric(resultat_acf$acf)
)
tableau_acf

… alors obtient la liste des coefficients d’autocorrélation.

coefficients

Le coefficient au lag 12 est particulièrement élevé ! Et comme on peut s’y attendre, le lag 6 est proche de -1.

 

Tendance

On remarque aussi qu’un lag \(n\) est souvent moins significatif que le lag \(n-12.\) Ceci peut suggérer une tendance de long terme (ou des amplitudes différentes de saisonnalité). Comme le graphique d’évolution des valeurs montre une légère tendance haussière, il peut être intéressant de la supprimer pour mieux isoler les variations saisonnières.

encéphalogramme

Pour être tout à fait sûr, visualisons cette tendance :

Par soustraction, on obtient une série où la tendance est retirée ; elle est centrée sur zéro :

On peut alors adapter notre script pour tracer le corrélogramme de cette nouvelle série.

 

autocorrélés