Come tracciare una linea di regressione per gruppo con ggplot2


Possiamo utilizzare la seguente sintassi per tracciare una linea di regressione di gruppo utilizzando il pacchetto di visualizzazione R ggplot2 :

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

Questo tutorial fornisce un rapido esempio di come utilizzare questa funzione nella pratica.

Esempio: tracciare linee di regressione per gruppo con ggplot2

Supponiamo di avere il seguente set di dati che mostra le seguenti tre variabili per 15 studenti diversi:

  • Numero di ore studiate
  • Punteggio dell’esame ricevuto
  • Tecnica di studio utilizzata (A, B o 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 technical score
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

Il codice seguente mostra come tracciare una linea di regressione che cattura la relazione tra le ore studiate e il punteggio dell’esame per ciascuna delle tre tecniche di studio:

 #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 )

Linea di regressione per gruppo in ggplot2

Nota che in geom_smooth() abbiamo utilizzato il metodo = ‘lm” per specificare un trend lineare.

Potremmo anche utilizzare altri metodi di livellamento come “glm”, “loess” o “gam” per acquisire tendenze non lineari nei dati. Puoi trovare la documentazione completa per geom_smooth() qui .

Tieni presente che potremmo anche utilizzare forme diverse per visualizzare i risultati degli esami per ciascuno dei tre gruppi:

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

Linee di regressione multiple in un unico grafico in ggplot2

Puoi trovare altri tutorial su ggplot2 qui .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *