收益:
- 在人工智能的支持下理解趋势、季节性、周期和平稳性等时间序列概念,并能够正确解析序列
- 能够将 ARIMA、ETS 和简单的基准模型作为代码安装到人工智能中,生成预测并通过回溯测试对其进行评估
- 能够理解面对不确定性范围、模型限制和结构性断裂时预测的脆弱性,并坚持预测的责任仍然由经济学家承担。
经济学的语言是时间。通货膨胀、增长、失业、汇率——它们都是随着时间推移而流动的序列,经济学家最常被问到的问题之一是“接下来会发生什么?”是问题。在本单元中,我们将使用人工智能来理解时间序列概念、构建模型代码并生成预测。但让我们从一开始就明确一下框架:预测不是预言,而是不确定性下的条件预测,责任在于经济学家。 AI 可以在几分钟内为您编写 ARIMA 代码;但决定这种预测是否合理以及它是否会在结构性断裂时崩溃的是人类。
时间序列的组成部分
将任何经济序列分为四个部分有助于思考任何经济序列:
- 趋势(倾向)。长期方向;比如经济的增长路径。
- 季节性。全年定期重复的模式;夏季旅游业增长,十二月零售业增长。
- 循环(合点)。长于季节,起伏不定;扩张和收缩的时期。
- 不稳定/噪音。无法解释的随机波动。
在估计一个序列之前,有必要分解这些组成部分。因为看原始系列并说“它正在下降”可能会产生误导:也许您只是处于季节性低谷。
还有平稳性的概念:序列的统计属性(均值、方差)不随时间变化。大多数经济序列都不是静止的(不断增长);许多模型在构建之前需要进行差分(从一个周期中减去另一个周期)或用对数进行平稳化。人工智能建议采取这些步骤,但了解为什么需要这些步骤可以保护您。
提示:在预测之前始终绘制并分解序列。明显的结构性断裂(例如危机或货币改革)甚至会欺骗最先进的模型。该图表是最便宜的诊断工具。
模型:从简单到复杂,但首先是基准
时间序列预测的黄金法则:始终从简单的基准模型开始。最简单的预测是“天真的预测”:明天将等于今天(或季节性天真:本月等于去年同月)。如果复杂的模型无法击败这种简单的预测,那么复杂性就是徒劳的。
那么常用的方法:
- ETS /指数平滑。通过加权来软化水平、趋势和季节性的系列。
- 呼唤。结合自回归(基于过去的值)和移动平均分量的经典模型;季节性版本 SARIMA。
- 基于回归/解释模型。用其他指标(例如收入和价格的需求)解释变量。
AI 可以在 statsmodels(Python 库)中对所有这些进行编码。您的工作是选择和验证模型。
回测:预测测试
如果一个模型与历史数据“很好地吻合”,那么这并没有任何意义。足够灵活以适应任何模型(这称为过度拟合)。真正的问题是:模型预测它没有见过的时期的效果如何?为了衡量这一点,您需要进行回溯测试:在某个日期分割数据,用前一部分训练模型,让它预测下一部分“就好像它是未来一样”,并将其与现实进行比较。误差测量(例如,MAE - 平均绝对误差,或 RMSE - 均方根误差)允许您将模型与基准进行比较。
注意:请勿使用您评估的数据训练模型。仅在训练中未使用的时间段内衡量预测的成功程度。否则你就会欺骗自己;该模型在纸面上看起来很棒,但在现实中却毫无用处。
不确定性:范围,而不是点估计
一个数字(“到今年年底通货膨胀率将达到 24%”)就流露出虚假的确定性。诚实的估计包括范围和概率:“在 21-27% 范围内,中心情景是 24%”。预测不确定性以模型产生的置信区间表示;但真正的不确定性比这更大,因为模型假设也可能是错误的。结构性断裂(政策变化、外部冲击)是模型看不到的最大风险。
三个迷你箱子
案例 1 — 未能超越基准。一位分析师让 AI 为每月零售额构建了一个复杂的 SARIMA。在回测中,该模型的平均绝对误差比“本月等于去年同月”的季节性朴素预测更糟糕。分析师放弃了复杂的模型;他以天真的猜测为基础,并添加了专家的修正。简单获胜。
案例 2 — 结构性断裂。一家机构使用其根据汇率冲击前的数据训练的通胀模型来预测冲击后的时期。该模型严重低估了通货膨胀,因为它假设了过去平静时期的动态。教训:模型假设它接受训练的世界;当世界发生变化时,预测就会崩溃。如果经济学家看一下图表,他就会看到突破。
案例 3 — 系列的诚实性。一位经济学家向管理层提出的年终增长预测不是一个单一的数字,而是“3.0-4.2%的范围,这些是基本假设”。截至年底,实现率为 3.6%;那是在乐队里。如果他只给出一个数字,他可能会被贴上“错误”的标签;范围和假设都是诚实的并保持信任。
选型表
状态
正确的开始
注释
每一个猜测
朴素/季节性朴素基准
击败的基础
趋势+季节性,持平
ETS(指数平滑)
易于安装和评论
自相关系列
(S)华宇
需要稳定
有一个解释变量
基于回归
未来的预测者还必须
疑似结构断裂
模型+专家修正
纯模型是不够的
四个可复制模板
1)解析与诊断:
绘制每月系列[系列],然后将其分为趋势/季节性/剩余成分(统计模型)。检查它是否平稳(ADF 测试),如有必要,请解释您推荐的变换(对数、差值)。标记图表中是否存在明显的结构性断裂。
2)基准+模型对比:
首先为该系列建立季节性朴素基准预测。然后设立 ETS 和 SARIMA。根据 MAE 和 RMSE 与回溯测试(测试过去 12 个月)比较所有三个。将结果制成表格并清楚地说明哪个模型击败了基准。
3) 估计和不确定性范围:
预测我选择的模型的接下来 6 个周期,并给出 80%/95% 置信区间。将估计值呈现为一个范围,而不是单个数字。明确该范围仅涵盖模型不确定性,而不涵盖结构破坏/外部冲击的风险。
4)回测阅读:
解释这些回测结果[表]。该模型是否确实优于基准,或者差异在统计上不显着?说明你的模型在哪些时期犯了最多的错误,并质疑其可能的经济原因(危机、季节变化)。
弱提示/强提示
弱提示:
猜猜这个系列。
人工智能建立随机模型,不回测,给出奇数;你不知道这个模型是否有效。
强力提示:
首先分解当前的月度通胀序列并寻找突破点。根据季节性朴素基准回测过去 12 个月的 ETS 和 SARIMA,并与 MAE 进行比较。选择优于基准的模型,给出 6 个月的远期预测并设定 80% 的范围。将结构破坏的风险写为单独的警告。显示我可以手动验证的每个步骤的代码和摘要编号。
常见错误
- 在不设置基准的情况下跳入复杂模型。复杂并不等于成功。
- 根据训练数据评估模型。错误地将过度服从视为成功。
- 给出单点估计。错误的确定性;所需的范围和假设。
- 忽略结构性破坏。盲目地将过去的动态带入未来。
- 跳过稳定。虚假的关系和扭曲的预测。
- 将预测呈现为预言。隐藏不确定性和责任。
综上所述
时间序列预测是通过将序列分解为其组成部分、使其平稳、建立简单的基准、通过回测比较模型并诚实地呈现结果和不确定性范围来完成的。人工智能快速生成所有这些步骤的代码;但模型选择、结构性突破判断和预测的责任在于经济学家。预测不是预言,而是有条件的、不确定的预测。
应用任务
选择月度经济系列(例如工业生产指数)。使用第一个模板进行分离和扫描突破,使用第二个模板对季节性朴素基准进行回测 ETS/SARIMA,使用第三个模板生成 6 个月的远期范围预测。请注意您的模型是否确实超过了基准,并标记您看到的任何结构性破坏。
清单
- [ ] 我绘制了该系列图,并根据趋势/季节性/突破对其进行了诊断。
- [ ] 如有必要,我已应用平稳化(对数/差异),并且我知道原因。
- [ ] 我建立了一个简单的基准,并将复杂模型与其进行比较。
- [ ] 我仅在模型未处于训练(回测)期间评估模型。
- [ ] 我提出了带有不确定性范围的估计,而不是单个数字。
- [ ] 我提到了结构性断裂/外部冲击风险作为单独的警告。
- [ ] 我认为预测和最终判断的责任在于我。