如何使用 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 中创建残差图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注