Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content
Previous: Compléments sur le module matplotlib Next: Suite de Syracuse

Cours : Régressions linéaires et d'ordre 2

Nous allons voir dans cette partie comment calculer et afficher des droites et paraboles de régression.

La fonction au coeur de la régression est polyfit du module numpy. Pour l'utiliser il faut donc importer le module numpy. Elle s'utilise de la façon suivante :

import numpy as np

a,b,c = np.polyfit(X,Y,2)

Dans ce qui précède, X et Y désignent respectivement la liste des abscisses et des ordonnées des points du nuage de points et 2 est le degré de la régression. Ici on veut donc approximer le nuage par un polynôme qui sera de la forme ax²+bx+c. np.polyfit renvoie donc les coefficients.

Régression linéaire

Voici un exemple graphique de regression linéaire :

Tracé de la droite de régression
import matplotlib.pyplot as plt
import numpy as np
# Les listes des abscisses et ordonnées :
x=np.array([ 5.13 , 5.7, 5.48, 5.7, 5.66, 5.84, 5.5, 5.69, 5.44, 5.84, 5.82, 5.88, 5.61, 5.65, 5.21, 5.37, 5.46, 5.33, 5.15, 5.74])
y=np.array([ 19.47, 21.67, 20.98, 21.46 , 21.6, 22.29, 20.84, 21.46, 20.8, 21.56, 22.02 , 22.54, 21.2, 21.39, 20.49, 20.46, 20.72, 20.07 , 20.24, 21.6])
# On dessine le nuage de points :
plt.plot(x,y,"o")
# polyfit donne les coefficients du polynome de regression :
a,b=np.polyfit(x,y,1)
# On dessine la droite de regression :
plt.plot(x,a*x+b)
plt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Régression d'ordre 2

On peut utiliser des régressions d'ordre 2 lorsqu'on étudie le mouvement d'un objet par exemple. On récupère les coordonnées des points par chronophotographie par exemple ( on peut aller voir cette partie pour voir comment faire) puis on calcule la parabole de régression pour gommer un peu les imprécisions dues à la récupération des données.

Voici un exemple :

Tracé de la parabole de régression
import matplotlib.pyplot as plt
import numpy as np
# Les listes des abscisses et ordonnées des points mesurés
x=np.array([111, 131, 152, 172, 192, 213, 234, 255, 276, 297, 317, 338, 359, 380, 401, 423, 442, 462])
y=np.array([339, 362, 384, 398, 409, 411, 409, 404, 394, 374, 350, 325, 290, 250, 212, 162, 108, 51])
# On affiche les points mesurés
plt.plot(x,y,"x")
# polyfit donne les coefficients du polynome de regression
a,b,c=np.polyfit(x,y,2)
# On affiche la parabole de régression
plt.plot(x,a*x**2+b*x+c)
plt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content