Hoe voorspelde waarden in r te plotten (met voorbeelden)
Vaak wil je misschien de voorspelde waarden van een regressiemodel in R plotten om de verschillen tussen de voorspelde waarden en de werkelijke waarden te visualiseren.
Deze tutorial geeft voorbeelden van het maken van dit type plot in R en ggplot2.
Voorbeeld 1: voorspelde en werkelijke waarden in basis R plotten
De volgende code laat zien hoe u een meervoudig lineair regressiemodel in R kunt passen en vervolgens een grafiek van de voorspelde en werkelijke waarden kunt maken:
#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 )
Op de X-as worden de voorspelde waarden uit het model weergegeven en op de Y-as de werkelijke waarden uit de dataset. De diagonale lijn in het midden van de grafiek is de geschatte regressielijn.
Omdat elk van de gegevenspunten redelijk dicht bij de geschatte regressielijn ligt, vertelt dit ons dat het regressiemodel de gegevens redelijk goed aanpast.
We kunnen ook een dataframe maken dat de werkelijke en voorspelde waarden voor elk datapunt weergeeft:
#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
Voorbeeld 2: voorspelde en werkelijke waarden plotten in ggplot2
De volgende code laat zien hoe u een plot van voorspelde en werkelijke waarden kunt maken met behulp van het ggplot2- datavisualisatiepakket:
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 ')
Ook hier toont de X-as de voorspelde waarden uit het model en de Y-as de werkelijke waarden uit de dataset.
Aanvullende bronnen
Hoe maak je een restplot in R
Hoe maak je een histogram van residuen in R
Hoe gestandaardiseerde residuen in R te berekenen