Как построить линию наилучшего соответствия в R (с примерами)


Вы можете использовать один из следующих методов для построения линии наилучшего соответствия в R:

Метод 1: График наилучшего соответствия в базе R

#create scatter plot of x vs. y
plot(x, y)

#add line of best fit to scatter plot
abline(lm(y ~ x))

Метод 2: График наилучшего соответствия в ggplot2

library (ggplot2)

#create scatter plot with line of best fit
ggplot(df, aes (x=x, y=y)) +
 geom_point() +
 geom_smooth(method=lm, se= FALSE )

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

Пример 1: График наилучшего соответствия по основанию R

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

#define data
x <- c(1, 2, 3, 4, 5, 6, 7, 8)
y <- c(2, 5, 6, 7, 9, 12, 16, 19)

#create scatter plot of x vs. y
plot(x, y)

#add line of best fit to scatter plot
abline(lm(y ~ x)) 

Не стесняйтесь изменять стиль точек и линии:

#define data
x <- c(1, 2, 3, 4, 5, 6, 7, 8)
y <- c(2, 5, 6, 7, 9, 12, 16, 19)

#create scatter plot of x vs. y
plot(x, y, pch= 16 , col='red', cex= 1.2 )

#add line of best fit to scatter plot
abline(lm(y ~ x), col='blue ' , lty='dashed') 

Мы также можем использовать следующий код для быстрого вычисления линии наилучшего соответствия:

#find regression model coefficients
summary(lm(y ~ x))$coefficients

 Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.8928571 1.0047365 -0.888648 4.084029e-01
x 2.3095238 0.1989675 11.607544 2.461303e-05

Линия наилучшего соответствия оказывается такой: y = -0,89 + 2,32x .

Пример 2: График наилучшего соответствия в ggplot2

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

library (ggplot2)

#define data
df <- data.frame(x=c(1, 2, 3, 4, 5, 6, 7, 8),
 y=c(2, 5, 6, 7, 9, 12, 16, 19))

#create scatter plot with line of best fit
ggplot(df, aes (x=x, y=y)) +
 geom_point() +
 geom_smooth(method=lm, se= FALSE )

Не стесняйтесь изменять эстетику сюжета:

library (ggplot2)

#define data
df <- data.frame(x=c(1, 2, 3, 4, 5, 6, 7, 8),
 y=c(2, 5, 6, 7, 9, 12, 16, 19))

#create scatter plot with line of best fit
ggplot(df, aes (x=x, y=y)) +
 geom_point(col='red', size= 2 ) +
 geom_smooth(method=lm, se= FALSE , col='purple', linetype='dashed') +
 theme_bw() 

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

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

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