诚实地评估预测
预测的价值只取决于它在没见过的数据上的表现。时间序列的诚实做法是滚动前进(walk-forward):用过去拟合模型,预测下一个值(或区块),记录误差,窗口向前移动再重复。绝不能打乱观测或随机划分,因为用被预测日期之后的日子训练过的模型已经偷看了未来。预测误差为 et=yt−y^t。常用评分是平均绝对误差 MAE=n1∑∣et∣ 和对大误差惩罚更重的均方根误差 RMSE=n1∑et2。
RMSE=n1t∑et2,LQLIKE=htσ~t2−lnhtσ~t2−1,ROOS2=1−∑(etB)2∑(etM)2,DM=se(dˉ)dˉ(1) 方差从不被观测,所以波动率预测 ht 要拿一个代理 σ~t2(如收益平方或已实现方差)来评分。代理有噪声,因此损失函数要谨慎选择:方差上的平方误差被少数大幅波动的日子主导,而 QLIKE,L=σ~2/h−ln(σ~2/h)−1,更稳健,并且对方差的低估比对同等倍数的高估惩罚更重。务必与朴素基准比较,例如昨天的值或历史均值。样本外 ROOS2 比较误差平方和,只有模型击败基准时才为正。要判断损失差异是真实的还是运气,可用 Diebold-Mariano 统计量:令 dt 为两个模型的损失之差,DM=dˉ/se(dˉ) 近似标准正态,所以 ∣DM∣>1.96 在 5% 水平上显著。多步预测时 dt 相互重叠,标准误必须允许自相关。在同一批测试数据上从许多模型里挑最好的一个,会高估它的能力。
误差与方差损失四个预测误差
1,−2,0,3 给出
MAE=6/4=1.5、
RMSE=(1+4+0+9)/4=3.5≈1.87:孤立的误差 3 把 RMSE 拉到 MAE 之上。对波动率预测,取代理方差为
4。预测
h=2(一半)的 QLIKE 损失为
2−ln2−1≈0.31,预测
h=8(两倍)为
0.5−ln0.5−1≈0.19。同样倍数的误差,低估方差受到的惩罚更重,而这正是对风险限额更危险的方向。误差平方和为
80 的模型对比基准的
100,
ROOS2=1−80/100=0.20。
- 滚动前进:用过去拟合、预测下一区块、向前推进;绝不打乱时间序列。
- QLIKE 对方差预测稳健,并且更重地惩罚低估;要与朴素基准比较。
- Diebold-Mariano:DM=dˉ/se(dˉ) 检验两个预测是否真有差异;∣DM∣>1.96 即显著。
实验:评分内容
- 平均绝对误差10 分
- 均方根误差15 分
- QLIKE 损失15 分
- 样本外 R 平方15 分
- Diebold-Mariano 统计量10 分
- 为什么不能打乱10 分
- 配对术语15 分
- 击败朴素基准10 分