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