Создадим искусственный набор данных:

df <- data.frame(x=c(1,2,3,4,6), y=c(3,6,7,8,14))
plot(y ~ x, df)

Теперь попробуем провести прямую, которая проходит через эти точки.

fit <- lm(y ~ x, data=df)
summary(fit)
## 
## Call:
## lm(formula = y ~ x, data = df)
## 
## Residuals:
##        1        2        3        4        5 
## -0.08108  0.86486 -0.18919 -1.24324  0.64865 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)   1.0270     0.9053   1.134  0.33905   
## x             2.0541     0.2492   8.243  0.00374 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9586 on 3 degrees of freedom
## Multiple R-squared:  0.9577, Adjusted R-squared:  0.9436 
## F-statistic: 67.95 on 1 and 3 DF,  p-value: 0.003738

мы видим, что это прямая вида \(y=kx+b\) с коэффициентами \(b=1\) (Intercept) и \(k=2\) (коэффициент при переменной x). То есть с увеличением \(x\) yа 1 значение \(y\) увеличивается на 2.

df$y_predicted <- predict(fit)
plot(y ~ x, data=df)
abline(fit)
points(y_predicted ~ x, data=df, col='red')

Здесь predict посчитало значение y для соответствующих значений x, как если бы точки действительно лежали на прямой, abline нарисовала прямую, а points(y_predicted ~ x, data=df, col='red') нарисовала «предсказанные» точки (красным).