收益:
- 能够理解趋势、季节性、平稳性和单位根的概念,并使用人工智能和准确的数据进行时间序列建模和预测。
- 能够解释 ARIMA/季节性模型并预测不确定性(置信区间、残差分析)并避免虚假回归
- 能够区分人工智能预测是基于过去的模式,而专家判断在结构性断裂和危机时期脱颖而出。
经济学家和金融分析师赖以生存的大部分数据都是时间序列:随着时间的推移定期测量的同一变量的值(每月通货膨胀、每日股票价格、季度 GDP)。时间序列与普通横截面数据有根本的不同,因为观察结果不是独立的:今天的值取决于昨天。这种依赖既是机遇(我们可以预测未来),也是危险(普通回归在这里很容易产生误导)。在本单元中,我们将了解人工智能 (AI) 如何加速时间序列建模和预测,但为什么需要关注最危险的陷阱(虚假回归)。
基本概念
时间序列通常包含三个组成部分:趋势(长期上升/下降趋势)、季节性(全年重复的规律模式,例如夏季旅游业的增加)和周期/噪声(剩余波动性)。在建模之前,序列最关键的特征是平稳性。
平稳序列是其统计属性(均值、方差)随时间保持恒定的序列。非平稳序列包含趋势、方差增长或具有单位根。单位根是一种结构,其中级数永久“记住”冲击并且不会返回到其均值;这样的级数表现得像随机游走。为什么它很重要?因为即使现实中没有关系,两个非平稳序列之间的回归也会产生高 R 方和显着系数,这称为伪回归。只有共同的趋势才让两个系列显得“相关”。
注意:两个上升序列(例如一个国家的人口和另一个国家的冰淇淋销量)可能高度相关;因为它们都会随着时间的推移而增加。这不是一种关系,而是共同趋势的幻觉。在开始时间序列回归之前,请务必检查平稳性。
分步时间序列工作流程
1. 可视化。绘制序列:是否存在趋势、是否存在季节性、方差是否随时间变化、是否存在结构性中断(突然的水平变化)?
2. 测试平稳性。 ADF 检验(Augmented Dickey-Fuller)和 KPSS 检验测试单位根/平稳性。两者相辅相成:在ADF中,原假设是“存在单位根”,在KPSS中它是“平稳的”。两者一起使用更安全。
3. 停滞。如果序列是非平稳的,则通常是有差异的(连续观察的差异;这消除了趋势)。微分一次会使“一阶积分”(I(1)) 级数平稳。如果方差正在增长,对数变换也会有所帮助。
4. 建立模型。最常见的框架是 ARIMA(自回归综合移动平均线):它结合了 AR(系列对其过去值的依赖性)、I(差异度)、MA(过去误差的影响)等组件。如果有季节性,则使用SARIMA。 AI生成auto.arima等自动选择工具的代码;但不要盲目接受自动选择。
5. 检查是否有剩菜。好的模型的残差应该是白噪声:没有模式,没有自相关。 Ljung-Box 测试对此进行了测试。如果残差中仍然存在模式,则模型不完整。
6. 预测并显示不确定性。预测不是一条线;而是一条线。总是给出置信/估计区间。随着视野的延长,范围也随之扩大——这是诚实的标志,而不是缺陷。
协整:与非平稳序列的真实关系
两个非平稳序列并不总是给出虚假关系。如果它们之间存在真正的长期均衡(它们一起移动),则称为协整,并且可以使用误差修正模型 (ECM) 进行建模。所以解决办法不是“差异并丢弃信息”;是首先测试协整性。这种区别将虚假回归与真正的长期相关性区分开来,并且是人工智能无法自行决定的理论考虑。
对比图
状态
症状
正确的方法
固定系列
均值/方差恒定
直接拱形
有趋势(单位根)
持续上涨,ADF毫无意义
差异,然后模型
两个非平稳序列
高 R² 可能是假的
一、协整检验
季节性的
年度重复模式
SARIMA / 季节差异
结构断裂
水平/坡度突然变化
破损测试,专家判断
四个可复制的提示
1.平稳性诊断:
您的角色:时间序列助理。我想要 R 代码,我不共享数据。 “series”是每月时间序列(ts 对象)。任务:(1) 绘制级数和自相关 (ACF/PACF) 图,(2) 应用 ADF 和 KPSS 检验,(3) 解释如何一起解释结果。我会决定承担差价;您做出诊断。
2. 模型构建(监督):
我的序列在第一个差异时看起来是静止的。使用auto.arima提出一个模型,但是:(1)解释所选的(p,d,q)阶数以及为什么选择它们,(2)添加代码以使用Ljung-Box测试残差是否是白噪声,(3)提醒我不要盲目接受自动选择。
3.假回归警告:
我想在两个时间序列(X,Y)之间建立回归,但它们都去趋势了。编写工作流程代码来检查虚假回归的风险:首先测试两者的平稳性,然后应用协整检验(Engle-Granger 或 Johansen)。在我直接运行 lm() 之前,请阻止我并解释为什么它很危险。
4. 预测和不确定性:
编写一段代码,使用我创建的 ARIMA 模型生成 12 个月的远期预测;绘制估计值及其 80% 和 95% 置信区间。在图表下方添加注释,表明预测基于过去的模式,在发生结构性断裂/危机时可能会变得无效。
弱提示/强提示
弱提示:
通过回归找出这两个序列的关系并预测明年。
这种说法是对错误回归陷阱的邀请:如果在不检查平稳性的情况下建立回归,则会出现高 R 平方但无意义的“关系”和无根据的估计。
强力提示:
你的角色:细心的时间序列助理。逐步进行:(1) 测试系列和报告的平稳性,(2) 如果它们不平稳,请勿进行直接回归,首先测试协整,(3) 如果您生成预测,请务必添加置信区间并编写结构性突破警告。每一步都由我来决定;自动进度。
差异:强烈的需求在回归之前需要平稳性和协整性,从而使估计具有不确定性。
三个迷你箱子
案例 1 — 虚假回归。一位分析师发现两个上升序列(一个部门的营业额和另一个国家的能源消耗)之间的 R²=0.91,p<0.001,并写道“强关系”。当他的顾问要求进行平稳性检验时,发现两者都有单位根,当取差异时,关系(r = 0.04)完全消失。高 R 平方只是共同趋势的幻觉。教训:如果不进行平稳性测试,时间序列回归是不可靠的。
案例 2——盲目信任自动模型。一名学生未经检查就使用了auto.arima选择的模型;他不再注意到他的分析中存在明显的季节性。该模型系统地低估了夏季。 Ljung-Box 检验显示残差存在自相关。正确的方法:是添加季节性成分(SARIMA)。教训:自动选择只是开始,而不是终结;必须检查残留物。
案例 3 — 预测结构断裂时的倒塌。一种模型用 2019 年的数据预测 2020 年的需求;置信区间很窄,估计是有信心的。 2020 年的大冲击(大流行)完全打破了预测,因为模型只知道过去的模式。教训:时间序列预测假设过去与未来相似;在危机/崩溃时期,专家的判断就显得尤为重要。
常见错误
- 建立回归而不检查平稳性。虚假回归产生高 R 方但不显着的关系;首先应用 ADF/KPSS。
- 微分和跳过协整。如果有真正的长期关系,一味地取差就会丢掉信息;首先测试协整。
- 使用自动模型而不检查它。 auto.arima 是一个良好的开始,但如果不检查残差(Ljung-Box),则不可靠。
- 将估计值显示为单行。没有置信区间的估计会产生错误的精度;总是表现出不确定性。
- 忽略结构性破坏。危机/政权更迭打破了过去的模式;模型无法知道这一点,需要专家判断。
提示:在编写时间序列发现之前,请再次查看该序列的原始图表。您亲眼看到的明显趋势或突破是最强烈的警告,任何测试都不应该让您忘记。
综上所述
在时间序列分析中,观测值不是独立的;这既提供了预测能力,又产生了诸如虚假回归之类的陷阱。建模前测试平稳性(ADF/KPSS);测试协整而不是直接建立非平稳序列之间的回归;检查ARIMA/SARIMA模型的残差,直至出现白噪声;始终以置信区间表示估计值。人工智能生成所有这些步骤的代码,但专家控制自动模型选择、协整决策和结构断裂解释。预测是基于过去的;在危机时刻,人类的判断拥有最终决定权。
应用任务
选择时间序列(每月或每季度)。在 AI 之前,请求并运行平稳性诊断(图形、ACF/PACF、ADF、KPSS),并将序列分类为平稳/非平稳。必要时进行微分,建立 ARIMA/SARIMA 模型并使用 Ljung-Box 检查残差。生成 6-12 期的远期预测并用置信区间绘制它。最后,在一段中考虑如果数据中存在结构性中断,您的预测可能会出错。
清单
- [ ] 我绘制了该系列图并直观地检查了趋势、季节性和中断。
- [ ] 我用 ADF 和 KPSS 测试了平稳性;我得到了所需的差异。
- [ ] 我避免了直接回归并测试了非平稳序列之间的协整。
- [ ] 我检查了模型残差(Ljung-Box)并确认它是白噪声。
- [ ] 我给出了带有置信区间的估计值;我没有将其作为一行给出。
- [ ] 我注意到了结构性断裂/危机情况下预测的局限性。