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

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

Часто вам может понадобиться построить прогнозные значения модели регрессии в R, чтобы визуализировать различия между прогнозируемыми значениями и фактическими значениями.

В этом руководстве представлены примеры того, как создать этот тип графика в базе R и ggplot2.

Пример 1: График предсказанных и фактических значений в базе R

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

#create data
df <- data.frame(x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),
 x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),
 y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))

#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

#plot predicted vs. actual values
plot(x=predict(model), y=df$y,
 xlab='Predicted Values',
 ylab='Actual Values',
 main='Predicted vs. Actual Values')

#add diagonal line for estimated regression line
abline(a= 0 , b= 1 )
График прогнозируемых значений в R

По оси X отображаются прогнозируемые значения из модели, а по оси Y — фактические значения из набора данных. Диагональная линия в середине графика — предполагаемая линия регрессии.

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

Мы также можем создать фрейм данных, который показывает фактические и прогнозируемые значения для каждой точки данных:

#create data frame of actual and predicted values
values <- data.frame(actual=df$y, predicted=predict(model))

#view data frame
values

 actual predicted
1 22 22.54878
2 24 23.56707
3 24 23.96341
4 25 24.98171
5 25 25.37805
6 27 26.79268
7 29 28.60366
8 31 30.41463
9 32 33.86585
10 36 34.88415

Пример 2: График прогнозируемых и фактических значений в ggplot2

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

library (ggplot2) 

#create data
df <- data.frame(x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),
 x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),
 y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))

#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

#plot predicted vs. actual values
ggplot(df, aes (x=predict(model), y=y)) + 
 geom_point() +
 geom_abline(intercept= 0 , slope= 1 ) +
 labs(x='Predicted Values', y='Actual Values', title='Predicted vs. Actual Values')

Еще раз, ось x отображает прогнозируемые значения из модели, а ось y отображает фактические значения из набора данных.

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

Как создать остаточный график в R
Как создать гистограмму остатков в R
Как рассчитать стандартизованные остатки в R

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