15 KiB
Guide Complet de la Corrélation
📊 Comprendre et maîtriser l'analyse de corrélation pour identifier les relations entre variables et construire des modèles robustes.
Table des Matières
- Qu'est-ce que la Corrélation ?
- Les Trois Méthodes
- Interpréter la Matrice
- Multicolinéarité
- P-Values et Significativité
- Bonnes Pratiques
- Exemples Concrets
Qu'est-ce que la Corrélation ?
Définition
La corrélation mesure la force et la direction de la relation linéaire entre deux variables quantitatives.
Coefficient de Corrélation
Le coefficient de corrélation r varie entre -1 et +1 :
-1 ←----------|----------|----------|----------→ +1
négatif positif
fort fort
Interprétation Générale
| Valeur r | Force | Direction | Signification |
|---|---|---|---|
| 0.9 à 1.0 | Très forte | Positive | X↑ ⇒ Y↑ fortement |
| 0.7 à 0.9 | Forte | Positive | X↑ ⇒ Y↑ |
| 0.5 à 0.7 | Modérée | Positive | X↑ ⇒ Y↑ modérément |
| 0.3 à 0.5 | Faible | Positive | X↑ ⇒ Y↑ légèrement |
| 0.0 à 0.3 | Très faible | Positive | Relation quasi nulle |
| 0.0 | Aucune | - | Indépendance linéaire |
| -0.3 à 0.0 | Très faible | Négative | X↑ ⇒ Y↓ légèrement |
| -0.5 à -0.3 | Faible | Négative | X↑ ⇒ Y↓ |
| -0.7 à -0.5 | Modérée | Négative | X↑ ⇒ Y↓ modérément |
| -0.9 à -0.7 | Forte | Négative | X↑ ⇒ Y↓ |
| -1.0 à -0.9 | Très forte | Négative | X↑ ⇒ Y↓ fortement |
Exemples Visuels
Corrélation Positive Forte (r = 0.95)
┌─────┐
│ Y │ •
│ │ •
│ │ •
│ │ •
│ │•
└─────┴─────→ X
Exemple : Taille vs Poids (plus grand = plus lourd)
Corrélation Négative Forte (r = -0.90)
┌─────┐
│ Y │•
│ │ •
│ │ •
│ │ •
│ │ •
└─────┴─────→ X
Exemple : Vitesse vs Temps (plus vite = moins de temps)
Corrélation Nulle (r = 0.02)
┌─────┐
│ Y │ • • •
│ │• •
│ │ • •
│ │ • •
│ │• •
└─────┴─────→ X
Exemple : Taille vs Note en mathématiques
Les Trois Méthodes
L'application propose 3 méthodes de calcul de corrélation :
1. Pearson (Défaut)
Quand l'utiliser ?
- ✅ Données normalement distribuées
- ✅ Relation linéaire
- ✅ Variables continues
Hypothèses :
- Distribution normale (pas trop asymétrique)
- Pas d'outliers extrêmes
- Relation linéaire
Formule :
Σ[(Xi - X̄)(Yi - Ȳ)]
r = ----------------------------
√[Σ(Xi - X̄)²] √[Σ(Yi - Ȳ)²]
Exemple :
# Température vs Vent (relation linéaire, normale)
# Corrélation de Pearson : r = 0.85 (forte positive)
2. Spearman
Quand l'utiliser ?
- ✅ Données non-paramétriques (pas normales)
- ✅ Relation monotone (pas forcément linéaire)
- ✅ Présence d'outliers
- ✅ Variables ordinales (rangs)
Hypothèses :
- Relation monotone (toujours dans le même sens)
- Moins sensible aux outliers
Principe : Convertit les données en rangs avant calcul.
Exemple :
# Revenu vs Satisfaction (relation monotone mais non linéaire)
# Revenu: [1000, 2000, 5000, 10000, 50000]
# Rangs: [1, 2, 3, 4, 5]
# Corrélation de Spearman : r = 0.90
Différence Pearson vs Spearman :
Pearson (linéaire) :
•
•
•
•
•
Spearman (monotone) :
•
•
•
•
•
3. Kendall (Tau)
Quand l'utiliser ?
- ✅ Petits échantillons (n < 30)
- ✅ Beaucoup de valeurs identiques (ex-aequo)
- ✅ Données ordinales
Hypothèses :
- Mesure la concordance des paires
Principe : Compte les paires concordantes vs discordantes.
Exemple :
# Classement vs Préférence (10 étudiants)
# Kendall Tau = 0.67 (modéré)
Interpréter la Matrice
Structure de la Heatmap
Var1 Var2 Var3 Var4
┌───────┬───────┬───────┬───────┐
Var1 │ 1.00 │ 0.85 │ -0.30 │ 0.15 │
├───────┼───────┼───────┼───────┤
Var2 │ 0.85 │ 1.00 │ -0.20 │ 0.45 │
├───────┼───────┼───────┼───────┤
Var3 │ -0.30 │ -0.20 │ 1.00 │ 0.92 │ ← Multicolinéarité
├───────┼───────┼───────┼───────┤
Var4 │ 0.15 │ 0.45 │ 0.92 │ 1.00 │
└───────┴───────┴───────┴───────┘
Lecture de la Heatmap
Couleurs
- Rouge foncé (r > 0.7) : Forte corrélation positive
- Rouge clair (0.3 < r < 0.7) : Corrélation modérée/positive
- Gris/Blanc (|r| < 0.3) : Corrélation faible/nulle
- Bleu clair (-0.7 < r < -0.3) : Corrélation modérée/négative
- Bleu foncé (r < -0.7) : Forte corrélation négative
Bordure Rouge ⚠️
- Indique une multicolinéarité problématique (|r| ≥ 0.7)
- Entre deux prédicteurs (variables X)
- À éviter dans la régression
Diagonale
- Toujours égale à 1.00 (corrélation de la variable avec elle-même)
- Non pertinente pour l'analyse
Multicolinéarité
Définition
La multicolinéarité se produit lorsque deux ou plusieurs prédicteurs sont fortement corrélés entre eux (|r| ≥ 0.7).
Pourquoi c'est Problématique ?
❌ Effets sur la Régression :
- Coefficients instables (varient beaucoup)
- p-values peu fiables
- Difficulté d'interpréter l'effet isolé de chaque variable
- R² artificiellement élevé
Exemple de Multicolinéarité
# Dataset : Prix immobiliers
# Variables :
# - Surface_m²
# - Surface_pieds² (même variable, unité différente)
# - Prix
# Corrélation Surface_m² vs Surface_pieds² : r = 1.0
# ⚠️ BORDURE ROUGE sur la heatmap
# Problème dans la régression :
# Prix = 50000 + 1000*Surface_m² - 200*Surface_pieds²
# ^^^^^ coefficient positif ^^^^^^^^ coefficient négatif ???
# absurde ! (les deux expliquent la même chose)
Détection
Dans l'application :
- Ouvrez la matrice de corrélation
- Recherchez les bordures rouges entre prédicteurs
- Notez les variables concernées
Solution
Option 1 : Supprimer une variable
# Avant : Surface_m² (r=1.0) vs Surface_pieds²
# Solution : Garder Surface_m², supprimer Surface_pieds²
Option 2 : Combiner les variables
# Avant : Note_Maths, Note_Physique, Note_Chimie (toutes corrélées)
# Solution : Créer "Note_Scientifique" = moyenne des trois
Option 3 : Analyse de corrélation partielle Utiliser des techniques avancées (hors scope du guide)
Checklist Avant Régression
Avant de lancer votre régression, vérifiez :
✅ Aucune bordure rouge entre les prédicteurs potentiels ✅ Si bordure rouge : choisissez la variable la plus corrélée avec la cible ✅ Documentez votre choix de retrait de variable
P-Values et Significativité
Qu'est-ce que la P-Value ?
La p-value mesure la probabilité que la corrélation observée soit due au hasard.
- p-value < 0.05 : Corrélation statistiquement significative (fiable)
- p-value ≥ 0.05 : Corrélation non significative (pourrait être due au hasard)
Interprétation
| Corrélation (r) | P-Value | Interprétation |
|---|---|---|
| 0.85 | p < 0.001 | ✅ Forte et significative |
| 0.60 | p = 0.040 | ✅ Modérée et significative |
| 0.75 | p = 0.080 | ⚠️ Forte mais NON significative (échantillon trop petit) |
| 0.30 | p = 0.200 | ❌ Faible et non significative |
Impact de la Taille d'Échantillon
Pour r = 0.30 :
n = 10 → p = 0.40 (non significatif)
n = 50 → p = 0.03 (significatif)
n = 100 → p = 0.002 (très significatif)
Règle : Plus l'échantillon est grand, plus les petites corrélations deviennent significatives.
Filtre "Significatif Seulement"
Dans l'application :
- Cochez "Significatif seulement (p < 0.05)"
- La heatmap n'affiche que les corrélations statistiquement fiables
- Utile pour filtrer le bruit
Bonnes Pratiques
1. Vérifier les Hypothèses
Pour Pearson :
# Test de normalité (Shapiro-Wilk)
from scipy.stats import shapiro
stat, p = shapiro(data['variable'])
if p > 0.05:
print("Distribution normale → Pearson OK")
else:
print("Distribution non normale → Utiliser Spearman")
Vérification visuelle :
import matplotlib.pyplot as plt
plt.hist(data['variable'])
plt.show()
# Forme de cloche = normale
2. Traiter les Outliers
Les outliers faussent fortement la corrélation Pearson :
# Sans outlier : r = 0.95
X = [1, 2, 3, 4, 5]
Y = [2, 4, 6, 8, 10]
# Avec outlier : r = 0.40
X = [1, 2, 3, 4, 100] # 100 est outlier
Y = [2, 4, 6, 8, 10]
# Solution : utiliser Spearman (robuste aux outliers)
# Ou supprimer l'outlier
3. Corrélation ≠ Causalité
⚠️ Attention : Une corrélation forte n'implique PAS que X cause Y.
Exemples classiques :
-
🍦 Ventes de glace vs 🦈 Attaques de requins
- Corrélation : r = 0.90
- Cause commune : 🌞 Été (chaleur)
- Solution : Pas de causalité directe
-
☕ Café vs 💰 Revenu
- Corrélation : r = 0.75
- Explication : Les riches boivent plus de café (ou l'inverse ?)
- Nécessite une expérience contrôlée
4. Corrélation de Spearman pour les Relations Non-Linéaires
# Relation exponentielle
X = [1, 2, 3, 4, 5]
Y = [1, 4, 9, 16, 25] # Y = X²
# Pearson : r = 0.97 (mais PAS linéaire !)
# Spearman : r = 1.00 (monotone parfaite)
5. Matrice de Corrélation Avant Régression
Workflow recommandé :
1. Charger les données
↓
2. Matrice de corrélation
↓
3. Identifier les variables fortement corrélées avec la cible (|r| > 0.5)
↓
4. Repérer la multicolinéarité entre prédicteurs (bordure rouge)
↓
5. Sélectionner les prédicteurs finaux (pas de multicolinéarité)
↓
6. Régression
Exemples Concrets
Exemple 1 : Immobilier
Dataset : Prix, Surface, Chambres, Jardin, Garage, Distance_Centre
Matrice de corrélation :
Prix Surface Chambres Jardin Garage Distance
Prix 1.00 0.85 0.65 0.70 0.55 -0.75
Surface 0.85 1.00 0.72 0.60 0.50 -0.40
Chambres 0.65 0.72 1.00 0.45 0.35 -0.25
Jardin 0.70 0.60 0.45 1.00 0.30 -0.50
Garage 0.55 0.50 0.35 0.30 1.00 -0.20
Distance -0.75 -0.40 -0.25 -0.50 -0.20 1.00
Analyse :
-
Variables corrélées avec le Prix :
- Surface : r = 0.85 ✅ (très forte)
- Distance : r = -0.75 ✅ (forte négative)
- Jardin : r = 0.70 ✅ (forte)
- Chambres : r = 0.65 ✅ (modérée)
-
Multicolinéarité :
- Surface vs Chambres : r = 0.72 ⚠️ (proche du seuil)
- Si r > 0.7 : choisir une seule variable
-
Sélection finale :
- X = Surface, Distance, Jardin
- Éviter Chambres (multicolinéarité avec Surface)
Exemple 2 : Santé
Dataset : IMC, Tension, Cholestérol, Âge, Sport, Calories
Matrice (Spearman) :
IMC Tension Cholestérol Âge Sport Calories
IMC 1.00 0.55 0.48 0.30 -0.60 0.70
Tension 0.55 1.00 0.65 0.45 -0.40 0.50
Cholestérol 0.48 0.65 1.00 0.60 -0.35 0.45
Âge 0.30 0.45 0.60 1.00 -0.25 0.20
Sport -0.60 -0.40 -0.35 -0.25 1.00 -0.50
Calories 0.70 0.50 0.45 0.20 -0.50 1.00
Analyse :
- Prédicteurs du Tension : Cholestérol (0.65), IMC (0.55)
- Multicolinéarité : IMC vs Calories (0.70) ⚠️
- Action : Garder IMC (plus corrélé avec Tension), exclure Calories
Exemple 3 : Marketing
Dataset : Ventes, Budget_TV, Budget_Radio, Budget_Online, Prix, Concurrence
Matrice :
Ventes Budget_TV Budget_Radio Budget_Online Prix Concurrence
Ventes 1.00 0.80 0.45 0.72 -0.60 -0.40
Budget_TV 0.80 1.00 0.30 0.55 -0.20 -0.10
Budget_Radio 0.45 0.30 1.00 0.35 -0.15 -0.05
Budget_Online 0.72 0.55 0.35 1.00 -0.25 -0.15
Prix -0.60 -0.20 -0.15 -0.25 1.00 0.20
Concurrence -0.40 -0.10 -0.05 -0.15 0.20 1.00
Décisions :
- Meilleur canal : TV (r = 0.80)
- Deuxième : Online (r = 0.72)
- Radio : Moins efficace (r = 0.45)
- Pas de multicolinéarité sévère entre canaux
- Sélection : Budget_TV, Budget_Online, Prix, Concurrence
📊 Fonctionnalités de l'Application
Contrôles
-
Sélection de la méthode
- Menu déroulant : Pearson / Spearman / Kendall
- Défaut : Pearson
-
Seuil minimum
- Filtre les corrélations faibles
- Exemple : 0.5 n'affiche que |r| ≥ 0.5
-
Filtre de significativité
- Cochez "Significatif seulement"
- Garantit p < 0.05
-
Export CSV
- Téléchargez la matrice complète
- Inclut corrélations et p-values
Composants Visuels
Cartes de Résumé
- Corrélations les plus fortes : Top 5 par |r|
- Corrélations les plus faibles : Bottom 5 non nulles
Tooltip (Survol)
Cliquez sur une case pour voir :
- Noms des variables
- Coefficient de corrélation
- P-value
- Significativité (✅/❌)
- Interprétation (Fort/Moyen/Faible)
🎯 Checklist d'Analyse
Avant de passer à la régression :
- Méthode choisie selon la distribution des données
- Corrélations avec la cible identifiées (|r| > 0.5 souhaité)
- Multicolinéarité vérifiée (pas de bordure rouge entre prédicteurs)
- P-values significatives (p < 0.05)
- Outliers traités (si Pearson)
- Variables sélectionnées documentées
- Résultats exportés pour référence future
Version : 1.0 Projet : Application d'Analyse de Données Auteur : Documentation Utilisateur
🔗 Voir aussi : Guide Régression | Guide Outliers