Чтобы подогнать модель линейной регрессии в 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