Comment tracer les valeurs prédites dans R (avec exemples)
Souvent, vous souhaiterez peut-être tracer les valeurs prédites d’un modèle de régression dans R afin de visualiser les différences entre les valeurs prédites et les valeurs réelles.
Ce tutoriel fournit des exemples de création de ce type de tracé en base R et ggplot2.
Exemple 1 : tracé des valeurs prédites et réelles en base R
Le code suivant montre comment ajuster un modèle de régression linéaire multiple dans R, puis créer un tracé des valeurs prédites et réelles :
#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)
L’axe des X affiche les valeurs prédites du modèle et l’axe des Y affiche les valeurs réelles de l’ensemble de données. La ligne diagonale au milieu du graphique est la ligne de régression estimée.
Étant donné que chacun des points de données se situe assez proche de la droite de régression estimée, cela nous indique que le modèle de régression réussit assez bien à ajuster les données.
Nous pouvons également créer un bloc de données qui affiche les valeurs réelles et prédites pour chaque point de données :
#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
Exemple 2 : tracé des valeurs prédites et réelles dans ggplot2
Le code suivant montre comment créer un tracé de valeurs prédites et réelles à l’aide du package de visualisation de données 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')
Encore une fois, l’axe des X affiche les valeurs prédites du modèle et l’axe des Y affiche les valeurs réelles de l’ensemble de données.
Ressources additionnelles
Comment créer un tracé résiduel dans R
Comment créer un histogramme de résidus dans R
Comment calculer les résidus standardisés dans R