Как построить линию регрессии по группам с помощью ggplot2

Как построить линию регрессии по группам с помощью ggplot2

Мы можем использовать следующий синтаксис для построения линии регрессии по группам с помощью пакета визуализации R ggplot2 :

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

В этом руководстве представлен краткий пример того, как использовать эту функцию на практике.

Пример: построение линий регрессии по группам с помощью ggplot2

Предположим, у нас есть следующий набор данных, который показывает следующие три переменные для 15 разных студентов:

  • Количество часов обучения
  • Экзаменационная оценка получена
  • Используемая методика исследования (A, B или 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

В следующем коде показано, как построить линию регрессии, отражающую взаимосвязь между количеством часов обучения и экзаменационным баллом, полученным для каждого из трех методов обучения:

#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 )
Линия регрессии по группам в ggplot2

Обратите внимание, что в функции geom_smooth() мы использовали метод = 'lm” для указания линейного тренда.

Мы также могли бы использовать другие методы сглаживания, такие как «glm», «loess» или «gam», чтобы зафиксировать нелинейные тренды в данных. Вы можете найти полную документацию для geom_smooth() здесь .

Обратите внимание, что мы также можем использовать разные формы для отображения экзаменационных баллов для каждой из трех групп:

ggplot(df, aes (x = hours, y = score, color = technique, shape = technique)) +
 geom_point() +
 geom_smooth(method = " lm", fill = NA )
Несколько линий регрессии на одном графике в ggplot2

Вы можете найти больше руководств по ggplot2 здесь .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.