SES 与 naive 对比
在本练习中,您将运用第 2 章中学习的训练集与测试集、subset() 函数以及 accuracy() 函数的知识,来比较 marathon 数据的 SES 与朴素法(naive)预测。
您之前在练习"评估非季节性方法的预测准确性"中做过非常类似的比较(naive 与 mean 预测)。
让我们回顾一下流程:
- 首先,导入并加载数据。确定要分配多少数据用于训练,多少用于测试;两者不应有重叠。
- 使用子集化创建训练集,以便作为您的预测函数参数。可选地,您也可以创建稍后使用的测试集。
- 使用您选择的预测函数对训练集进行预测,并将
h设为您希望预测的数量,这也等于测试集的长度。 - 若要查看结果,使用
accuracy()函数,将预测对象作为第一个参数,原始数据(或测试集)作为第二个参数。 - 在输出中选择一个度量(例如 RMSE 或 MAE)来评估预测;误差越小,准确度越高。
marathon 数据已加载到您的工作区。
本练习是课程的一部分
R 中的预测
练习说明
- 使用
subset()为marathon创建训练集,包含除最后 20 年之外的所有数据,最后 20 年留作测试。 - 计算该训练集的 SES 和朴素法(naive)预测,分别保存为
fcses和fcnaive。 - 在控制台中使用
accuracy()函数计算两组预测的准确性度量。 - 基于 RMSE 选择更优的预测(
fcses或fcnaive),并将其赋给fcbest。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a training set using subset()
train <- ___(___, end = length(marathon) - ___)
# Compute SES and naive forecasts, save to fcses and fcnaive
fcses <- ses(___, h = ___)
fcnaive <- naive(___, h = ___)
# Calculate forecast accuracy measures
accuracy(___, ___)
accuracy(___, ___)
# Save the best forecasts as fcbest
fcbest <- ___