# Guide Complet de la Régression 📈 **Maîtriser l'analyse de régression** pour modéliser, prédire et comprendre les relations entre variables. --- ## Table des Matières 1. [Concepts Fondamentaux](#concepts-fondamentaux) 2. [Types de Modèles](#types-de-modèles) 3. [Configuration du Modèle](#configuration-du-modèle) 4. [Interprétation des Résultats](#interprétation-des-résultats) 5. [Équations du Modèle](#équations-du-modèle) 6. [Diagnostics Graphiques](#diagnostics-graphiques) 7. [Bonnes Pratiques](#bonnes-pratiques) 8. [Exemples Détaillés](#exemples-détaillés) --- ## Concepts Fondamentaux ### Qu'est-ce que la Régression ? La **régression** est une méthode statistique qui permet de : ✅ **Modéliser** la relation entre une variable cible (Y) et des prédicteurs (X) ✅ **Prédire** les valeurs de Y pour de nouvelles données ✅ **Comprendre** l'impact de chaque variable sur Y ✅ **Quantifier** l'incertitude des prédictions ### Notation Mathématique ``` Y = f(X) + ε Où : - Y = Variable cible (à expliquer/prédire) - X = Variables explicatives (prédicteurs) - f = Fonction du modèle - ε = Erreur résiduelle (bruit) ``` ### Terminologie | Terme | Définition | Exemple | |-------|------------|---------| | **Variable cible (Y)** | Variable à expliquer/prédire | Prix, Ventes, Score | | **Prédicteurs (X)** | Variables qui expliquent Y | Surface, Budget, Âge | | **Coefficients** | Impact de chaque X sur Y | +2500 pour Surface | | **Intercept** | Valeur de Y quand tous les X = 0 | Prix de base | | **Résidus** | Différence entre réel et prédit | Erreur de prédiction | | **R²** | Proportion de variance expliquée | 0.85 = 85% expliqué | --- ## Types de Modèles L'application propose **4 types** de modèles de régression : ### 1. Régression Linéaire 📐 **Objectif** : Modéliser une relation **linéaire** entre X et Y. **Équation** : ``` Y = β₀ + β₁X₁ + β₂X₂ + ... + βₙXₙ + ε ``` **Quand l'utiliser ?** - ✅ Relation **linéaire** évidente (scatter plot en ligne droite) - ✅ Cible **numérique continue** - ✅ Résidus **normalement distribués** **Hypothèses** : - Linéarité de la relation - Indépendance des erreurs - Homoscédasticité (variance constante) - Normalité des résidus **Exemple** : ```python # Prédire le prix immobilier Prix = 50000 + 2500*Surface + 15000*Chambres # Intercept : 50000€ (prix de base) # Surface : +2500€ par m² # Chambres : +15000€ par chambre ``` **Graphique typique** : ``` Prix │ • │ • • │ • • │ • • │• • └─────────→ Surface (Ligne droite) ``` --- ### 2. Régression Logistique 🎲 **Objectif** : Prédire la **probabilité** d'un événement binaire. **Équation** : ``` P(Y=1) = 1 / (1 + e^-(β₀ + β₁X₁ + ... + βₙXₙ)) ``` **Quand l'utiliser ?** - ✅ Cible **binaire** (0/1, oui/non, vrai/faux) - ✅ Cible **catégorique** (convertie en binaire) - ✅ Intéressé par la **probabilité**, pas juste la classe **Hypothèses** : - Indépendance des observations - Pas de multicolinéarité sévère - Taille d'échantillon suffisante **Exemple** : ```python # Prédire si un client va acheter (1) ou non (0) P(Achat) = f(Âge, Revenu, Historique) # Résultat : Probabilité de 0 à 1 # Si P > 0.5 : Prédit "Achat" # Si P ≤ 0.5 : Prédit "Pas d'achat" ``` **Graphique typique** : ``` P(Achat) 1.0 ┤ ┌──────── │ ┌ │ ┌ │ ┌ │ ┌ 0.0 ┼─────┬─────→ Âge 30 (Courbe en S) ``` **Interprétation des coefficients** : - **Odds Ratio** : e^coefficient - Si coefficient = 0.5 → OR = 1.65 (65% plus de chances) - Si coefficient = -0.5 → OR = 0.61 (39% moins de chances) --- ### 3. Régression Polynomial 📊 **Objectif** : Capturer des relations **non linéaires** (courbes). **Équation** : ``` Y = β₀ + β₁X + β₂X² + β₃X³ + ... + ε ``` **Quand l'utiliser ?** - ✅ Relation **courbe** évidente sur le scatter plot - ✅ Résidus du modèle linéaire montrent un motif - ✅ Relation quadratique (en U ou en cloche) **Degré du polynôme** : - **Degré 2** : Parabole (U ou ∩) - **Degré 3** : Courbe en S - **Degré 4-5** : Formes complexes (⚠️ sur-apprentissage) **Exemple** : ```python # Relation entre Budget_Publicité et Ventes # (avec rendements décroissants) Ventes = 1000 + 50*Budget - 0.1*Budget² # Budget optimal : Budget* = 50 / (2*0.1) = 250€ # Ventes maximales : 1000 + 50*250 - 0.1*250² = 7250 ``` **Graphique typique** : ``` Ventes │ • │ • • │ • • │ • • │ • • └───────────→ Budget_Publicité (Courbe en ∩) ``` **⚠️ Risques** : - **Sur-apprentissage** : Degré trop élevé s'adapte au bruit - **Extrapolation** : Prédictions dangereuses hors des données - **Interprétation** : Coefficients difficiles à expliquer **Recommandation** : Commencer avec le degré 2, augmenter progressivement. --- ### 4. Régression Exponentielle 📈 **Objectif** : Modéliser une **croissance/décroissance exponentielle**. **Équation** : ``` Y = e^(β₀ + β₁X + ε) = e^β₀ × e^β₁X × e^ε ``` **Quand l'utiliser ?** - ✅ Croissance **exponentielle** (population, virus, intérêts composés) - ✅ Décroissance exponentielle (demi-vie, dépréciation) - ✅ Y **toujours positif** **Hypothèses** : - Y > 0 (valeurs strictement positives) - Relation logarithmique entre log(Y) et X **Exemple** : ```python # Croissance d'une population bactérienne Population = e^(4.5 + 0.1*Temps) # T0 : Population = e^4.5 = 90 # T10 : Population = e^5.5 = 245 # T20 : Population = e^6.5 = 665 # Temps de doublement : ln(2)/0.1 = 6.93 unités ``` **Graphique typique** : ``` Population │ • │ • │ • │ • │ • └───────────→ Temps (Courbe en J) ``` **⚠️ Limites** : - Ne peut pas modéliser Y ≤ 0 - Très sensible aux outliers - Difficile à interpréter directement --- ## Configuration du Modèle ### Étape 1 : Sélection de la Variable Cible (Y) **Règles** : - Pour **Linéaire/Polynomial/Exponentielle** : Y doit être **numérique continue** - ✅ Prix, Taille, Poids, Ventes, Temps - ❌ Catégorie, Couleur, Oui/Non - Pour **Logistique** : Y doit être **catégorique ou binaire** - ✅ Achat (0/1), Spam (vrai/faux), Classe (A/B/C) - ❌ Prix continu, ID unique **Dans l'application** : 1. Ouvrez le panneau "Configuration Avancée" 2. Sélectionnez votre cible dans le menu déroulant "Variable Cible (Y)" 3. Vérifiez les alertes de validation **Exemple de validation** : ``` ✅ Linéaire + Prix (numérique) → OK ❌ Linéaire + Catégorie (texte) → Erreur : "Ce modèle nécessite une cible numérique continue" ✅ Logistique + Catégorie (texte) → OK ✅ Logistique + Achat (0/1) → OK ``` --- ### Étape 2 : Sélection des Prédicteurs (X) **Automatique** : L'application recommande automatiquement les **5 meilleures variables** basées sur leur importance (Random Forest). **Manuel** : Vous pouvez ajuster la sélection : - ✅ Cochez : Inclure la variable - ❌ Décochez : Exclure la variable **Critères de sélection** : 1. **Corrélation avec Y** (via matrice de corrélation) - Privilégiez |r| > 0.5 - Évitez |r| < 0.3 (trop faible) 2. **Multicolinéarité** entre X - ⚠️ Évitez |r| ≥ 0.7 entre prédicteurs - Choisissez la variable la plus corrélée avec Y 3. **Nombre de prédicteurs** - Règle : n/10 (n = taille échantillon) - Exemple : 100 observations → max 10 prédicteurs - Préférez **qualité > quantité** **Exemple de workflow** : ``` 1. Matrice de corrélation ├─ Prix vs Surface : r = 0.85 ✅ ├─ Prix vs Chambres : r = 0.65 ✅ ├─ Prix vs Jardin : r = 0.70 ✅ └─ Prix vs Garage : r = 0.45 ⚠️ (faible) 2. Multicolinéarité ├─ Surface vs Chambres : r = 0.72 ⚠️ (problématique) └─ Surface vs Jardin : r = 0.50 ✅ 3. Sélection finale ├─ Surface (meilleure corrélation avec Prix) ├─ Jardin (pas de multicolinéarité) └─ Exclure Chambres (multicolinéarité avec Surface) ``` --- ### Étape 3 : Options Avancées #### Pour Polynomial **Degré du polynôme** (2 à 5) : - **Degré 2** : Courbe simple (U ou ∩) - **Degré 3** : Courbe en S - **Degré 4-5** : Formes complexes (⚠️ risque de sur-apprentissage) **Recommandation** : ``` 1. Commencez avec le degré 2 2. Vérifiez le R² ajusté (doit augmenter) 3. Inspectez les résidus (pas de motif) 4. Si amélioration → essayez degré 3 5. Si dégradation → revenez au degré précédent ``` #### Pour Linéaire/Polynomial **Inclure interactions** (x₁ × x₂) : - Crée des termes croisés entre variables - Exemple : Surface × Chambres, Âge × Revenu - Utile pour capturer les **effets combinés** **Quand l'utiliser ?** - ✅ Effet d'une variable dépend d'une autre - ✅ Interaction théorique justifiée - ❌ Échantillon trop petit (< 50 observations) **Exemple** : ```python # Sans interaction Salaire = 2000 + 50*Expérience + 100*Formation # Avec interaction Salaire = 2000 + 50*Expérience + 100*Formation + 5*(Expérience×Formation) # Interprétation : L'effet de l'expérience est plus fort # avec un niveau de formation élevé ``` --- ## Interprétation des Résultats ### 1. Métriques de Qualité du Modèle #### R-Squared (R² ou Coefficient de Détermination) **Définition** : Proportion de la variance de Y expliquée par le modèle. ``` R² = 1 - (Variance résiduelle / Variance totale) ``` **Interprétation** : | R² | Qualité | Signification | |----|---------|--------------| | **0.90 - 1.00** | Excellent | Le modèle explique 90-100% de la variance | | **0.70 - 0.90** | Bon | Le modèle explique 70-90% de la variance | | **0.50 - 0.70** | Modéré | Le modèle explique 50-70% de la variance | | **0.30 - 0.50** | Faible | Le modèle explique 30-50% de la variance | | **< 0.30** | Très faible | Le modèle est peu utile | **Exemple** : ```python # R² = 0.85 # Signification : 85% de la variation du Prix est expliquée par # les variables Surface, Chambres, Jardin # Les 15% restants sont dus à des facteurs non observés ``` ⚠️ **Limites** : - R² augmente **toujours** avec plus de variables - Ne garantit pas la **causalité** - Peut être **artificiellement élevé** avec outliers --- #### Adjusted R-Squared (R² Ajusté) **Définition** : R² corrigé pour pénaliser les variables inutiles. ``` R²_adj = 1 - (1 - R²) × (n - 1) / (n - p - 1) Où : - n = taille de l'échantillon - p = nombre de prédicteurs ``` **Quand l'utiliser ?** - Pour comparer des modèles avec **nombres de variables différents** - Pour vérifier si une nouvelle variable **améliore vraiment** le modèle **Règle** : - Si R²_adj < R² → **Trop de variables inutiles** - Si R²_augmente quand on ajoute une variable → **Variable utile** **Exemple** : ```python # Modèle 1 : R² = 0.85, R²_adj = 0.84, p = 5 variables # Modèle 2 : R² = 0.86, R²_adj = 0.83, p = 10 variables # Conclusion : Modèle 1 est meilleur (R²_adj plus élevé # avec moins de variables) ``` --- #### AIC et BIC (Critères d'Information) **Définition** : Mesurent la **qualité** du modèle avec **pénalité pour la complexité**. ``` AIC = 2k - 2ln(L) BIC = k×ln(n) - 2ln(L) Où : - k = nombre de paramètres - L = vraisemblance du modèle - n = taille de l'échantillon ``` **Interprétation** : - **Plus bas = meilleur** - BIC pénalise plus fortement la complexité - Utile pour comparer **modèles non emboîtés** **Exemple** : ```python # Modèle linéaire : AIC = 450, BIC = 460 # Modèle polynomial : AIC = 430, BIC = 455 # Conclusion : Polynomial est meilleur (AIC plus bas) # Mais linéaire est plus simple (BIC proche) ``` --- ### 2. Tableau des Coefficients #### Structure | Variable | Coefficient | P-Value | Fiabilité | |----------|-------------|---------|-----------| | const (Intercept) | 50000.00 | 0.001 | ✅ FIABLE | | Surface | 2500.50 | 0.000 | ✅ FIABLE | | Chambres | 12000.00 | 0.040 | ✅ FIABLE | | Jardin | 8000.00 | 0.150 | ❌ INCERTAIN | #### Coefficient **Définition** : Changement moyen de Y quand X augmente de 1 unité. **Interprétation** : ```python # Y = 50000 + 2500*Surface + 12000*Chambres + 8000*Jardin # Surface : coefficient = +2500 # → Si Surface augmente de 1 m², Prix augmente de 2500€ # Chambres : coefficient = +12000 # → Si Chambres augmente de 1, Prix augmente de 12000€ # Jardin : coefficient = +8000 # → Si Jardin passe de non à oui, Prix augmente de 8000€ ``` **Signe du coefficient** : - **Positif (+)** : X↑ ⇒ Y↑ (relation positive) - **Négatif (-)** : X↑ ⇒ Y↓ (relation négative) - **Proche de 0** : X a peu d'effet sur Y --- #### P-Value **Définition** : Probabilité que le coefficient soit dû au hasard. **Règle** : - **p < 0.05** : Coefficient **statistiquement significatif** (FIABLE) - **p ≥ 0.05** : Coefficient **non significatif** (INCERTAIN) **Exemple** : ```python # Surface : p = 0.000 (< 0.05) → Fiable # Jardin : p = 0.150 (≥ 0.05) → Incertain (pourrait être 0) # Action : Retirer Jardin du modèle ``` **⚠️ Attention** : - Une p-value > 0.05 ne signifie pas "pas d'effet" - Elle signifie "pas assez de preuves" (échantillon trop petit) --- #### Écart-Type (Std Error) **Définition** : Incertitude sur l'estimation du coefficient. **Intervalle de confiance à 95%** : ``` IC 95% = Coefficient ± 1.96 × Std_Error ``` **Exemple** : ```python # Surface : coefficient = 2500, std_error = 200 # IC 95% = [2500 - 1.96×200, 2500 + 1.96×200] # = [2108, 2892] # Interprétation : On est sûr à 95% que l'effet réel # de la surface est entre 2108€ et 2892€ par m² ``` --- ### 3. Diagnostic des Résidus #### Résidus **Définition** : Différence entre la valeur réelle et la prédite. ``` Résidu = Y_réel - Y_prédit ``` **Propriétés souhaitées** : - ✅ **Moyenne = 0** : Pas de biais systématique - ✅ **Distribution normale** : Pour les intervalles de confiance - ✅ **Homoscédasticité** : Variance constante - ✅ **Indépendance** : Pas d'autocorrélation **Graphique Résidus vs Prédits** : ``` │ • • │ • • • │ • • • • (Bien : dispersion aléatoire) │• • • └────────────────→ Prédits ``` ``` │ • • │ • • • │ • • (Mal : motif en U = relation non linéaire) │ • • └────────────────→ Prédits ``` --- ## Équations du Modèle L'application génère automatiquement l'équation dans **3 formats** : ### 1. LaTeX (Mathématique) **Usage** : Rapports, publications scientifiques, présentations. **Exemple** : ```latex $$y = 1.234567 + 2.345678x_{0} + 3.456789x_{0}^{2}$$ ``` **Rendu** (dans un document LaTeX) : ``` y = 1.234567 + 2.345678x₀ + 3.456789x₀² ``` --- ### 2. Python (Code) **Usage** : Implémentation directe dans un script Python. **Exemple** : ```python y = 1.234567 + 2.345678*x0 + 3.456789*x0**2 ``` **Utilisation** : ```python # Fonction de prédiction def predict(x0): return 1.234567 + 2.345678*x0 + 3.456789*x0**2 # Prédiction pour x0 = 5 resultat = predict(5) print(resultat) # 107.123457 ``` --- ### 3. Excel (Formule) **Usage** : Utilisation directe dans une cellule Excel/Google Sheets. **Exemple** : ``` =1.234567 + 2.345678*A1 + 3.456789*A1^2 ``` **Correspondance des colonnes** : - `x0` → Cellule `A1` - `x1` → Cellule `B1` - `x2` → Cellule `C1` - etc. **Utilisation** : ``` A B C 1 [Surface] [x0=50] =1.234567 + 2.345678*B1 + 3.456789*B1^2 ``` **Conversion automatique** : - `x0^2` → `A1^2` - `x0 x1` → `A1*B1` - `x0^2 x1` → `(A1^2)*B1` --- ## Diagnostics Graphiques ### 1. Fit Plot (Régression Univariée) **Objectif** : Vérifier visuellement l'ajustement du modèle aux données. **Composants** : - **Points gris** : Données réelles (X, Y_réel) - **Ligne bleue** : Prédictions du modèle (X, Y_prédit) **Interprétation** : ``` Bon ajustement : Y │ • │ •● ← Ligne suit les points │ • ● │ • ● │• ● └─────────→ X Mauvais ajustement : Y │ • │ •• │ • ● ← Ligne ne suit pas │ • ●● │• ● └─────────→ X ``` --- ### 2. Partial Regression Plot (Régression Multivariée) **Objectif** : Visualiser l'**effet isolé** de chaque variable, contrôlant les autres. **Principe** : - Montre la relation entre **X et Y**, après avoir retiré l'effet des autres variables - La **pente** de la tendance = **coefficient** du modèle - Utile pour comprendre la **contribution unique** de chaque prédicteur **Interprétation** : ``` Y_résiduels │ + │ • │ • ● ← Pente positive = coefficient positif 0 │───●────●─── │ • • - │• └────────────→ X_résiduels ``` **Cas d'usage** : - Identifier les variables avec **effet non linéaire** - Détecter les **influences** (outliers sur une variable spécifique) - Confirmer le **signe** des coefficients --- ### 3. Parity Plot (Validation) **Objectif** : Vérifier la qualité des prédictions. **Composants** : - **Diagonale rouge** : Y = X (prédictions parfaites) - **Points violets** : (Y_réel, Y_prédit) **Interprétation** : ``` Y_prédit │ │ • • (Bien : points près de la diagonale) 100├ • • │ • • 50├• • • │ └────────────→ Y_réel 50 100 Y_prédit │ │ • (Mal : points loin de la diagonale) 100├ • │ • 50├ │• └────────────→ Y_réel 50 100 ``` **Métriques dérivées** : - **MAE** (Mean Absolute Error) : |Y_réel - Y_prédit| - **RMSE** (Root Mean Squared Error) : √(Σ(Y_réel - Y_prédit)²/n) - **MAPE** (Mean Absolute Percentage Error) : 100×|Y_réel - Y_prédit|/Y_réel --- ## Bonnes Pratiques ### Workflow Recommencé ``` 1. Exploration des données ├─ Vérifier les types (numérique, catégorique) ├─ Identifier les outliers └─ Statistiques descriptives 2. Matrice de corrélation ├─ Identifier les variables corrélées avec Y ├─ Repérer la multicolinéarité └─ Sélectionner les prédicteurs candidats 3. Régression simple ├─ Commencer avec 1-2 prédicteurs ├─ Utiliser le modèle linéaire └─ Vérifier les hypothèses (résidus) 4. Amélioration itérative ├─ Ajouter des variables (si pertinent) ├─ Tester polynomial (si relation courbe) ├─ Inclure interactions (si justifié) └─ Comparer les modèles (R²_adj, AIC, BIC) 5. Validation finale ├─ Parity Plot (qualité des prédictions) ├─ Diagnostic des résidus (pas de motif) ├─ Vérifier les p-values (< 0.05) └─ Interpréter les coefficients 6. Documentation ├─ Exporter l'équation ├─ Sauvegarder les graphiques └─ Noter les décisions (variables exclues, outliers retirés) ``` --- ### Erreurs Courantes ❌ **Sur-apprentissage (Overfitting)** ```python # Trop de variables par rapport à l'échantillon n = 50 observations p = 15 prédicteurs # Trop ! # Signes : # - R² très élevé (> 0.95) # - R²_adj beaucoup plus bas que R² # - Coefficients irréalistes # Solution : Réduire le nombre de variables ``` ❌ **Sous-apprentissage (Underfitting)** ```python # Modèle trop simple pour la relation # Relation courbe modélisée par linéaire # Signes : # - R² très faible (< 0.30) # - Motif dans les résidus (forme en U) # Solution : Essayer polynomial ``` ❌ **Multicolinéarité ignorée** ```python # Inclure des variables fortement corrélées # Surface_m² (r=1.0) vs Surface_pieds² # Signes : # - Coefficients contre-intuitifs # - p-values élevées malgré un bon R² # - Coefficients instables (changent beaucoup si on retire une variable) # Solution : Matrice de corrélation AVANT ``` ❌ **Interprétation causale abusive** ```python # Corrélation ≠ Causalité # Y = 0.5*X ne signifie pas que X cause Y # Exemple : Glace vs Requins # Corrélation forte mais relation non causale # (Facteur commun : Été) # Solution : Expérience contrôlée ou avis d'expert ``` --- ## Exemples Détaillés ### Exemple 1 : Prix Immobilier **Données** (100 maisons) : - Prix (€) : Cible - Surface (m²) - Chambres - Jardin (0/1) - Garage (0/1) - Distance_Centre (km) --- #### Étape 1 : 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** : - **Meilleurs prédicteurs** : Surface (0.85), Distance (-0.75), Jardin (0.70) - **Multicolinéarité** : Surface vs Chambres (0.72) ⚠️ - **Décision** : Garder Surface (meilleure corrélation), exclure Chambres --- #### Étape 2 : Régression Linéaire **Modèle** : ```python Prix = β₀ + β₁×Surface + β₂×Distance + β₃×Jardin ``` **Résultats** : ``` R² = 0.87 R²_adj = 0.86 AIC = 1234 BIC = 1250 ``` **Coefficients** : ``` Variable Coefficient P-Value Fiabilité const 50000.00 0.001 ✅ FIABLE Surface 2500.50 0.000 ✅ FIABLE Distance -5000.00 0.002 ✅ FIABLE Jardin 15000.00 0.030 ✅ FIABLE ``` --- #### Étape 3 : Interprétation **Équation** : ``` Prix = 50000 + 2500×Surface - 5000×Distance + 15000×Jardin ``` **Signification** : - **Prix de base** : 50000€ (pour Surface=0, Distance=0, Sans jardin) - **Surface** : +2500€ par m² - **Distance** : -5000€ par km du centre - **Jardin** : +15000€ si jardin présent **Exemple de prédiction** : ```python # Maison : 80 m², 5 km du centre, avec jardin Prix = 50000 + 2500×80 - 5000×5 + 15000×1 = 50000 + 200000 - 25000 + 15000 = 240000€ ``` --- ### Exemple 2 : Probabilité d'Achat **Données** (500 clients) : - Achat (0/1) : Cible - Âge - Revenu (€/mois) - Historique (nombre d'achats précédents) --- #### Régression Logistique **Résultats** : ``` Pseudo R² = 0.35 AIC = 890 BIC = 910 ``` **Coefficients** : ``` Variable Coefficient P-Value Odds_Ratio Fiabilité const -5.000 0.001 - ✅ FIABLE Âge 0.050 0.003 1.05 ✅ FIABLE Revenu 0.0002 0.000 1.10 ✅ FIABLE Historique 0.800 0.000 2.23 ✅ FIABLE ``` --- #### Interprétation **Équation de probabilité** : ```python P(Achat) = 1 / (1 + e^-(-5 + 0.05×Âge + 0.0002×Revenu + 0.8×Historique)) ``` **Odds Ratios** : - **Âge** : OR = 1.05 → Chaque année augmente la probabilité de 5% - **Revenu** : OR = 1.10 → Chaque 1000€ augmente la probabilité de 10% - **Historique** : OR = 2.23 → Chaque achat précédent double la probabilité **Exemple de prédiction** : ```python # Client : 45 ans, 3000€/mois, 3 achats précédents z = -5 + 0.05×45 + 0.0002×3000 + 0.8×3 = -5 + 2.25 + 0.6 + 2.4 = 0.25 P(Achat) = 1 / (1 + e^-0.25) = 1 / (1 + 0.78) = 0.56 # Interprétation : 56% de probabilité d'achat ``` --- ### Exemple 3 : Budget Publicité Optimal **Données** (24 mois) : - Ventes (k€) - Budget_TV (k€) - Budget_Radio (k€) --- #### Régression Polynomial (Degré 2) **Modèle** : ```python Ventes = β₀ + β₁×Budget_TV + β₂×Budget_TV² ``` **Résultats** : ``` R² = 0.92 R²_adj = 0.91 ``` **Coefficients** : ``` Variable Coefficient P-Value Fiabilité const 10.000 0.000 ✅ FIABLE Budget_TV 5.000 0.000 ✅ FIABLE Budget_TV² -0.050 0.001 ✅ FIABLE ``` --- #### Interprétation **Équation** : ``` Ventes = 10 + 5×Budget_TV - 0.05×Budget_TV² ``` **Budget optimal** : ```python # Dérivée = 0 d(Ventes)/d(Budget) = 5 - 0.1×Budget = 0 Budget* = 5 / 0.1 = 50 k€ # Ventes maximales Ventes_max = 10 + 5×50 - 0.05×50² = 10 + 250 - 125 = 135 k€ ``` **Graphique** : ``` Ventes │ • 135┤ • (Maximum) │ • • 100┤ • • │ • • 50┤ • • │ • • 10┼────────────────→ Budget_TV 0 25 50 75 ``` --- ## 🎯 Conclusion La régression est un outil puissant pour : ✅ **Comprendre** les relations entre variables ✅ **Prédire** des valeurs futures ✅ **Quantifier** l'impact de chaque facteur ✅ **Optimiser** les décisions (budget, prix, etc.) **Points clés à retenir** : - Toujours vérifier la **matrice de corrélation** avant - Surveiller le **R² ajusté** (pas juste le R²) - Respecter les **p-values** (< 0.05) - Valider avec les **graphiques diagnostiques** - Documenter vos **décisions** --- **Version** : 1.0 **Projet** : Application d'Analyse de Données 🔗 **Voir aussi** : [Guide Corrélation](CORRELATION_GUIDE.md) | [Guide Outliers](OUTLIER_GUIDE.md)