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 )
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 )
Więcej samouczków dotyczących ggplot2 znajdziesz tutaj .