Comment calculer la corrélation croisée dans R
La corrélation croisée est un moyen de mesurer le degré de similarité entre une série chronologique et une version décalée d’une autre série chronologique.
Ce type de corrélation est utile à calculer car il peut nous indiquer si les valeurs d’une série chronologique sont prédictives des valeurs futures d’une autre série chronologique. En d’autres termes, cela peut nous indiquer si une série chronologique est un indicateur avancé pour une autre série chronologique.
Ce type de corrélation est utilisé dans de nombreux domaines différents, notamment :
Économie : L’indice de confiance des consommateurs (CCI) est considéré comme un indicateur avancé du produit intérieur brut (PIB) d’un pays. Par exemple, si le CCI est élevé au cours d’un mois donné, le PIB est susceptible d’être plus élevé x mois plus tard.
Entreprises : les dépenses marketing sont souvent considérées comme un indicateur avancé des revenus futurs des entreprises. Par exemple, si une entreprise dépense une somme d’argent anormalement élevée en marketing au cours d’un trimestre, alors le chiffre d’affaires total devrait être élevé x trimestres plus tard.
Biologie : La pollution totale des océans est considérée comme un indicateur avancé de la population d’une certaine espèce de tortue. Par exemple, si la pollution est plus élevée au cours d’une année donnée, la population totale de tortues devrait diminuer x années plus tard.
L’exemple suivant montre comment calculer la corrélation croisée entre deux séries temporelles dans R.
Exemple : Comment calculer la corrélation croisée dans R
Supposons que nous ayons la série chronologique suivante dans R qui montre les dépenses marketing totales (en milliers) pour une certaine entreprise ainsi que le chiffre d’affaires total (en milliers) pendant 12 mois consécutifs :
#define data
marketing <- c(3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8)
revenue <- c(21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30)
Nous pouvons calculer la corrélation croisée pour chaque décalage entre les deux séries chronologiques en utilisant la fonction ccf() comme suit :
#calculate cross correlation
ccf(marketing, revenue)
Ce graphique affiche la corrélation entre les deux séries chronologiques à différents décalages.
Pour afficher les valeurs de corrélation réelles, nous pouvons utiliser la syntaxe suivante :
#display cross correlation values print(ccf(marketing, revenue)) Autocorrelations of series ‘X’, by lag -7 -6 -5 -4 -3 -2 -1 0 1 2 3 -0.430 -0.351 -0.190 0.123 0.489 0.755 0.868 0.771 0.462 0.194 -0.061 4 5 6 7 -0.282 -0.445 -0.492 -0.358
Voici comment interpréter cette sortie :
- La corrélation croisée au décalage 0 est de 0,771 .
- La corrélation croisée au décalage 1 est de 0,462 .
- La corrélation croisée au décalage 2 est de 0,194 .
- La corrélation croisée au décalage 3 est de -0,061 .
Et ainsi de suite.
Notez que la corrélation entre les deux séries chronologiques est plutôt positive avec des décalages de -2 à 2, ce qui nous indique que les dépenses marketing au cours d’un mois donné sont assez prédictives des revenus un et deux mois plus tard.
Cela est intuitivement logique : nous nous attendons à ce que des dépenses marketing élevées au cours d’un mois donné soient prédictives d’une augmentation des revenus au cours des deux prochains mois.
Ressources additionnelles
Comment calculer l’autocorrélation dans R
Comment calculer la corrélation partielle dans R
Comment calculer la corrélation glissante dans R