R 编程中的 predict() 函数
作者:Prajwal CN
导语
R 中的 predict()
函数可以通过输入的数据预测数值。在 R 编程中,所有涉及建模的方面都会以自己的方式使用 predict() 函数。不过值得注意的是,无论在哪种情况下,predict()
函数的功能都保持不变。
R 语言中 predict()
函数的语法
基于输入的数据,R 语言中的 predict()
函数可以预测数值。
predict(object, newdata, interval)
- object:从线性模型中继承的类
- newdata:用于预测的输入数据
- interval:区间计算类型
prediction() 函数举例
为了预测值,我们首先需要一些数据。在这个例子中,我们可以导入 R 自带的数据库——“Cars”。
df <- datasets::cars
这样,我们构建了一个包含速度 speed
与距离 dist
集合的数据框:
speed dist
1 4 2
2 4 10
3 7 4
4 7 22
5 8 16
6 9 10
7 10 18
8 10 26
9 10 34
10 11 17
随后,基于这些数据,我们将使用 predict()
预测之后的值。
首先,我们需要为这个数据框计算一个线性模型:
# Creates a linear model 创建线性模型
my_linear_model <- lm(dist~speed, data = df)
# Prints the model results 打印模型结果
my_linear_model
执行以下代码以计算线性模型的结果:
Call:
lm(formula = dist ~ speed, data = df)
Coefficients:
(Intercept) speed
-17.579 3.932
线性模型根据我们输入的数据返回了汽车的速度。现在我们有了模型,就可以应用 predict()
函数了。
# Creating a data frame 创建一个数据框
variable_speed <- data.frame(speed = c(11,11,12,12,12,12,13,13,13,13))
# Fiting the linear model 拟合线性模型
linear_model <- lm(dist~speed, data = df)
# Predicts the future values 预测未来值
predict(linear_model, newdata = variable_speed)
以上代码会产出以下结果:
1 2 3 4 5
25.67740 25.67740 29.60981 29.60981 29.60981
6 7 8 9 10
29.60981 33.54222 33.54222 33.54222 33.54222
在借助了线性模型与之前的数据后,我们成功地预测了未来的距离值。
现在,我们还需检查预测值的“置信度”水平,看看我们的预测有多准确。
预测值的置信度
我们可以借助 predict()
函数中的置信度区间(confidence interval)衡量预测值中的不确定性。
# Input data 输入数据
variable_speed <- data.frame(speed = c(11,11,12,12,12,12,13,13,13,13))
# Fits the model 拟合模型
linear_model <- lm(dist~speed, data = df)
# Predicts the values with confidence interval 在置信度区间中预测值
predict(linear_model, newdata = variable_speed, interval = 'confidence')
以上代码会产出以下输出:
fit lwr upr
1 25.67740 19.96453 31.39028
2 25.67740 19.96453 31.39028
3 29.60981 24.39514 34.82448
4 29.60981 24.39514 34.82448
5 29.60981 24.39514 34.82448
6 29.60981 24.39514 34.82448
7 33.54222 28.73134 38.35310
8 33.54222 28.73134 38.35310
9 33.54222 28.73134 38.35310
10 33.54222 28.73134 38.35310
您可以在以上输出中看到预测值的置信区间。
基于这个输出,我们可以预测:行驶速度为11 - 13英里/小时的汽车可能会行驶19.9到31.1英里的距离。
结语
基于之前的数据,predict()
函数可以预测数值,并将这些值拟合至模型中。
您还可以使用置信区间检查预测的准确性。