Exercice 40 / 100

Corrélation

ConsigneCalculez la corrélation entre heures d'étude et notes

📖 Cours

La corrélation mesure à quel point deux variables varient ensemble. Le coefficient de Pearson varie entre -1 et 1.

r = 1 → corrélation positive parfaite (l'une augmente, l'autre aussi)r = 0 → pas de relation linéairer = -1 → corrélation négative parfaite (l'une augmente, l'autre diminue)
Le coefficient de corrélation se lit sur un axe de moins un à un : à zéro aucune relation linéaire, aux deux extrémités une relation parfaite
Le coefficient de corrélation se lit sur un axe de moins un à un : à zéro aucune relation linéaire, aux deux extrémités une relation parfaite

Calcul avec NumPy

np.corrcoef renvoie une matrice de corrélation. Pour 2 variables :

[[r(x,x) r(x,y)] [r(y,x) r(y,y)]]

La case [0, 1] (ou [1, 0]) contient le coefficient qui nous intéresse :

corr = np.corrcoef(x, y)[0, 1]

Interpréter |r|

|r| > 0.7 → forte corrélation|r| > 0.3 → modérée|r| < 0.3 → faible

corrélationcausalité. Deux variables corrélées n'impliquent pas que l'une cause l'autre. Exemple classique : ventes de glace et noyades sont corrélées en été — pas parce que la glace fait se noyer, mais parce que les deux dépendent de la température.

Le coef de Pearson mesure une relation linéaire. Une relation parfaite mais courbe (ex y = x²) peut donner r ≈ 0.

Exemple complet

import numpy as npheures = [2, 5, 1, 8, 3, 7, 4, 6]notes = [45, 78, 30, 92, 55, 88, 65, 82]
corr = np.corrcoef(heures, notes)[0, 1]print(f'Corrélation: {corr:.3f}')
if abs(corr) > 0.7: print('Forte corrélation')elif abs(corr) > 0.3: print('Corrélation modérée')else: print('Faible corrélation')

Pour mesurer une dépendance non-linéaire monotone, utilise plutôt Spearman (scipy.stats.spearmanr).

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →