Activité 4.1 Régression linéaire Multiple
Application en Python
Dans cette activité, il ne s’agit pas de développer le Modèle Linéaire Multiple (MLM) mais d’illustrer
son application Python. En effet, que ce soit pour la compréhension des relations entre des variables
ou pour la prédiction, MLM est en général une étape quasi obligatoire dans toute méthodologie data
science. Pour ce faire, l’estimation des paramètres de ce modèle se fait par l’estimateur des moindres
carrés et la qualité d’explication est généralement évaluée par le R². Il est aussi possible d’évaluer la
qualité de prédiction avec le RMSE (racine de la somme des carrés des erreurs).
Pour utiliser python, il faut l’installer et faire un certain nombre de choix. Le premier étant la version.
Dans le cadre de cet exemple, nous utilisons Python 2.7 (l’ensemble des bibliothèques et outils peuvent
être utilisés aussi avec Python 3.5). Pour une application en data science, il est souvent plus efficace
de télécharger Anaconda qui en plus de Python propose des interfaces améliorées et toutes les
Publicité
bibliothèques nécessaires en data science. Voici leur site : https://www.continuum.io/downloads
Dans le cadre de cet exemple, nous utilisons des données simples reliant un nombre de ventes et
l’investissement dans différents médias. Le modèle de régression multiple a une variable dépendante
y mesurant le nombre de ventes et 3 variables indépendantes mesurant les investissements en termes
de publicité par média.
Vous êtes demandés d’appliquer cet exemple et de soumettre les outputs obtenus tout en
interprétant les résultats et leurs qualités.
- Chargement des données et des bibliothèques
S’agissant de données au format csv, Python n’a pas nativement de fonction pour importer des données
au format csv. Nous pouvons ainsi utiliser la bibliothèque Pandas afin d’importer les données. Cette
bibliothèque est comprise dans Anaconda. Nous utiliserons aussi numpy et matplotlib pour les
visualisations.
Publicité
Voici donc le code pour importer les données :
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()
- L’application du modèle de régression linéaire
Nous pouvons créer maintenant un objet modeleReg qui est le conteneur de notre modèle de régression
multiple. Une fois l’objet est créé en utilisant la bibliothèque scikit-learn, nous ajustons le modèle
(fit) en utilisant nos données. On a pris comme variable dépendante y, la variable « Sales » et comme
variables indépendantes toutes les autres variables.
Publicité
from sklearn.linear_model import LinearRegression
#créer un objet reg lin
modeleReg=LinearRegression()
#créer y et X
list_var=donnees.columns.drop("Sales")
y=donnees.Sales
X=donnees[list_var]
modeleReg.fit(X,y)
- L’affichage des résultats sur Python
Une fois le modèle ajusté, nous affichons, la constante, les coefficients, le R² et le RMSE. Nous
obtenons deux graphiques (qu’il faudrait mieux préparer) représentant : les valeurs de y en fonction
des valeurs prédites avec le modèle de régression linéaire et les valeurs de Y en fonction des résidus.
Publicité
De nombreuses autres analyses sont possibles, mais on a ainsi déjà quelques informations sur notre
modèle.
print modeleReg.intercept_
print modeleReg.coef_
#calcul du R²
modeleReg.score(X,y)
RMSE=np.sqrt(((y-modeleReg.predict(X))**2).sum()/len(y))
plt.plot(y, modeleReg.predict(X),'.')
plt.show()
plt.plot(y, y-modeleReg.predict(X),'.')
plt.show()