Corrélation et causalité : comprendre la différence
L'article pilier – la distinction fondamentale entre corrélation et causalité.
Maîtrisez le coefficient de corrélation : de Pearson à Spearman, en passant par l'interprétation des forces, les pièges à éviter et les exemples concrets en Python et R.
La corrélation est une mesure statistique qui quantifie le degré de liaison linéaire entre deux variables. En d'autres termes, elle indique dans quelle mesure deux phénomènes évoluent ensemble.
La corrélation répond à la question : "Quand X augmente, qu'est-ce que Y fait ?"
- Si Y augmente aussi → corrélation positive
- Si Y diminue → corrélation négative
- Si Y ne suit pas de mouvement systématique → corrélation nulle
Attention : Corrélation ≠ causalité. Une corrélation forte n'implique pas qu'une variable cause l'autre. C'est le point le plus important à retenir en analyse de données.

Nuages de points illustrant les 3 types de corrélation (Assisté par Nano Banana 2)
Les deux variables évoluent dans le même sens. Quand l'une augmente, l'autre augmente aussi ; quand l'une diminue, l'autre diminue.
Exemples :
Les deux variables évoluent en sens inverse. Quand l'une augmente, l'autre diminue.
Exemples :
Il n'y a pas de relation linéaire détectable entre les variables. Attention : cela n'exclut pas une relation non linéaire (parabolique, exponentielle, etc.).
Exemples :
Le coefficient de corrélation de Pearson, noté r, est le plus utilisé. Il mesure l'intensité et le sens de la relation linéaire entre deux variables quantitatives.
r = Σ[(xi - x̄)(yi - ȳ)] / √[Σ(xi - x̄)² × Σ(yi - ȳ)²]
Avec :

Schéma de la covariance et des écarts à la moyenne (Assisté par Nano Banana 2)
| Valeur de r | Interprétation | Intensité |
|---|---|---|
| r = 1,0 | Corrélation positive parfaite | Parfaite |
| 0,8 ≤ r < 1,0 | Corrélation très forte | Très forte |
| 0,6 ≤ r < 0,8 | Corrélation forte | Forte |
| 0,4 ≤ r < 0,6 | Corrélation modérée | Modérée |
| 0,2 ≤ r < 0,4 | Corrélation faible | Faible |
| 0,0 ≤ r < 0,2 | Corrélation très faible ou nulle | Très faible |
| r = -1,0 | Corrélation négative parfaite | Parfaite |
Le coefficient de Spearman est une version non paramétrique basée sur les rangs. Il mesure une relation monotone (pas forcément linéaire).
Également basée sur les rangs, mais plus robuste pour les petits échantillons.
| Critère | Pearson | Spearman | Kendall |
|---|---|---|---|
| Type de données | Quantitatives continues | Quantitatives ou ordinales | Quantitatives ou ordinales |
| Relation mesurée | Linéaire | Monotone | Monotone |
| Sensibilité outliers | Très sensible | Peu sensible | Très peu sensible |
| Distribution | Normale requise | Aucune | Aucune |
Une matrice de corrélation est un tableau carré qui présente les coefficients de corrélation entre plusieurs variables. C'est l'outil standard pour explorer un jeu de données multivarié.
| Âge | Revenu | Dépenses | Épargne | |
|---|---|---|---|---|
| Âge | 1,00 | 0,45 | 0,32 | 0,28 |
| Revenu | 0,45 | 1,00 | 0,67 | 0,51 |
| Dépenses | 0,32 | 0,67 | 1,00 | -0,12 |
| Épargne | 0,28 | 0,51 | -0,12 | 1,00 |
En Python (seaborn) ou R (corrplot), on colore la matrice :

Heatmap colorée d'une matrice de corrélation (Assisté par Nano Banana 2)
Le coefficient de Pearson ne détecte que les relations linéaires. Une relation parabolique (en U) peut avoir r ≈ 0 alors qu'un lien existe clairement.
Une seule valeur aberrante peut faire passer un r de 0,1 à 0,8. Toujours visualiser les données avant de conclure.
C'est la limite la plus importante. Une corrélation forte peut être due à :
Une corrélation globale peut s'inverser lorsqu'on segmente les données. C'est pourquoi il faut toujours vérifier par sous-groupes.
Avec un très grand échantillon, une corrélation de 0,05 peut être "significative" statistiquement... mais sans intérêt pratique.
import pandas as pd
from scipy.stats import pearsonr, spearmanr
# Création d'un jeu de données
data = pd.DataFrame({
'age': [25, 30, 35, 40, 45, 50],
'salaire': [35, 42, 48, 55, 60, 65]
})
# Calcul du coefficient de Pearson
coeff, p_value = pearsonr(data['age'], data['salaire'])
print(f"Coefficient de Pearson : {coeff:.3f}")
print(f"p-value : {p_value:.4f}")
# Matrice de corrélation complète
print(data.corr())
# Jeu de données
age <- c(25, 30, 35, 40, 45, 50)
salaire <- c(35, 42, 48, 55, 60, 65)
# Coefficient de Pearson
cor_pearson <- cor.test(age, salaire, method = "pearson")
print(cor_pearson)
# Coefficient de Spearman
cor_spearman <- cor.test(age, salaire, method = "spearman")
print(cor_spearman)
# Matrice de corrélation sur un dataframe
df <- data.frame(age, salaire)
cor(df)
Faux. Elle signifie absence de relation linéaire. Une relation en U (quadratique) peut avoir r = 0.
Faux. C'est la confusion classique. Un confondant peut créer une corrélation trompeuse.
Faux. Avec un très grand échantillon (n = 100 000), une corrélation de 0,02 peut être "significative". La p-value ne mesure pas l'intensité, seulement la confiance.
La covariance mesure la direction de la relation (positive ou négative), mais sa valeur dépend des unités (ex: mètres vs centimètres). La corrélation normalise la covariance (divise par le produit des écarts-types), ce qui donne un coefficient sans unité, compris entre -1 et +1, donc facilement interprétable.
Pearson est adapté pour les relations linéaires avec des données normalement distribuées et sans outliers. Spearman est plus robuste pour les relations monotones non linéaires, les données ordinales ou avec outliers. En cas de doute, calculez les deux et comparez.
La p-value teste l'hypothèse nulle "pas de corrélation" (r = 0). Une p-value < 0,05 indique qu'il est peu probable (moins de 5% de chances) d'observer une corrélation aussi forte si la vraie corrélation était nulle. Cela ne mesure pas la force de la relation.
Plusieurs approches : suppression des paires manquantes (pairwise deletion), suppression des lignes incomplètes (listwise deletion), imputation (moyenne, médiane, régression). En Python, df.corr() ignore automatiquement les NaN. Attention : l'imputation peut biaiser les résultats.
Pour deux variables catégorielles, utilisez le V de Cramer. Pour une variable catégorielle et une variable quantitative, utilisez le coefficient de corrélation point-bisérial (équivalent à Pearson).
Non, l'inverse. Deux variables peuvent être dépendantes sans être corrélées (relation non linéaire). La corrélation est un cas particulier de dépendance linéaire. L'indépendance implique l'absence de corrélation, mais l'inverse est faux.
La corrélation est un outil statistique puissant mais souvent mal utilisé. Elle permet de détecter et quantifier des relations linéaires entre variables, mais elle ne dit rien sur la causalité.