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éaire
r = -1 → corrélation négative parfaite (l'une augmente, l'autre diminue)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]|r| > 0.7 → forte corrélation
|r| > 0.3 → modérée
|r| < 0.3 → faiblecorrélation ≠ causalité. 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.
import numpy as np
heures = [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 corr > 0.7:
print('Forte corrélation positive !')
elif 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 →