Superposer plusieurs courbes et tracer des régressions avec R

L'essentiel de cette page !

La commande points() permet d'ajouter des courbes. 

La commande abline() est parfaite pour ajouter tous les types de droites (verticales, horizontales, de la forme y = ax+b et évidemment les régressions linéaires ! ).

D'autres fonctions bien sûr permettent d'ajouter des lissages plus ou moins réussis, en particulier la commande lines().

Ajouter des courbes, des droites et régressions linéaires

Ajouter de nouveaux points ou de nouvelles courbes

La commande points() est essentielle pour réaliser des courbes et nuages de points. Identique à plot, elle permet d'ajouter indéfiniements des données à un scatter.plot :

x <- c(1:20) ; y <- sort(rnorm(20,20,3))

  plot(x,y,type="o",col="#138D75")

x1 <- sort(rpois(20,10)) ; y1 <- sort(rpois(20,20))

 points(x1,y1,col="red",pch=16)

x2 <- sort(rpois(20,10)) ; y2 <- sort(rpois(20,20))

 points(x2,y2,col="blue",pch=16,type="s")

x3 <- c(1:20) ; y3 <- rev(sort(rpois(20,20)))

 points(x3,y3,col="green",pch=16,type="l",lwd=2) 

Tracer des droites sur un graphique

plot(c(1:10),c(1:10))

abline(v=2,lwd=2) # verticale

abline(h=3,col="#1258BC") # horizontale 


R programing - Aide à l'utrilisation de R - Langage R - R CRAN - R project - Tracer horizontale et verticale avec abline

plot(c(0:9),c(1:10))

abline(2,1,col="red",lwd=2)


R programing - Aide à l'utrilisation de R - Langage R - R CRAN - R project - Tracer une droite avec abline

plot(c(0:9),c(1:10))

lines(c(1:10)~c(0:9),col="orange",lwd=3) 


R programing - Aide à l'utrilisation de R - Langage R - R CRAN - R project - Relier des points avec lines

# Prenons des données pour cet exemple

x = rep(1:15) ; y = sin(x)

# Tracer le graphique

plot(x,y)

# Ajouter la courbe de lissage

lines(smooth.spline(x, y),col="red",lwd=2) 

Cliquer ici pour en savoir plus sur les courbes de lissages

R programing - Aide à l'utrilisation de R - Langage R - R CRAN - R project - smooth.spline - lines - courbe de lissage

Tracer des régressions linéaires de la forme : y = ax - ou - y = ax+b

# Pour faire une régression linéaire sous R passant par 0 :

x <- c(1:10) ; y <- sort(rnorm(10,3)) ;  plot(x,y) # x et y sont des exemples

abline(0,(lm(y~x+0)$coefficients),col="blue")

# Afficher la pente / le coefficient directeur

lm(y~x+0)$coefficients 

Aide à l'utilisation de R - Langage R - Régression linéaire passant par l'origine - Logiciel R
Régression linéaire passant par l'origine

# Pour faire une régression linéaire sous R ne passant pas par 0 :

abscisses <- c(1:10)+0.5 ; ordonnées <- sort(rnorm(10,3))# x et y sont des exemples

plot(abscisses,ordonnées ,xlim=c(0,10),ylim=c(0,6)) 

abline(lm(ordonnées ~abscisses)$coefficients, col="red",lwd=2)

# Pour avoir accès à la pente (coefficient directeur)

lm(y~x)$coefficients[2]

# Pour avoir accès à la valeur d'intersection de l'axe des ordonnées 

# si y = ax + b alors b  = intercept

lm(y~x)$coefficients[1]

# Pour avoir accès à a et b

lm(y~x)$coefficient 

R programming - Langage R - Language - R CRAN - R project - Régression linéaire
Régression linéaire ne passant pas par l'origine type y = ax + b Graphique réalisé avec R

lm(y~x)$residuals 

lm(y~x)$fitted.values 

x = c(1:4) ; y = c(2:5)

plot(x,y,type="p",col="purple",pch=16,lwd=3,cex=2);grid()

regression = lm(y~x+0)$coefficients

# Tracer la régression

abline(0,regression,col="red",lwd=2)

# text affiche l'équation

text(2,4,paste("Equation de la droite\ny =",round(regression[1],3),"x"),col="orange") 

# 2 et 4 sont la position où apparait l'équation (x et y)

x = c(1:4) ; y = c(3.5:6.5)

plot(x,y,type="p",col="purple",pch=16,lwd=3,cex=2);grid()

regression = lm(y~x)$coefficients

# Tracer la régression

abline(regression,col="red",lwd=2)

# Afficher l'équation de la droite

text(2,5.5,paste("Equation de la droite\ny =",round(regression[2],3),"x+",round(regression[1],3)),col="red") 

Aller plus loin en consultant cet exemple concret :

Exemple de courbe étalon avec double régression : une passant par l'origine et l'autre nom : cliquer sur l'exemple.

Des annotations permettent d'y afficher les équations des droites !