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 )

Voorspelde waarden in R plotten

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert