预测的价值取决于检验
ARIMA(p,d,q) 模型在做 d 次差分之后,用序列 yₜ 自身的过去和过去的冲击来解释它:d=0 时 AR(1) 为 yₜ=c+φ yₜ₋₁+eₜ,当 |φ|<1 时会均值回归,长期均值为 μ=c/(1-φ)。SARIMAX(y, order=(p, d, q), trend='c') 用最大似然拟合它;trend='c' 加入常数项,只有在 d=0 时才有意义(差分后的序列没有可回归的水平)。拟合对象给出 params、aic 和 get_forecast(steps)。AIC =2k-2ln L 在拟合优度与参数个数 k 之间权衡;在同一数据上的候选模型中偏好最低的 AIC,但只有相差几个点才有意义。对 SPY 的月度对数波动率,ARMA(1,1)(AIC 271.9)和 AR(2)(272.7)略胜 AR(1)(275.0),而差分要差得多(290.5)。
样本内的拟合对预测几乎说明不了什么。诚实的检验是滚动起点:在每个起点 t₀,只用 y_1..t₀ 拟合,向前预测 h 步,并与实际出现的值 y_(t₀+h) 比较。收集误差并用 RMSE(√(mean(e²)))评分。一定要包含基线:朴素预测(最后一个值)和历史均值。技能 1-RMSE_模型/RMSE_基线 在模型获胜时为正。这里提前一个月,AR(1) 的 RMSE 为 0.373,朴素为 0.451,均值为 0.419:技能为 0.17 和 0.11。提前十二个月时它的 RMSE 是 0.526,与均值完全相同,它相对朴素预测的技能(0.34)只是来自朴素预测的失败:AR(1) 预测只是衰减回了均值,从 -2.09 到 -2.01。知道预测多快回到均值,就知道模型能看多远。
- 只有不差分时才加常数;用 AIC 比较阶数,只相信相差几个点的结果。
- 滚动起点:每个起点只用过去数据重新拟合;绝不在拟合见过的数据上给预测评分。
- 始终要打败基线:朴素预测与历史均值;技能 1-RMSEₘ/RMSE_b。
实验:评分内容
- SARIMAX 拟合10 分
- 点预测10 分
- 比较阶数15 分
- 滚动起点误差25 分
- RMSE5 分
- 预测技能10 分
- 波动率研究25 分