Как создать диаграмму рассеяния с линией регрессии в R

Как создать диаграмму рассеяния с линией регрессии в R

Часто, когда мы выполняем простую линейную регрессию, нам нужно создать диаграмму рассеяния для визуализации различных комбинаций значений x и y.

К счастью, R позволяет легко создавать диаграммы рассеяния с помощью функции plot().Например:

#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)
Диаграмма рассеяния в R

Также легко добавить линию регрессии на диаграмму рассеяния с помощью функции abline().Например:

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

#add the fitted regression line to the scatterplot
abline(model) 
Диаграмма рассеяния с линией регрессии в R

Мы также можем добавить линии доверительного интервала на график, используя функцию предсказания().Например:

#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)
Линия регрессии с доверительным интервалом в R

Или вместо этого мы могли бы добавить линии интервала предсказания на график, указав тип интервала в функции предсказания().Например:

#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)
Линия регрессии с линиями интервала прогнозирования в R

Наконец, мы можем сделать график более эстетичным, добавив заголовок, изменив имена осей и изменив форму отдельных точек на графике.

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
Линия регрессии с диаграммой рассеяния в R

Дополнительные ресурсы

Как пометить точки на диаграмме рассеяния в R
Как использовать функцию джиттера в R для диаграмм рассеяния

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.