Matrice de corrélation - Correlogramme
Matrice de corrélation - Correlogramme

Matrice de corrélation - Correlogramme

Tags

Historique

Le statisticien britannique Karl Pearson a introduit le coefficient de corrélation au début du XXe siècle, établissant ainsi les bases mathématiques pour mesurer les relations linéaires entre les variables.Au milieu du XXe siècle, les diagrammes de dispersion (nuages de points) étaient couramment utilisés pour visualiser la relation entre deux variables.
Avec l'avènement de l’informatique à la fin des années 1970, les matrices de corrélation sont devenues un outil pratique pour résumer les relations entre plusieurs variables. Ces matrices étaient initialement présentées sous forme de tableaux.
Les logiciels statistiques SAS, SPSS et R ont ensuite facilité le calcul et la visualisation des matrices de corrélation dans les années 1990. Depuis les années 2010, grâce à des outils comme D3.js et Tableau, les matrices de corrélation sont enrichies de zones de tailles et de couleurs variées pour représenter les coefficients de corrélation. La matrice de coefficients précédente et ses différentes variantes graphiques, présentées dans ce chapitre, sont appelés corrélogramme, une représentation graphique d'une ou plusieurs corrélations.
Chronologie de l’histoire de la dataviz

Pourquoi des matrices de corrélation ?

Les matrices de corrélation sont des outils essentiels dans l'analyse de données, permettant d'identifier et de visualiser rapidement les relations entre les variables.

Droite de régression et indice de corrélation

Si vous prenez un jeu de données comme la performance médiane des coureurs mesurée lors de plusieurs éditions d’un marathon et les températures mesurées le jour de ces évènements, vous pouvez tracer les points sur un graphique.
Tracez ensuite une droite (de régression) qui s'ajuste le mieux aux données, c'est-à-dire la droite qui est la plus proche des points (méthode des moindres carrés).
 
Crédit A Ottenheimer  - Marathons de Berlin — performance moyenne et température lors des éditions 2007 à 2016
Crédit A Ottenheimer - Marathons de Berlin — performance moyenne et température lors des éditions 2007 à 2016
La droite indique qu’il y a une certaine corrélation entre ces deux variables ; plus la température est élevée et moins la performance médiane des coureurs est bonne !
Mais nous pouvons nous interroger sur la qualité de cette corrélation. C’est là qu’intervient le coefficient de corrélation qui mesure cette qualité. Ce coefficient aura toujours une valeur qui se situe dans l'intervalle [-1, 1].
 
notion image
Dans l’exemple du marathon de Berlin, le coefficient de corrélation est r = 0.89 et indique que cette corrélation est forte. Le temps médian des coureurs augmente d’une minute par degré au-delà de 11°C.
 

Matrice de corrélation

Une matrice de corrélation est un outil statistique qui montre la force et la direction de la relation entre deux ou plusieurs variables.
Une matrice de corrélation est un tableau indiquant les coefficients de corrélation entre les variables. Chaque cellule du tableau indique le lien entre les deux variables.
Prenons maintenant un exemple avec jeux de données avec dix variables
notion image
que l’on peut représenter aussi sous forme d’une carte de chaleur
notion image
Comme la matrice est symétrique, seule une moitié de la matrice peut être représentée. La diagonale ayant, par définition, une corrélation de 1.0, nous avons choisi de l’effacer.
notion image
Si nous reprenions l’exemple du jeu de données du marathon, nous aurions pu aussi rechercher d’autres paramètres comme la luminosité, la pluie, le vent, l’âge médian des participants ou le nombre de spectateurs, et mesurer la corrélation entre toutes ces variables.
 

Utilisation

Les résultats d’une analyse de corrélation permettent de :
  • Identifier les paramètres les plus influents sur l’évolution d’une variable cible : prévoir les ventes, le développement de produits, les tendances futures, optimiser les opérations, améliorer les stratégies d’expérience client, les non-conformités dans une usine, la performance sportive…
  • De valider ou invalider certaines hypothèses initiales sur les données. Par exemple, est-ce que la corrélation entre température et performance apparaît dans les données
  • Construire des modèles plus complexes dans la phase d’analyse exploratoire des données ou de partir sur des modèles d’apprentissage automatique (machine learning).
  • Identifier rapidement les variables redondantes dans un jeu de données, en détectant et éliminant des variables fortement corrélées. Cela permet de construire un modèle prédictif plus efficace.
  • Définir des stratégies d’imputation de valeurs manquantes. Par exemple, la variable X1 contient beaucoup de valeurs manquantes. Si nous pouvons fortement la corréler avec une variable X2, l’utilisation des données de X2 est une piste prometteuse pour générer les valeurs manquantes dans X1.

Avantages

La matrice de corrélation :
  • est facile à interpréter
  • permet une visualisation claire et concise des relations entre les variables.
  • Aide à préparer les données pour des analyses plus complexes.

Limitations

  • Une corrélation ne signifie pas nécessairement une relation de cause à effet. Il est possible de calculer des corrélations absurdes entre la vente de crème glacée, le nombre de morts par noyade, le taux de divorce ou l'évolution de la consommation de margarine aux États-Unis. Le site « Spurious Correlations » s’amuse à rechercher et publier de tels exemples de corrélations saugrenues.
  • Le paradoxe de Simpson : une corrélation peut disparaître ou s’inverser après avoir combiné des données.
    • Ce paradoxe s’invite en considérant un échantillon de départ : distribué de manière non homogène, les poids pèseront sur le résultat. Cette distribution doit tenir compte d’une variable qui influe sur le résultat (le facteur de confusion). Regrouper des données (par exemple en faisant une moyenne) à partir d’un tel échantillon et en ignorant le facteur de confusion conduit alors à ce paradoxe.
    • Voici un exemple. Fumer c’est bon pour la santé ? 1314 femmes ont été suivies afin de comparer le taux de mortalité des fumeuses et non-fumeuses. Il y a 582 fumeuses, 139 sont décédées; soit un taux de mortalité de 24%. Parmi les 732 non-fumeuses, 230, soit un taux de mortalité de 31%. Doit-on conclure que fumer n’est pas dangereux ? L’échantillon est biaisé : le nombre de femmes de plus 75 ans est aussi grand que le reste du nombre de femmes âgée de moins de 75 ans. Gageons qu’à un âge aussi avancé, le tabac n’est qu’une cause parmi d’autres de décès.
      • moins de 75 ans
        personnes
        décès
        taux de mortalité
        fumeuses
        402
        48
        11,94 %
        non fumeuses
        338
        30
        8,88 %
        total
        526
        78
        plus de 75 ans
        personnes
        décès
        taux de mortalité
        fumeuses
        180
        91
        50,56 %
        non fumeuses
        394
        200
        50,76 %
        total
        788
        291
        tout âge
        personnes
        décès
        taux de mortalité
        fumeuses
        582
        139
        23,88 %
        non fumeuses
        732
        230
        31,42 %
        total
        1314
        369
  • Relations duales : l’étude de corrélation abordée ici ne se limite qu’à des couples de variables. Dans certains cas, nous aimerions étudier plusieurs variables à la fois.
  • Linéarité : les coefficients de corrélation classiques, comme le coefficient de Pearson, ne capturent que les relations linéaires.
  • Valeurs aberrantes : elles peuvent affecter de manière significative les coefficients de corrélation.
 

Les variantes des matrices de corrélation

 
Les matrices de corrélation peuvent être représentées de différentes manières pour répondre aux besoins d'analyse et de visualisation. Voici quelques variantes courantes.

Matrice de corrélation standard colorée

notion image

Matrice de corrélation sous forme de carte de chaleur

Matrice de corrélation où les coefficients sont représentés par des couleurs (heatmap).
Matrice de corrélation où les coefficients sont représentés par des couleurs (heatmap).

Matrice de corrélation sous forme de bulles.

Matrice de corrélation utilisant des cercles de différentes tailles et couleurs pour représenter la force et la direction des corrélations. - La taille du cercle indique la force de la corrélation. - La couleur indique la direction (positive ou négative).
notion image
 

Matrice de diagrammes de dispersion (scatterplot matrix)

Dans cette matrice, les valeurs des coefficients de corrélation sont remplacées par des nuages de points (diagrammes de dispersion). La diagonale est traitée différemment, avec un tracé de la distribution des données.
 
Exemple des pingouins : Espèce, longueur du bec, profondeur du bec , longueur des palmes  origine de l’île, masse corporelle et sexe.
en savoir + :  visualisation  - réalisation : Christoph Pahmeyer
Exemple des pingouins : Espèce, longueur du bec, profondeur du bec , longueur des palmes origine de l’île, masse corporelle et sexe. en savoir + : visualisation - réalisation : Christoph Pahmeyer
 
Les graphes de réseau est un autre moyen de représenter des corrélations. Les nœuds représentent les variables, et les liens (avec des épaisseurs et des couleurs variables) représentent les corrélations. Allez au chapitre du guide qui leur est consacré pour en savoir plus.

Recommandations

Données
  • Uniquement des données numériques.
  • Des échantillons plus grands donnent généralement des estimations plus fiables des coefficients de corrélation.
  • Le coefficient de corrélation ou coefficient de Pearson, n’est applicable que lorsque les données suivent une relation linéaire.

Recommandation 1

  • Supprimez les variables non numériques dans le tableau de données (colonnes). Il est toutefois possible de considérer des données catégorielles à travers des méthodes comme le test du khi carré ou le test de la valeur p.
  • Supprimer les lignes avec des valeurs manquantes et les doublons.
  • Ne garder que les variables qui sont pertinentes pour votre analyse afin d'éviter le bruit inutile dans la matrice.

Recommandation 2

  • N’hésitez pas à faire un corrélogramme sous la forme d’une carte de chaleur annotée, c’est assez rapide à réaliser. C’est une méthode visuelle puissante pour explorer et s’approprier un jeu de données

Recommandation 3

Utilisez des palettes de couleurs qui améliorent la lisibilité (voir chapitre sur les couleurs) comme : ”viridis”
notion image
ou “coolwarm”
notion image
 

Testez vous-même

Cet exemple est réalisé avec observable à partir d’un jeu de données au format csv. Le coefficient de corrélation est calculé avant de tracer la matrice.
Cet exemple est générique afin d’être facilement réutilisable avec d’autres jeux de données.
 

Exemples

Les exemples ci-dessous présentent des réalisations basiques. Pensez à sélectionner l’onglet correspondant à la matrice de corrélation.
Explications complémentaires
 
  EXCEL
EXCEL
lien de téléchargement du fichier exemple_excel_guidelines.xlsx
  • Les matrices de corrélation sont réalisables avec Excel (2019).
  • Il faut préalablement charger le complément “Analysis ToolPak” (fichier ⇒ option ⇒ complément - Choisir AnalysisToolPak ⇒ Atteindre ⇒ ok). Dans l’onglet données, à gauche dans le bandeau apparait l’utilitaire d’analyse.
  • Sélectionner ensuite les valeurs du tableau de données avec les entêtes et choisissez ensuite dans l’utilitaire d’analyse la fonction analyse de corrélation….
  • Il existe des tutoriels sur internet qui expliquent comment réaliser des matrice de corrélation avec Excel.
 
  GOOGLE SHEET  (on line)
GOOGLE SHEET (on line)
  • L’add-on “table Torch” permet de créer des matrices de corrélation avec Google Sheet. Non testé !
 
  TABLEAU SOFTWARE
TABLEAU SOFTWARE
Le site Tableau public propose de nombreux exemples de réalisation de matrices de corrélation.
 
  CALC OpenOffice
CALC OpenOffice
L’outil peut calculer le coefficient de corrélation entre deux variables, mais n’a pas de fonctionnalité pour créer une matrice de corrélation.
 
  RAWgraph (on line)
RAWgraph (on line)
L’outil ne propose pas la création de matrices de corrélation, le calcul de corrélation n’étant pas implémenté dans la version à la date de la rédaction.
🚧
Matplotlib + Seaborn
Les outils cités ne permettent pas toujours cacher la diagonale et la sur-diagonale. Avec un peu de code, il est possible d’appliquer un masque sous Matplotlib et Seaborn.
Exemple créé
notion image
import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltimport numpy as np # Créer un DataFrame avec deux colonnes numériques np.random.seed(42) # Pour la reproductibilité df = pd.DataFrame({ 'A': 10 + np.random.randn(100), 'B': 120 + np.random.randn(100), 'C': 10 + np.random.randn(100), 'D': np.random.randn(100), 'E': np.random.randn(100), 'F': np.random.randn(100)}) print(df.shape) # Calculer la matrice de corrélation corr = df.corr() # Créer un masque pour cacher la diagonale et la sur-diagonale mask = np.triu(np.ones_like(corr, dtype=bool)) # Créer la heatmap plt.figure(figsize=(8, 6)) sns.heatmap(corr, mask=mask, cmap='coolwarm', vmin=-1, vmax=1, center=0, square=True, linewidths=.5, cbar_kws={"shrink": .5}, annot=True) plt.title('Matrice de corrélation') plt.show() # Afficher la matrice de corrélation print("Matrice de corrélation :") print(corr)
 
🔡
Les langages de programmation