R 中的许多统计库提供了拟合模型的可能性,然后使用优化结果来预测未来一些时期的值。但是,许多人无法对样本外的结果进行回测。
因此,我想构建一个允许我(向前走的方法)的 R 函数:
- 使用移动窗口定义训练集(每个循环时间,删除最旧的观察并添加最新的)
- 运行优化器从而校准模型
- 使用校准后的模型生成 n 步提前预测
- 将新预测存储在样本外预测值的向量中(连同预测日期)
- 循环 1-4
我尝试了以下方法(x 是样本外集的长度,n 是训练集的固定长度):
for (j in range (0:x)){
append <- vector()
forecast <- vector()
set <- train [j+1:n+j,]
fit <- fit(data = set, model)
forecast <- predict(fit, ahead = 1)
append <- cbind(lubridate::as_date(ts_date[n+j+1]), forecast)
forc <- rbind(forc, append)
}
但是,矩阵 forc 仅包含循环的第一个和最后一个结果。
任何人都可以在这里发现错误吗?