Exercice 40 / 100

Corrélation

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

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)
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 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).

exercise.py

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