Vous êtes sur la page 1sur 11

Rapport de Régression Linéaire

Algorithme de Descente de Gradient

Mohammed Said ANEZARY

16 Mars 2023
Présentation du code
Le code est constitué par deux fonctions, gradient() et valeurs(). La
fontcion gradient() calcule le gradient pour la fonction de coût J(β, β0 ) =
n
1
(yi −fβ,β0 (xi ))2 pour chaque β, et la fonction valeurs() utilise la fonction
P
2n
i=1
gradient() pour appliquer la méthode de descente de gradient.

gradient()
La fonction gradient() calcule le gradient par rapport à chaque élément
du vecteur β en se basant sur la base de données. Une condition d’utilisation
de la fonction estime que la première colonne de la base de données est la
variable expliquée y et que les autres variables sont les variables expliquatives
xi=1...n de la variable y. Une implémentation de la fonction gradient est la
suivante :

Figure 1 – Fonction gradient()

1
valeurs()
La fonction valeurs() est utilisée pour calculer les valeurs optimales de
β. Elle prend pour argument la base de données, le vecteur initial de β,
l’hyperparamètre α et le nombre d’itérations pour que l’algorithme converge.
Ci-dessous une implémentation de la fonction :

Figure 2 – Fonction valeurs()

En utilisant ces deux fonctions on peut appliquer la méthode de la des-


cente de gradient pour faire la régression linéaire de notre problème.

Présentation de la base de données


La base de données ozone contient 112 observations de 13 variables, les
variables sont les suiavantes :

Figure 3 – Base de données

2
Pour respecter les fonctions qu’on a déjà implémenté, on doit préparer
deux bases de données, une pour chaque problème :

Figure 4 – Les deux bases de données

Problème 1
Traitement et analyse des données
La première étape avant d’appliquer la régression linéaire est de traiter la
base de données. On commence d’abord par vérifier si on n’a pas de valeurs
manquantes dans notre base :

Figure 5 – Valeurs manquantes data1

La deuxième étape est de vérifier si la présence des valeurs aberrantes.


Ces valeurs peuvent infecter l’exactitude des coefficients de notre modèle. On
trace la boite à moustache de notre base de données :

Figure 6 – Valeurs aberrantes data1

On remarque clairement l’existance de quelques valeurs aberrantes qu’on


va éliminer par la suite.

3
Figure 7 – Enlèvement des valeurs aberrantes

On enlève les valeurs aberrantes en utilisant le code suivant :


On a enlevé 4 observations de la base de données.

Maintenant on va procéder la vérification de la normalité des observations.


Alors on va utiliser le graphe QQplot :

Figure 8 – La normalité des variables

On constate que la distributuion des observations est normale.

La quatrième étape est de vérifié si il’y a une corrélation entre les variables
maxO3 et T12.

Figure 9 – Corrélation entre maxO3 et T12

4
La dernière étape est de visualiser le graphe de la relation entre maxO3
et T12.

Figure 10 – Représentation des observations de data1

Le graphe montre clairement que la relation entre maxO3 et T12 est


linéaire.

Régression linéaire
En utilisant les deux fonctions gradient() et valeurs() on essayera de
trouver les valeurs β0 et β1 pour trouver le modèle maxO3 = β0 + β1 T 12 qui
minimise l’erreur entre les valeurs observées et prédictives.

Figure 11 – Régression linéaire data1

On utilise un taux d’apprentissage α = 0, 0001 et on procéde l’algorithme


pour 10000 itérations.
Après 10000 itérations, la valeur de beta optimale est la suivante :

5
Figure 12 – Les valeurs des coefficients de régression

Alors notre modèle s’écrit sous la forme suivante :

maxO3 = −0, 4156639 + 4, 1925128 ∗ T 12

La représentation de ce modèle est la suivante :

Figure 13 – Représentation du modèle

Evaluation du modèle
Pour évaluer le modèle, on va calculer l’erreur quadratique moyenne
(RMSE en anglais) entre les valeurs observées et prédectives :

Figure 14 – L’erreur quadratique moyenne

6
Donc l’erreur quadratique moyenne est de 17,32.

Une autre méthde est la représentation des résidus.

Figure 15 – Représentation des résidus

On constate que les résidus sont distribués autour de 0.

Problème 2
On va traiter la base de données data2 de la même manière que data1.
Après l’enlèvement des valeurs aberrantes on obtient une base de données de
107 observations.

La prochaine étape est de calculer la corrélation entre les variables de la


base de données.
Pour cela on va présenter la corrélation en utilisant la matrice de corrélation
et sa représentation.

7
Figure 16 – Matrice de corrélation

La matrice de corrélation montre qu’il ya une forte corrélation entre les


variables explicatives et celle expliquée.

Régression linéaire
En utilisant les deux fonctions gradient() et valeurs() on essayera de
trouver les valeurs β0 , β1 , β2 et β3 pour trouver le modèle maxO3 = β0 +
β1 T 9 + β2 T 12 + β3 T 15 qui minimise l’erreur entre les valeurs observées et
prédictives.

Figure 17 – Les valeurs des coefficients du modèle

le modèle obtenu est sous la forme :

maxO3 = −4, 595214 − 0, 251524 ∗ T 9 + 2, 926698 ∗ T 12 + 1, 584595 ∗ T 15

8
Evaluation du modèle
Pour évaluer le modèle, on va calculer l’erreur quadratique moyenne
(RMSE en anglais) entre les valeurs observées et prédectives :

Figure 18 – L’erreur quadratique moyenne

Donc l’erreur quadratique moyenne est de 17,08.

Analyse générale de la base de données Ozone


Pour analyser les données de la base Ozone, on va tracer la matrice de
corrélation entre ces variables :

Figure 19 – Matrice de corrélation entre les variables Ozone

9
On remarque que la corrélation entre la nébulosité et la teneur maxilmale
en ozone observée pendant toute la journée est négative, alors une augmen-
tation de la nébulosité va causer la diminution de la teneur en ozone.

Par contre les températures pendant la journée et la teneur maximale en


ozone sont fortement corrélés. Alors une augmentation de la tempéérature
va amener à une augmentation de la teneur en ozone.

Finalement, on remarque une corrélation presque neutre entre la comp-


sosnte est-ouest du vent et la teneur en ozone.

10

Vous aimerez peut-être aussi