Jak wykreślić linię regresji według grupy za pomocą ggplot2


Możemy użyć następującej składni, aby wykreślić linię regresji grupowej za pomocą pakietu wizualizacji R ggplot2 :

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

W tym samouczku przedstawiono krótki przykład wykorzystania tej funkcji w praktyce.

Przykład: wykreślanie linii regresji według grup za pomocą ggplot2

Załóżmy, że mamy następujący zbiór danych, który pokazuje następujące trzy zmienne dla 15 różnych uczniów:

  • Liczba godzin nauki
  • Otrzymano wynik egzaminu
  • Zastosowana technika badania (A, B lub 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

Poniższy kod pokazuje, jak wykreślić linię regresji, która odzwierciedla związek między przestudiowanymi godzinami a wynikami egzaminu dla każdej z trzech technik uczenia się:

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

Linia regresji według grup w ggplot2

Zauważ, że w geom_smooth() użyliśmy metody = 'lm’, aby określić trend liniowy.

Możemy również zastosować inne metody wygładzania, takie jak „glm”, „loess” lub „gam”, aby uchwycić nieliniowe trendy w danych. Pełną dokumentację funkcji geom_smooth() można znaleźć tutaj .

Pamiętaj, że możemy również użyć różnych kształtów do wyświetlenia wyników egzaminu dla każdej z trzech grup:

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

Wiele linii regresji na jednym wykresie w ggplot2

Więcej samouczków dotyczących ggplot2 znajdziesz tutaj .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *