Como traçar uma linha de regressão por grupo com ggplot2


Podemos usar a seguinte sintaxe para traçar uma linha de regressão de grupo usando o pacote de visualização R ggplot2 :

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

Este tutorial fornece um exemplo rápido de como usar esta função na prática.

Exemplo: traçando linhas de regressão por grupo com ggplot2

Suponha que temos o seguinte conjunto de dados que mostra as três variáveis a seguir para 15 alunos diferentes:

  • Número de horas estudadas
  • Pontuação do exame recebida
  • Técnica de estudo utilizada (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 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

O código a seguir mostra como traçar uma linha de regressão que captura a relação entre as horas estudadas e a nota do exame para cada uma das três técnicas de estudo:

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

Linha de regressão por grupo em ggplot2

Observe que em geom_smooth() usamos method = ‘lm” para especificar uma tendência linear.

Também poderíamos usar outros métodos de suavização como “glm”, “loess” ou “gam” para capturar tendências não lineares nos dados. Você pode encontrar a documentação completa para geom_smooth() aqui .

Observe que também poderíamos usar formas diferentes para exibir os resultados dos exames para cada um dos três grupos:

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

Múltiplas linhas de regressão em um único gráfico no ggplot2

Você pode encontrar mais tutoriais do ggplot2 aqui .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *