Як передбачити одне значення за допомогою регресійної моделі в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *