Comment tracer une ligne de régression par groupe avec ggplot2



Nous pouvons utiliser la syntaxe suivante pour tracer une droite de régression par groupe à l’aide du package de visualisation R ggplot2 :

ggplot(df, aes(x = x_variable, y = y_variable, color = group_variable)) +
  geom_point() +
  geom_smooth(method = "lm", fill = NA)

Ce didacticiel fournit un exemple rapide de la façon d’utiliser cette fonction dans la pratique.

Exemple : tracer les lignes de régression par groupe avec ggplot2

Supposons que nous ayons l’ensemble de données suivant qui montre les trois variables suivantes pour 15 étudiants différents :

  • Nombre d’heures étudiées
  • Note d’examen reçue
  • Technique d’étude utilisée (soit A, B ou C)
#create dataset
df <- data.frame(hours=c(1, 2, 3, 3, 4, 1, 2, 2, 3, 4, 1, 2, 3, 4, 4),
                 score=c(84, 86, 85, 87, 94, 74, 76, 75, 77, 79, 65, 67, 69, 72, 80),
                 technique=rep(c('A', 'B', 'C'), each=5))

#view dataset
df

   hours score technique
1      1    84         A
2      2    86         A
3      3    85         A
4      3    87         A
5      4    94         A
6      1    74         B
7      2    76         B
8      2    75         B
9      3    77         B
10     4    79         B
11     1    65         C
12     2    67         C
13     3    69         C
14     4    72         C
15     4    80         C

Le code suivant montre comment tracer une droite de régression qui capture la relation entre les heures étudiées et la note obtenue à l’examen pour chacune des trois techniques d’étude :

#load ggplot2
library(ggplot2)

#create regression lines for all three groups
ggplot(df, aes(x = hours, y = score, color = technique)) +
  geom_point() +
  geom_smooth(method = "lm", fill = NA)

Ligne de régression par groupe dans ggplot2

Notez que dans geom_smooth() nous avons utilisé method = ‘lm” pour spécifier une tendance linéaire.

Nous pourrions également utiliser d’autres méthodes de lissage comme « glm », « loess » ou « gam » pour capturer les tendances non linéaires des données. Vous pouvez trouver la documentation complète de geom_smooth() ici .

Notez que nous pourrions également utiliser différentes formes pour afficher les résultats des examens pour chacun des trois groupes :

ggplot(df, aes(x = hours, y = score, color = technique, shape = technique)) +
  geom_point() +
  geom_smooth(method = "lm", fill = NA)

Plusieurs lignes de régression dans un seul tracé dans ggplot2

Vous pouvez trouver plus de didacticiels ggplot2 ici .

Ajouter un commentaire

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