我无法理解tsCV功能的工作方式。当我在数据上使用以下代码时。
> far1 <- function(x, h){forecast(auto.arima(x), h=h)}
> tsCV(NewQTRS,far1,h=1)
我明白了
Qtr1 Qtr2 Qtr3 Qtr4
1 350667.00 144882.50 415210.33 -307869.25
2 147499.60 121431.33 459959.00 -218848.88
3 -27080.00 13915.00 -12479.00 -63671.50
4 -40103.89 -22359.41 -91162.51 -111829.08
5 59024.00 -92397.00 151926.00 15270.58
6 NA
为什么我得到最终值的NA?我的理解显然是错误的,该函数使用(Year 1 Qtr 1)预测(Year 1 Qtr 2),然后使用(Year 1 Qtr 1)(Year 1 Qtr 2)预测(Year 1 Qtr 3)。等等,因此训练集将使用所有先前可用的qtrs继续构建和预测下一个Qtr。这意味着第一个值将是NA,而最后一个值应是基于前20个qtrs的预测误差。
显然不是这样,有人可以向我解释实际情况吗?
谢谢!
答案 0 :(得分:0)
tsCV返回预测的h步超前值和实际值之间的误差。在最后一个数据点上,没有更多的未来实际值可比较,因此返回NA。