Как построить линию линейной регрессии в ggplot2 (с примерами)


Вы можете использовать библиотеку визуализации R ggplot2 для построения подогнанной модели линейной регрессии, используя следующий базовый синтаксис:

ggplot(data,aes(x, y)) +
 geom_point() +
 geom_smooth(method='lm')

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: построение линии линейной регрессии в ggplot2

Предположим, мы подгоняем простую модель линейной регрессии к следующему набору данных:

#create dataset
data <- data.frame(y=c(6, 7, 7, 9, 12, 13, 13, 15, 16, 19, 22, 23, 23, 25, 26),
 x=c(1, 2, 2, 3, 4, 4, 5, 6, 6, 8, 9, 9, 11, 12, 12))

#fit linear regression model to dataset and view model summary
model <- lm(y~x, data=data)
summary(model)

Call:
lm(formula = y ~ x, data = data)

Residuals:
 Min 1Q Median 3Q Max 
-1.4444 -0.8013 -0.2426 0.5978 2.2363 

Coefficients:
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 4.20041 0.56730 7.404 5.16e-06 \*\*\*
x 1.84036 0.07857 23.423 5.13e-12 \*\*\*
---
Signif. codes: 0 '\*\*\*' 0.001 '\*\*' 0.01 '\*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.091 on 13 degrees of freedom
Multiple R-squared: 0.9769, Adjusted R-squared: 0.9751 
F-statistic: 548.7 on 1 and 13 DF, p-value: 5.13e-12

Следующий код показывает, как визуализировать подобранную модель линейной регрессии:

library (ggplot2)

#create plot to visualize fitted linear regression model
ggplot(data,aes(x, y)) +
 geom_point() +
 geom_smooth(method='lm') 

По умолчанию ggplot2 добавляет на график стандартные линии ошибок. Вы можете отключить их, используя аргумент se=FALSE следующим образом:

library (ggplot2)

#create regression plot with no standard error lines
ggplot(data,aes(x, y)) +
 geom_point() +
 geom_smooth(method='lm', se= FALSE ) 

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

library (ggplot2)

#create regression plot with customized style
ggplot(data,aes(x, y)) +
 geom_point() +
 geom_smooth(method='lm', se= FALSE , color='turquoise4') +
 theme_minimal() +
 labs(x='X Values', y='Y Values', title='Linear Regression Plot') +
 theme(plot.title = element_text(hjust=0.5, size=20, face='bold')) 

Обратитесь к этому сообщению для получения полного руководства по лучшим темам ggplot2.

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

Введение в множественную линейную регрессию в R
Как построить доверительный интервал в R