Як передбачити одне значення за допомогою регресійної моделі в r
Щоб підібрати модель лінійної регресії в R, ми можемо використати функцію lm() , яка використовує такий синтаксис:
model <- lm(y ~ x1 + x2, data=df)
Потім ми можемо використати такий синтаксис, щоб використовувати модель для прогнозування одного значення:
predict(model, newdata = new)
У наведених нижче прикладах показано, як передбачити одне значення за допомогою підігнаних моделей регресії в R.
Приклад 1: спрогнозуйте за допомогою простої моделі лінійної регресії
Наступний код показує, як підігнати просту модель лінійної регресії в R:
#create data df <- data. frame (x=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit simple linear regression model model <- lm(y ~ x, data=df)
І ми можемо використати наступний код, щоб передбачити значення відповіді для нового спостереження:
#define new observation new <- data. frame (x=c(5)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 25.36364
Модель передбачає, що це нове спостереження матиме значення відповіді 25,36364 .
Приклад 2: Прогнозуйте за допомогою моделі множинної лінійної регресії
У наступному коді показано, як підігнати модель множинної лінійної регресії в 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)
І ми можемо використати наступний код, щоб передбачити значення відповіді для нового спостереження:
#define new observation new <- data.frame(x1=c(5), x2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 26.17073
Модель передбачає, що це нове спостереження матиме значення відповіді 26,17073 .
Потенційні помилки при прогнозуванні нових значень
Найпоширеніша помилка, з якою ви можете зіткнутися під час спроби передбачити нове значення, полягає в тому, що набір даних, який ви використали для відповідності моделі регресії, не має тих самих назв стовпців, що й нове спостереження, яке ви намагаєтесь передбачити .
Наприклад, припустимо, що ми впроваджуємо наступну модель множинної лінійної регресії в R:
#createdata 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)
Далі припустімо, що ми спробуємо використати модель для прогнозування значення відповіді для цього нового спостереження:
#define new observation new <- data.frame(x_1=c(5), x_2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) Error in eval(predvars, data, env): object 'x1' not found
Ми отримали повідомлення про помилку, оскільки назви стовпців нового спостереження (x_1, x_2) не збігаються з назвами стовпців вихідного кадру даних (x1, x2), який ми використовували для відповідності моделі регресії.
Додаткові ресурси
Як виконати просту лінійну регресію в R
Як виконати множинну лінійну регресію в R
Як створити ділянку залишків у R