建模中的回溯测试是指使用历史数据对预测模型进行测试。本文介绍的是如何在 Microsoft Excel 中进行回溯测试,而不是回溯测试的理论背景。
我们如何进行回溯测试?我们将时间倒退到时间序列的起始点,使用截至该时间点的可用数据校准主体模型参数,并对下一时期进行预测(即预报)。接下来,我们将时间提前,重新校准参数值并进行另一次预测,以此类推。最后,我们会得到一组预测结果。
请注意,在每一点上,我们所做的唯一假设是一般模型定义(如 ARMA(1,1))。不过,我们将仅使用截至该时间点的可用信息来校准参数值。
这种方法与现实生活中的做法是一致的:首先,我们从初始模型开始,对下一期进行预测。时间在流逝。出现了新的时期,因此我们将新的数据点追加到当前输入数据集,重新校准参数,对下一个时期进行预测,然后重复。
我为什么要关心?
本文将带您了解在 Microsoft Excel 中进行回溯测试所需的步骤。我们将主要使用两个功能强大的 Excel 内置函数: INDEX(.) 和 SEQUENCE(.) 并利用 Excel 的 "数据表 "机制来运行不同的方案。
回溯测试会产生原本的预测误差,因此您可以仔细检查预测误差时间序列的序列相关性、分布、异常值等,从而更好地了解模型的准确性和性能。
让我们开始吧!
为此,我们使用了一个包含 200 个观测值的合成静态数据集。该数据集遵循 ARMA(1,1)过程,如下所示。
拟议模型为 ARMA(1,1)
回溯测试程序
每次迭代,我们都需要做以下工作: (1) 定义输入数据集(作为原始时间序列的子集);(2) 使用 (1) 中的数据集,校准 ARMA(1,1)模型的参数值;(3) 使用 (2) 中的模型和 (1) 中的数据集,计算提前一个周期的预测值。
1. 输入数据集
为了全面描述输入数据集,我们需要两个索引:起点和终点,然后使用 SEQUENCE(.) 函数生成起点和终点之间的索引集。现在,我们使用 INDEX(.) 函数返回原始数据集中所有具有序列集中行索引的单元格区域。
例如
原始输入数据集是 \$A\$3:\$A\$202. 选择索引 1 和 50 之间的单元格。
=INDEX(\$A\$3:\$A\$202,SEQUENCE(50,1,1,1),1)
请注意,您可以为输入数据定义一个名称,并引用该名称来代替输入单元格区域。
2. 校准模型
我们将使用 NumXL ARMA_PARAM(.)函数,并指定校准参数的返回类型=2。
请注意,ARMA_PARAM(.) 返回的是模型参数的简洁形式,因此在上图中,ARMA 过程为: \[\begin{array}{l} {X_t} = 1.485 + 0.401{X_{t - 1}} + 0.734{a_{t - 1}} + {a_t}\\ {a_t} \sim N(0,1.14) \end{array}\]
3. 预测
利用 ARMA_FORE(.)、(1) 中的数据集和 2 中计算的模型参数,我们可以计算出未来 1 期的预测值。
请注意,我生成了平均预测值、预测误差和置信区间。
数据表
现在,我们刚刚完成了一个步骤的计算。我们将使用 Excel 的 "数据表 "功能,对第 200 步之前的其余时段进行同样的计算。
首先,我们需要准备输出表:
现在,选择整个数据表,从输出行开始,包括完成索引列,如下图所示:
接下来,切换到 "数据 "工具栏,找到 "假设情景 "下的 "数据表 "项目。
弹出 "数据表 "对话框。找到 "列输入单元格",输入数据集 "完成 "索引的引用,然后单击 "确定 "按钮。
数据表将用我们数据表中的值替换完成索引的值,并存储输出结果。
请注意,"标准误差 "由 ARMA_FORE(.)函数生成,而最右边一栏("误差")是预测值与实际实现值之间的误差。
回溯测试分析
首先,让我们根据实际实现值直观地检查回溯测试的预测输出,然后再深入研究统计特性。
图中阴影部分对应 95% 的预测置信区间。
该图显示了良好的模型拟合度,因此也显示了预测的准确性。
接下来,让我们使用 NumXL 工具栏中的汇总统计来检查预测误差(预测 - 实际)的统计属性。
统计汇总表显示,预测误差为高斯噪声,均值为零,标准差为 1.0
总之,ARMA(1,1) 是一个适合给定数据集的预测模型。
下一步是什么?
现在,您可能想知道模型参数的值是多少?它们稳定吗?
首先,我们构建第二个 "数据表",但输出行中是模型参数值,然后像之前一样运行数据表。
现在,像分析预测误差一样分析每个参数的值。
参数值(theta 除外)表现出稳定性和趋向恒定值的趋势。θ(MA 系数)值波动较大,但在 0.6 至 0.9 之间。
接下来,我们应该研究参数值的描述性统计和基本分布情况,但我们会把这项工作留给你们去做。
有关数据集和分析,请参阅所附电子表格。
结论
本文演示了对预测模型进行回溯测试的步骤,只需进行少量或无中间计算。我们使用了 Excel 的内置函数: INDEX(.) 和 SEQUENCE(.) 并利用 "数据表 "功能对所有预定义指数进行计算。
获得回溯测试结果后,我们就开始进行统计分析,评估其属性和分布,以发现输出中的任何偏差(如序列相关性)。
评论
请登录写评论。