评估季节性方法的预测精度
正如您在第 1 章学到的,window() 函数使用实际的时间点而非索引值来指定时间序列的 start 和 end。这两个参数都可以写成 c(year, period) 向量的形式,您也曾在 ts() 的参数中使用过这种格式。这里再次说明,period 指的是 quarter(季度)。
本练习中,您将使用墨尔本季度访客过夜数(visnights[, "VICMetro"])来创建 3 个不同的训练集,分别省略最后 1 年、2 年和 3 年的数据。开始前,请在控制台查看预加载的 visnights 数据;这将帮助您为预测方法中的关键字 h(指定要预测的期数)设定正确的取值。
然后,对于每个训练集,计算下一年的预测值,最后使用 accuracy() 比较这些预测的 平均绝对百分比误差(MAPE)。为什么您认为这些 MAPE 会有如此大的差异?
本练习是课程的一部分
R 中的预测
练习说明
- 使用
window()从visnights[,"VICMetro"]创建 3 个训练集,分别省略最后 1 年、2 年和 3 年的数据;相应地将它们命名为train1、train2和train3,并据此设置end参数。 - 使用
snaive()方法为每个训练集计算 1 年的预测。分别将其命名为fc1、fc2和fc3。 - 参考示例代码的结构,使用
accuracy()函数并以您的测试集为基准,比较 3 组预测的 MAPE。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create three training series omitting the last 1, 2, and 3 years
train1 <- window(visnights[, "VICMetro"], end = c(2015, 4))
train2 <- ___
train3 <- ___
# Produce forecasts using snaive()
fc1 <- snaive(___, h = ___)
fc2 <- ___
fc3 <- ___
# Use accuracy() to compare the MAPE of each series
accuracy(fc1, visnights[, "VICMetro"])["Test set", "MAPE"]
___
___