Hoe u een spreidingsdiagram maakt met een regressielijn in r


Als we een eenvoudige lineaire regressie uitvoeren, willen we vaak een spreidingsdiagram maken om de verschillende combinaties van x- en y-waarden te visualiseren.

Gelukkig maakt R het gemakkelijk om puntenwolken te creëren met behulp van de plot() functie. Bijvoorbeeld:

 #create some fake data
data <- data.frame(x = c(1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11),
                   y = c(13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33, 35, 40, 41))

#create scatterplot of data
plot(data$x, data$y)

Spreidingsdiagram in R

Het is ook gemakkelijk om een regressielijn aan het spreidingsdiagram toe te voegen met behulp van de functie abline() .

Bijvoorbeeld:

 #fit a simple linear regression model
model <- lm(y ~ x, data = data)

#add the fitted regression line to the scatterplot
abline(model) 

Spreidingsplot met regressielijn in R

We kunnen ook betrouwbaarheidsintervallijnen aan de grafiek toevoegen met behulp van de voorspellen() functie:

 #define range of x values
newx = seq(min(data$x),max(data$x),by = 1)

#find 95% confidence interval for the range of x values 
conf_interval <- predict(model, newdata=data.frame(x=newx), interval="confidence",
                         level = 0.95)

#create scatterplot of values with regression line
plot(data$x, data$y)
abline(model)

#add dashed lines (lty=2) for the 95% confidence interval
lines(newx, conf_interval[,2], col="blue", lty=2)
lines(newx, conf_interval[,3], col="blue", lty=2)

Regressielijn met betrouwbaarheidsinterval in R

Of we kunnen in plaats daarvan voorspellingsintervallijnen aan de plot toevoegen door het intervaltype op te geven in de voorspellen() functie:

 #define range of x values
newx = seq(min(data$x),max(data$x),by = 1)

#find 95% prediction interval for the range of x values 
pred_interval <- predict(model, newdata=data.frame(x=newx), interval="prediction" ,
                         level = 0.95)

#create scatterplot of values with regression line
plot(data$x, data$y)
abline(model)

#add dashed lines (lty=2) for the 95% confidence interval
lines(newx, pred_interval[,2], col="red", lty=2)
lines(newx, pred_interval[,3], col="red", lty=2)

Regressielijn met voorspellingsintervallijnen in R

Ten slotte kunnen we de plot esthetisch aantrekkelijker maken door een titel toe te voegen, de namen van de assen te wijzigen en de vorm van individuele plotpunten te veranderen.

 plot(data$x, data$y,
     main = "Scatterplot of x vs. y", #add title
     pch=16, #specify points to be filled in
     xlab='x', #change x-axis name
ylab='y') #change y-axis name

abline(model, col='steelblue') #specify color of regression line

Regressielijn met spreidingsdiagram in R

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe punten op een spreidingsdiagram in R te labelen
Hoe de Jitter-functie in R te gebruiken voor puntenwolken

Einen Kommentar hinzufügen

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