Activité 4.1 Régression linéaire Multiple: Application en Python

Cette activité propose une application pratique de la régression linéaire multiple en Python. Elle permet de comprendre comment utiliser un modèle linéaire multiple pour analyser les relations entre une variable dépendante et plusieurs variables indépendantes, ainsi que pour effectuer des prédictions.

D'après le document Activité 4.1 Régression linéaire Multiple: Application en Python

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Activité 4.1 Régression linéaire Multiple: Application en Python

Document source

Activité 4.1 Régression linéaire Multiple: Application en Python

Data Science, Machine Learning · PDF · 4 pages

Afficher l'aperçu du document

Consulter le document original →

Cette activité propose une application pratique de la régression linéaire multiple en Python. Elle permet de comprendre comment utiliser un modèle linéaire multiple pour analyser les relations entre une variable dépendante et plusieurs variables indépendantes, ainsi que pour effectuer des prédictions. L'exemple utilise des données simples sur les ventes et les investissements publicitaires par média. Pour réaliser cette activité, il est nécessaire d'avoir Python installé, ainsi que les bibliothèques Pandas, NumPy, Matplotlib et scikit-learn.

Objectifs

  • Importer et manipuler des données au format CSV avec Pandas.
  • Créer et ajuster un modèle de régression linéaire multiple avec scikit-learn.
  • Interpréter les coefficients du modèle et les mesures de qualité comme le R² et le RMSE.
  • Visualiser les résultats et les résidus du modèle à l'aide de graphiques.

Prérequis et installation

  • Connaissances de base en Python et en statistiques.
  • Python 2.7 ou Python 3.5 (ou version compatible).
  • Installation d'Anaconda recommandée pour disposer des bibliothèques nécessaires : Pandas, NumPy, Matplotlib, scikit-learn.
  • Fichier de données "Advertising.csv" contenant les variables : "Sales" (variable dépendante) et trois variables d'investissement publicitaire (variables indépendantes).

Chargement des données et des bibliothèques

La première étape consiste à importer les bibliothèques nécessaires et à charger les données depuis un fichier CSV. Pandas est utilisé pour lire le fichier, NumPy pour les calculs numériques et Matplotlib pour les visualisations.

Ce chargement est indispensable car Python ne gère pas nativement les fichiers CSV de manière aussi simple.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Importer les données Advertising.csv
donnees = pd.read_csv('Advertising.csv', index_col=0)
donnees.head()

Un affichage de la tête du tableau (donnees.head()) permet de vérifier que les données ont été correctement importées.

Application du modèle de régression linéaire multiple

On crée un objet de régression linéaire multiple avec la bibliothèque scikit-learn. La variable dépendante y est la colonne "Sales" tandis que les variables indépendantes X correspondent aux autres colonnes du jeu de données.

Cette étape ajuste le modèle aux données en estimant les coefficients par la méthode des moindres carrés.

from sklearn.linear_model import LinearRegression

# Créer un objet de régression linéaire
modeleReg = LinearRegression()

# Définir y et X
list_var = donnees.columns.drop("Sales")
y = donnees.Sales
X = donnees[list_var]

# Ajuster le modèle
modeleReg.fit(X, y)

Un modèle ajusté correctement permet de prédire la variable "Sales" à partir des investissements publicitaires.

Affichage et interprétation des résultats

Une fois le modèle ajusté, on affiche la constante (intercept), les coefficients associés à chaque variable indépendante, le coefficient de détermination R² qui mesure la qualité d'explication du modèle, ainsi que le RMSE (Root Mean Squared Error) qui évalue la qualité de la prédiction.

Deux graphiques sont également générés : le premier montre les valeurs observées de y en fonction des valeurs prédites, le second montre les résidus (différences entre valeurs observées et prédites) en fonction de y.

print modeleReg.intercept_
print modeleReg.coef_

# Calcul du R²
print modeleReg.score(X, y)

# Calcul du RMSE
RMSE = np.sqrt(((y - modeleReg.predict(X))**2).sum() / len(y))
print RMSE

# Graphique des valeurs observées vs valeurs prédites
plt.plot(y, modeleReg.predict(X), '.')
plt.show()

# Graphique des résidus vs valeurs observées
plt.plot(y, y - modeleReg.predict(X), '.')
plt.show()

Un bon modèle aura un R² proche de 1 et un RMSE faible. Le graphique des valeurs prédites doit suivre la diagonale y = x, tandis que les résidus doivent être répartis de manière aléatoire autour de zéro.

Résultats attendus

Après exécution, vous devez obtenir :

  • Une constante (intercept) et trois coefficients correspondant aux variables d'investissement publicitaire.
  • Un coefficient R² indiquant la proportion de variance expliquée par le modèle.
  • Un RMSE indiquant l'erreur moyenne de prédiction.
  • Un graphique où les points sont proches de la droite y = x, montrant la qualité de la prédiction.
  • Un graphique des résidus montrant une distribution aléatoire autour de zéro, sans tendance apparente.

Pièges courants

  • Ne pas vérifier que le fichier "Advertising.csv" est dans le bon répertoire ou que le chemin est correct, ce qui empêche le chargement des données.
  • Confondre la variable dépendante "Sales" avec les variables indépendantes, ce qui fausse l'ajustement du modèle.
  • Oublier d'importer les bibliothèques nécessaires, provoquant des erreurs d'exécution.
  • Interpréter un R² faible comme un bon résultat : un faible R² indique que le modèle n'explique pas bien la variabilité des données.
  • Ne pas examiner les graphiques des résidus, qui peuvent révéler des problèmes de non-linéarité ou d'hétéroscédasticité.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions