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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *