Як побудувати прогнозовані значення в 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 )
На осі Х відображаються прогнозовані значення з моделі, а на осі 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