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).
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].
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
que l’on peut représenter aussi sous forme d’une carte de chaleur
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.
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
Matrice de corrélation sous forme de carte de chaleur
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).
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.
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”
ou “coolwarm”
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
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)
- L’add-on “table Torch” permet de créer des matrices de corrélation avec Google Sheet. Non testé !
TABLEAU SOFTWARE
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)
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éé
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
Observablehq : Matrice de corrélation
Python : matrice de corrélation
Javascript : matrice de corrélation