Régressions avec le module Rpy2
en langage python
Le module Rpy2 sous python permet de faire des régressions en exploitant les fonctionnalités de R
1- Installer Rpy2
1.1- Installer pip qui permettra d'installer Rpy2
Suivre ce lien pour télécharger le programme get-pip.py puis taper le code suivant dans la console Windows : en modifiant mon_dossier...
python C:/mon_dossier/get-pip.py
pip - V
1.2- Installer Rpy2 grâce à pip
Suivre ce lien pour télécharger Rpy2 (trouver la dernière version au format .whl) puis taper le code suivant dans la console windows pour finir l'installation :
pip install C:/Users/apcma/Desktop/rpy2/rpy2-2.9.5-cp37-cp37m-win32.whl
2- Lancer Rpy2 sous python
import rpy2.robjects as rr
print(rr.r['pi'])
x = rr.FloatVector([1.1, 2.2, 3.3, 4.4, 5.5, 6.6]) # Un vecteur X
y = rr.FloatVector([1.8, 2.5, 3.3, 4.0, 5.2, 6]) # Un vecteur Y
print(x) ; print(y)
# Tracer le graphique
##########################
rr.r.X11()
rr.r.plot(x,y,pch=16,col="red")
3- Mettre en place la régression linéaire
from rpy2.robjects.packages import importr # Fonction importr de chargement de librairies et des fonctions associées
stats = importr('stats')
rr.globalenv["x"] = x
rr.globalenv["y"] = y
myreg = stats.lm("y ~ x")
# Tracer le graphique + la régression
rr.r.X11()
rr.r.plot(x,y,pch=16,col="blue",cex=3)
rr.r.abline(myreg,col="red",lwd=3)
4- Contrôler le modèle de régression
# Afficher le bilan de la régression
base = importr('base')
print(base.summary(myreg))
print(myreg.names)
coeff = myreg.rx2('coefficients') ; print(coeff) # Coefficients de la régression
# Afficher le bilan graphique
#rr.r.plot(myreg) # L'écriture automatique habituelle (sous R : plot(myreg) fait planter python : on va donc décomposer
# On peut signaler un bug : les titres correspondent toujours au titre du graphique suivant...
rr.r.X11()
rr.r.layout(rr.r.matrix(rr.IntVector([1,2,3,4,5,6]), nrow=2, ncol=3))
rr.r.plot(myreg, which = 1)
rr.r.plot(myreg, which = 2)
rr.r.plot(myreg, which = 3)
rr.r.plot(myreg, which = 4)
rr.r.plot(myreg, which = 5)
rr.r.plot(myreg, which = 6)
Pour comprendre ces graphiques et s'assurer que la régression est bonne suivre le lien suivant : Aide à l'utilisation de R : régressions linéaires