Como traçar valores previstos em r (com exemplos)


Freqüentemente, você pode querer representar graficamente os valores previstos de um modelo de regressão em R para visualizar as diferenças entre os valores previstos e os valores reais.

Este tutorial fornece exemplos de criação desse tipo de gráfico em R e ggplot2.

Exemplo 1: plotando valores previstos e reais na base R

O código a seguir mostra como ajustar um modelo de regressão linear múltipla em R e, em seguida, criar um gráfico dos valores previstos e reais:

 #create data
df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),
                 x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),
                 y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))

#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

#plot predicted vs. actual values
plot(x=predict(model), y=df$y,
     xlab=' Predicted Values ',
     ylab=' Actual Values ',
     main=' Predicted vs. Actual Values ')

#add diagonal line for estimated regression line
abline(a= 0 , b= 1 )

Traçando valores previstos em R

O eixo X exibe os valores previstos do modelo e o eixo Y exibe os valores reais do conjunto de dados. A linha diagonal no meio do gráfico é a linha de regressão estimada.

Como cada um dos pontos de dados está bastante próximo da linha de regressão estimada, isso nos diz que o modelo de regressão está fazendo um bom trabalho ao ajustar os dados.

Também podemos criar um quadro de dados que exibe os valores reais e previstos para cada ponto de dados:

 #create data frame of actual and predicted values
values <- data. frame (actual=df$y, predicted=predict(model))

#view data frame
values

   actual predicted
1 22 22.54878
2 24 23.56707
3 24 23.96341
4 25 24.98171
5 25 25.37805
6 27 26.79268
7 29 28.60366
8 31 30.41463
9 32 33.86585
10 36 34.88415

Exemplo 2: plotando valores previstos e reais em ggplot2

O código a seguir mostra como criar um gráfico de valores previstos e reais usando o pacote de visualização de dados ggplot2 :

 library (ggplot2) 

#create data
df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),
                 x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),
                 y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))

#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

#plot predicted vs. actual values
ggplot(df, aes (x=predict(model), y=y)) + 
  geom_point() +
  geom_abline(intercept= 0 , slope= 1 ) +
  labs(x=' Predicted Values ', y=' Actual Values ', title=' Predicted vs. Actual Values ')

Novamente, o eixo X mostra os valores previstos do modelo e o eixo Y mostra os valores reais do conjunto de dados.

Recursos adicionais

Como criar um gráfico residual em R
Como criar um histograma de resíduos em R
Como calcular resíduos padronizados em R

Add a Comment

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