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)
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)
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)
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)
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
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