Как предсказать одно значение с помощью модели регрессии в 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:

#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(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

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