Cours
Si vous avez déjà parcouru notre tutoriel sur la covariance, vous savez qu’il s’agit de comprendre comment deux variables évoluent ensemble. La corrélation va plus loin en normalisant cette mesure pour comparer des relations entre différents jeux de données.
Dans ce guide, vous allez découvrir ce qu’est la corrélation (nous nous concentrerons sur la plus courante, la corrélation de Pearson), en quoi elle diffère de la covariance, et comment la calculer et l’interpréter avec Python et R. Pour finir, nous passerons en revue d’autres types de corrélations adaptés à des cas d’usage différents.
Pour continuer à renforcer vos compétences en statistiques, ne manquez pas notre parcours de compétences Statistics Fundamentals in Python ou le cours Introduction to Statistics in R.
Qu’est-ce que la corrélation ?
La corrélation mesure l’intensité et la direction d’une relation linéaire entre deux variables quantitatives. Elle permet de comprendre comment les variations de l’une sont associées aux variations de l’autre.
Une corrélation positive signifie que lorsque l’une augmente, l’autre tend à augmenter. Une corrélation négative signifie que lorsque l’une augmente, l’autre tend à diminuer.
Voici les idées clés :
- La corrélation quantifie dans quelle mesure deux variables évoluent de concert.
- Le coefficient de corrélation varie de -1 à 1.
- Une valeur de 1 indique une relation linéaire positive parfaite.
- Une valeur de -1 indique une relation linéaire négative parfaite.
- Une valeur de 0 indique l’absence de relation linéaire.
Formule du coefficient de corrélation de Pearson
Comme indiqué, le coefficient de corrélation de Pearson mesure la relation linéaire entre deux variables continues. Ce que je n’ai pas encore précisé : il suppose des données suivant une loi normale (plus exactement, il suppose que les variables sont conjointement normales, ce que l’on appelle la normalité bivariée — nuance importante) et il est sensible aux valeurs aberrantes. Le coefficient de Pearson est noté r.

où xi et yi sont les observations, et x et y leurs moyennes respectives.
Coefficient de corrélation de Pearson en Python et R
Voyons comment le calculer en Python et en R.
Corrélation en Python
Vous pouvez calculer le coefficient de Pearson en Python avec la fonction pearsonr() du module scipy.stats :
import numpy as np
from scipy.stats import pearsonr
# Temperature data in Celsius and corresponding Fahrenheit
temperature_celsius = np.array([0, 10, 20, 30, 40])
temperature_fahrenheit = np.array([32, 50, 68, 86, 104]) # Converted from Celsius
# Calculate Pearson correlation coefficient
correlation_coefficient, p_value = pearsonr(temperature_celsius, temperature_fahrenheit)
print("Pearson correlation coefficient:", correlation_coefficient)
Pearson correlation coefficient: 1.0
p-value: 0.0
La sortie montre une relation linéaire positive parfaite entre x_values et y_values (puisque nous avons défini y comme 2x).
Corrélation en R
En R, utilisez la fonction cor() :
temperature_celsius <- c(0, 10, 20, 30, 40)
temperature_fahrenheit <- c(32, 50, 68, 86, 104) # Converted from Celsius
# Calculate Pearson correlation coefficient
correlation_coefficient <- cor(temperature_celsius, temperature_fahrenheit, method = "pearson")
print(correlation_coefficient)
[1] 1
Cette sortie indique également une relation linéaire positive parfaite, comme précédemment.
Matrice de corrélation
Une matrice de corrélation affiche les coefficients de corrélation entre plusieurs paires de variables d’un jeu de données. Elle est utile pour explorer les relations dans des données multivariées.
Matrice de corrélation en Python
On représente souvent les variables sous forme matricielle, par exemple un DataFrame pandas, puis on calcule directement la matrice de corrélation :
import pandas as pd
# Create a DataFrame with two perfectly correlated variables and one that isn't
data = pd.DataFrame({
'temperature_celsius': [0, 10, 20, 30, 40],
'temperature_fahrenheit': [32, 50, 68, 86, 104], # Perfect linear transformation
'ice_cream_sales': [100, 150, 200, 220, 230] # Roughly increasing, not perfectly
})
# Calculate the Pearson correlation matrix
correlation_matrix = data.corr(method='pearson')
print(correlation_matrix)
temperature_celsius temperature_fahrenheit ice_cream_sales
temperature_celsius 1.000000 1.000000 0.993858
temperature_fahrenheit 1.000000 1.000000 0.993858
ice_cream_sales 0.993858 0.993858 1.000000
Cette sortie montre :
-
Une corrélation positive parfaite entre
temperature_celsiusettemperature_fahrenheit(comme attendu, comme plus haut). -
Une corrélation forte mais non parfaite entre
ice_cream_salesettemperature_celsiusainsi quetemperature_fahrenheit.
Matrice de corrélation en R
En R, vous obtenez le même résultat avec la fonction cor() déjà utilisée, appliquée à un data frame ou une matrice :
# Create a data frame with two perfectly correlated variables and one unrelated
data <- data.frame(
temperature_celsius = c(0, 10, 20, 30, 40),
temperature_fahrenheit = c(32, 50, 68, 86, 104), # Perfect conversion from Celsius
ice_cream_sales = c(100, 150, 200, 220, 230) # Generally increases, but not perfectly
)
# Calculate the correlation matrix
correlation_matrix <- cor(data, method = "pearson")
print(correlation_matrix)
temperature_celsius temperature_fahrenheit ice_cream_sales
temperature_celsius 1.00 1.00 0.99
temperature_fahrenheit 1.00 1.00 0.99
ice_cream_sales 0.99 0.99 1.00
Cette sortie R reflète l’exemple Python, avec :
-
Une corrélation positive parfaite entre
temperature_celsiusettemperature_fahrenheit. -
Une corrélation forte entre
ice_cream_salesettemperature_celsiusoutemperature_fahrenheit.
Ce type de vue matricielle est particulièrement utile pour identifier les multicolinéarités en régression ou choisir des variables pour des techniques de réduction de dimension comme PCA.
Corrélation vs. autres métriques
La corrélation capture les associations linéaires. Prenons maintenant le temps de bien la distinguer d’idées proches.
Corrélation vs. covariance
La corrélation et la covariance mesurent toutes deux la co‑variation de deux variables, mais elles diffèrent sur deux points : l’échelle et l’interprétabilité.
-
Covariance indique la direction d’une relation linéaire, mais pas son intensité de manière standardisée. Sa valeur dépend des unités des variables, ce qui complique les comparaisons entre jeux de données.
-
Corrélation standardise la covariance en la divisant par les écarts types des variables, produisant une valeur sans unité comprise entre -1 et 1.
Corrélation vs. R‑carré
R-squared (R²), ou coefficient de détermination, est parfois confondu avec la corrélation. Je l’observe notamment lorsque l’on interprète les performances d’un modèle.
-
Corrélation (le r de Pearson) mesure l’intensité et la direction d’une relation linéaire entre deux variables.
-
R‑carré représente la part de variance d’une variable prédictible à partir d’une autre dans un modèle de régression linéaire. En régression linéaire simple, c’est le carré du r de Pearson.
Corrélation vs. causalité
Ne confondez pas corrélation et causalité ! C’est une erreur fréquente.
-
Corrélation montre seulement que deux variables évoluent ensemble. Elle n’explique pas pourquoi. Elle est descriptive, pas explicative. La corrélation peut résulter d’une coïncidence, de variables confondantes, ou d’une causalité inversée.
-
Causalité implique qu’une modification d’une variable provoque directement une modification de l’autre. Réservez les discussions sur la causalité aux expériences contrôlées ou aux approches d’inférence causale.
Défis et erreurs fréquents dans l’analyse de corrélation
Voici quelques écueils classiques à connaître :
- La corrélation n’implique pas la causalité. Nous l’avons évoqué.
- Les valeurs aberrantes peuvent fausser les coefficients de corrélation.
- Les relations non linéaires sont mal captées par le coefficient de Pearson.
- Les coefficients de corrélation sont sensibles à l’étendue des données.
Autres types de coefficients de corrélation
Dans cet article, nous avons présenté le coefficient de Pearson, car il découle directement de la covariance et reste la mesure la plus utilisée en pratique. Voyons maintenant d’autres variantes.
Coefficient de corrélation de Spearman (ρ)
La corrélation de Spearman évalue l’intensité et la direction d’une relation monotone à partir des rangs. Elle est non paramétrique et convient bien aux données ordinales ou aux tendances non linéaires mais régulières.

Où :
- di = la différence entre les rangs de chaque observation
- n = le nombre d’observations
Coefficient tau de Kendall (τ)
Le coefficient tau de Kendall mesure également les relations monotones via les rangs, mais se base sur le nombre de paires concordantes et discordantes. Il est plus robuste en présence d’égalités de rang et d’échantillons de petite taille.

Où :
- C = nombre de paires concordantes (paires classées dans le même ordre pour les deux variables)
- D = nombre de paires discordantes (paires classées dans des ordres différents)
- n = nombre d’observations
Conclusion
Nous espérons que cet article vous a été utile. Comme vous l’avez vu, la corrélation est un outil fondamental pour comprendre les relations entre variables.
Poursuivez votre apprentissage avec nos cours. Nous vous recommandons le parcours de compétences Statistics Fundamentals in Python ou le cours Introduction to Statistics in R comme prochaines étapes pertinentes.

Je suis rédacteur et éditeur dans le domaine de la science des données. Je suis particulièrement intéressé par l'algèbre linéaire, les statistiques, R, etc. Je joue également beaucoup aux échecs !
FAQs sur la corrélation
Quelle est la différence entre corrélation et covariance ?
La covariance mesure comment deux variables évoluent ensemble, tandis que la corrélation normalise cette mesure pour permettre des comparaisons entre différents jeux de données. La corrélation fournit à la fois l’intensité et la direction de la relation et est bornée entre -1 et 1.
Quel coefficient de corrélation choisir : Pearson, Spearman ou Kendall ?
Utilisez Pearson lorsque vos données sont continues, approximativement normales et que la relation est linéaire. Choisissez Spearman pour des données ordinales ou lorsque la relation est monotone mais pas forcément linéaire. Kendall convient mieux aux petits jeux de données avec de nombreuses égalités de rang, ou lorsque vous souhaitez une mesure non paramétrique plus robuste.
Comment calculer le coefficient de corrélation de Pearson en Python et en R ?
En Python, utilisez pearsonr() de scipy.stats. En R, utilisez la fonction cor() avec method = "pearson". Les deux renvoient une valeur comprise entre -1 et 1.
Un coefficient de corrélation peut-il indiquer une relation de causalité entre variables ?
Non, la corrélation n’implique pas la causalité. Même si deux variables sont fortement corrélées, cela ne signifie pas que l’une cause l’autre. Des variables confondantes ou des coïncidences peuvent aussi produire de fortes corrélations.
Quelles erreurs faut-il éviter dans l’analyse de corrélation ?
Les pièges courants incluent l’assimilation à tort de la corrélation à la causalité, l’oubli de l’impact des valeurs aberrantes, l’usage de Pearson pour des relations non linéaires, et l’interprétation de corrélations faibles comme significatives. Pensez aussi à l’étendue et à l’échelle de vos données.