4. 多步预测核心概念
在宏观经济多步预测中,真正的难点不是“预测下一期”,而是“预测未来若干期”。一旦预测步长超过1,模型就会面临策略选择、样本窗口管理和误差传播三重挑战。本节围绕四个核心概念展开:直接预测与递归预测、滚动窗口与扩展窗口、预测 horizon 的定义,以及误差累积机制。理解它们之间的耦合关系,是后续情景建模与实战调参的基础。
一、核心原理:两条预测路径与两种窗口策略
多步预测的第一层决策是:用一步模型反复外推,还是为每个步长单独训练模型?这就是递归预测与直接预测的分野。
- 递归预测(Recursive / Iterated):只训练一个一步预测模型,把预测值作为下一期输入,逐步滚动。优点是模型少、参数共享、样本利用率高;缺点是误差会随步长反馈放大,且模型训练时未见过“自己产生的预测值”,存在分布偏移。
- 直接预测(Direct):对每个 horizon h 单独训练一个模型,直接用 t 期信息预测 t+h 期。优点是避免误差反馈、每步模型可独立优化;缺点是模型数量随步长线性增长,长步长样本量减少,且各步预测之间可能不连贯。
- 混合策略(Hybrid / Multi-output):用一个模型同时输出多个步长,或对递归与直接结果加权组合,兼顾一致性与稳健性。
第二层决策是样本窗口如何随预测推进而移动:
- 滚动窗口(Rolling / Sliding Window):固定训练集长度,每预测一步就丢弃最旧样本、加入最新样本。适合结构变化快、参数时变的场景,如高频宏观nowcasting。
- 扩展窗口(Expanding Window):训练集从起点不断累积,不丢弃历史。适合结构稳定、样本稀缺的场景,如年度宏观数据。
选择建议:若经济结构发生明显断点(如政策转向、疫情冲击),优先滚动窗口;若样本量小且关系稳定,优先扩展窗口。实际中常用“最小训练长度 + 滚动步长”参数化控制。
二、方法流程:从horizon定义到误差监控
预测 horizon 指从当前时刻 t 到目标时刻 t+h 的步数,h 可以是1、2、3……H。多步预测的完整流程如下:
- 确定预测起点 t 与最大步长 H,明确每个 h 对应的经济含义(如h=1为下月,h=12为次年同月)。
- 选择预测策略:递归、直接或混合。
- 选择窗口策略:滚动或扩展,并设定最小训练样本数。
- 对每个 h 进行样本构造:递归用一步标签,直接用 t+h 标签。
- 训练与验证:采用时间序列交叉验证,避免未来信息泄露。
- 滚动外推并记录每步预测值、真实值与误差。
- 按 horizon 分层评估误差,绘制误差累积曲线。
下面是一个递归预测与滚动窗口结合的伪代码示例:
# 递归预测 + 滚动窗口
min_train = 60
H = 12
for t in range(min_train, len(data) - H):
train = data[t - min_train : t] # 滚动窗口
model.fit(train)
preds = []
x_input = train[-1]
for h in range(1, H + 1):
y_hat = model.predict(x_input)
preds.append(y_hat)
x_input = update_features(x_input, y_hat) # 预测值回填
record(t, preds, data[t : t + H])
三、案例/场景:误差累积如何改变预测结论
假设我们用递归AR模型预测某国CPI同比,一步RMSE为0.3个百分点。若误差独立同分布,理论上h步RMSE约为0.3×√h;但宏观变量存在自相关与模型误设,实际误差往往呈超线性增长。下表对比了递归与直接预测在不同horizon下的典型表现:
| Horizon | 递归RMSE | 直接RMSE | 误差累积特征 |
|---|---|---|---|
| h=1 | 0.30 | 0.30 | 两者一致,无累积 |
| h=3 | 0.58 | 0.52 | 递归开始反馈放大 |
| h=6 | 0.95 | 0.78 | 直接预测优势显现 |
| h=12 | 1.80 | 1.25 | 递归误差超线性增长 |
误差累积机制可拆解为三个来源:参数不确定性(模型系数估计误差)、新息不确定性(未来冲击不可知)、反馈不确定性(递归中预测值回填引入的额外误差)。直接预测消除了第三项,但前两项仍随horizon增长。滚动窗口通过持续更新参数,可部分缓解参数不确定性;扩展窗口则保留更多历史信息,降低方差但可能引入偏差。
四、误区与复盘:多步预测中最容易踩的坑
常见误区一:用一步预测的验证集RMSE来评估多步模型。一步误差小不代表多步稳定,必须按horizon分层评估。
常见误区二:递归预测时用真实值回填特征。这会造成信息泄露,导致离线评估虚高,上线后误差骤增。
常见误区三:直接预测各步独立训练后,不做一致性校验。可能出现h=3预测值高于h=2的异常跳变,需加入单调性或平滑约束。
复盘时建议建立“horizon-误差”矩阵,记录每个步长在滚动窗口与扩展窗口下的表现,并对比递归、直接、混合三种策略。重点关注误差累积曲线的拐点:若某一步长后误差急剧上升,说明模型结构或窗口长度需要调整。同时,应监控预测值的分布漂移,避免模型在长horizon上退化为常数预测。
核心结论:多步预测不是一步预测的简单重复。策略选择决定误差传播路径,窗口选择决定参数适应能力,horizon定义决定评估口径。三者必须联合设计,才能让情景建模在长步长上保持可信。