如何使用 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) 的列名称不匹配。