Comment créer un nuage de points avec une ligne de régression dans R



Souvent, lorsque nous effectuons une régression linéaire simple, nous souhaitons créer un nuage de points pour visualiser les différentes combinaisons de valeurs x et y.

Heureusement, R facilite la création de nuages de points à l’aide de la fonction plot() . Par exemple:

#create some fake data
data <- data.frame(x = c(1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11),
                   y = c(13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33, 35, 40, 41))

#create scatterplot of data
plot(data$x, data$y)

Nuage de points dans R

Il est également facile d’ajouter une droite de régression au nuage de points à l’aide de la fonction abline() .

Par exemple:

#fit a simple linear regression model
model <- lm(y ~ x, data = data)

#add the fitted regression line to the scatterplot
abline(model)

Nuage de points avec ligne de régression dans R

Nous pouvons également ajouter des lignes d’intervalle de confiance au tracé en utilisant la fonction prédire() :

#define range of x values
newx = seq(min(data$x),max(data$x),by = 1)

#find 95% confidence interval for the range of x values 
conf_interval <- predict(model, newdata=data.frame(x=newx), interval="confidence",
                         level = 0.95)

#create scatterplot of values with regression line 
plot(data$x, data$y)
abline(model)

#add dashed lines (lty=2) for the 95% confidence interval
lines(newx, conf_interval[,2], col="blue", lty=2)
lines(newx, conf_interval[,3], col="blue", lty=2)

Droite de régression avec intervalle de confiance dans R

Ou nous pourrions à la place ajouter des lignes d’intervalle de prédiction au tracé en spécifiant le type d’intervalle dans la fonction prédire() :

#define range of x values
newx = seq(min(data$x),max(data$x),by = 1)

#find 95% prediction interval for the range of x values 
pred_interval <- predict(model, newdata=data.frame(x=newx), interval="prediction",
                         level = 0.95)

#create scatterplot of values with regression line 
plot(data$x, data$y)
abline(model)

#add dashed lines (lty=2) for the 95% confidence interval
lines(newx, pred_interval[,2], col="red", lty=2)
lines(newx, pred_interval[,3], col="red", lty=2)

Ligne de régression avec lignes d'intervalle de prédiction dans R

Enfin, nous pouvons rendre l’intrigue plus esthétique en ajoutant un titre, en changeant les noms des axes et en changeant la forme des points individuels de l’intrigue.

plot(data$x, data$y,
     main = "Scatterplot of x vs. y", #add title
     pch=16, #specify points to be filled in
     xlab='x', #change x-axis name
     ylab='y') #change y-axis name

abline(model, col='steelblue') #specify color of regression line

Ligne de régression avec nuage de points dans R

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment étiqueter des points sur un nuage de points dans R
Comment utiliser la fonction Jitter dans R pour les nuages de points

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *