深色模式
第一章 时间序列的基本概念
本章建立全书的概念基础:什么是随机过程与实现、什么是平稳、自协方差与偏自相关如何刻画记忆结构,以及随机游走为什么是最典型的非平稳过程。
1.1 什么是时间序列
时间序列是按时间顺序排列的随机变量序列,记作 {Yₜ, t ∈ T},其中 T 通常是整数集(离散时间)。观测到的一条具体数据 y₁, y₂, …, yₙ 称为该随机过程的一个实现(realization)或样本路径。
理解这个区分很重要:随机过程是"所有可能发生的历史的总和",实现是"我们实际看到的那一条"。所有统计推断,本质上都是在用一条实现去推断背后的过程。
打个比方:想象一个可以无限重开的游戏,每次重开,同一个角色走出的路线都不一样。随机过程是"所有可能路线叠在一起的那张地图",实现是你这一局实际走过的那条线。你手里永远只有一条线,却要推断整张地图长什么样——这就是时间序列分析要干的活。这也是为什么样本量只能靠"等更久"来增加,而不能靠"多找几个人"。
这里有个必须纠正的误解:时间增长不会让你看到更多条路线,只会让你脚下这条线变得更长。所以 n 增加的含义是"同一条路径上多采了几个点",不是"多玩了几局"。换句话说,你永远没有第二局可以拿来对照——这正是下面第 3 条差别的由来。
时间序列数据与横截面数据有三个根本差别:
- 观测不独立。 相邻观测之间通常存在相关,这是时间序列分析要利用的核心信息。
- 顺序不可交换。 打乱顺序会破坏全部结构。因此时间序列不能随机划分训练集和测试集。
- 样本量是"时间长度"而非"个体数量"。 增加样本只能靠等待,不能靠多调查几个人。
时间序列分析通常有三类任务:描述(刻画趋势、季节、波动)、解释(识别生成机制、检验假设)、预测(给出未来取值的点预测与区间预测)。
1.2 随机过程与矩
对一个随机过程,最重要的三个矩是:
- 均值函数:μₜ = E(Yₜ)
- 方差函数:σₜ² = Var(Yₜ)
- 自协方差函数:γ(s, t) = Cov(Yₛ, Yₜ)
注意这三者一般都是时间的函数。如果它们随时间变化,序列就是非平稳的;如果都不随时间变化,就有了平稳性的基础。
打个比方:把序列当成一个人,均值是他的"长期平均体重",方差是"体重上下波动的幅度",自协方差是"今天胖了明天还会不会接着胖"。如果这三样都随年龄在变(比如青春期一路长胖),你就没法用一套固定标准去描述他——这就是非平稳。平稳的意思是:不管哪一年去体检,这三项读数都差不多。
1.3 平稳性:严平稳与宽平稳
严平稳(strictly stationary):对任意 k 和任意时间平移 τ,联合分布满足
F(y₁, …, y_k; t₁, …, t_k) = F(y₁, …, y_k; t₁+τ, …, t_k+τ)
即整个联合分布对时间平移不变。这个条件非常强,实践中几乎无法验证。
宽平稳(weakly stationary / second-order stationary):只要求前两阶矩满足三条:
- E(Yₜ) = μ,常数,与 t 无关;
- Var(Yₜ) = γ₀ < ∞,常数且有限;
- Cov(Yₜ, Yₜ₊ₖ) = γₖ,只依赖滞后阶数 k,与 t 无关。
三条缺一不可。特别要注意第二条的"有限"——像随机游走那样方差随时间增长的过程,即使均值恒为 0,也不是宽平稳。
打个比方:严平稳是要求"整份体检报告每一项都一模一样",连偏度、峰度、任意多项的联合分布都不许变;宽平稳只要求"三项核心指标一样"——平均多少、波动多大、记忆多长。后者要求低得多,但已经够用了。
三个容易卡住的点,用这个比方就好记了:
- "严平稳 + 二阶矩有限 ⟹ 宽平稳":整份报告都一样,前三项当然一样。但前提是报告上真有这三项——柯西分布就是反例,它的分布形状确实不随 t 变(严平稳),可方差是无穷大,连均值都不存在,报告上这两栏写的是"无法测量",所以推不出宽平稳。
- "宽平稳 ⇏ 严平稳":三项指标一样,不等于整个人一样。"偶尔来一次暴涨暴跌"的频率可以随时间变(峰度在变),而二阶矩根本看不出来——ARCH 类模型就是这种,弱平稳但不严平稳。
- "正态下等价":正态分布的形状只由"中心在哪、怎么摊开"决定,没有第三个旋钮。前两阶矩锁死了,整张分布就锁死了。
两者的关系:
- 严平稳 + 二阶矩有限 ⟹ 宽平稳;
- 宽平稳 ⇏ 严平稳(只能约束到二阶矩);
- 在联合正态假设下,两者等价(正态分布由均值与协方差完全决定)。
★ 为什么课程里只讲宽平稳? 因为 ARMA 模型的全部理论——ACF、PACF、Yule-Walker 方程、预测误差方差——都只建立在二阶矩上。宽平稳是这套理论的最低要求,也是唯一可用的要求。
★ 一条线凭什么能代表整张地图:遍历性。 这是 1.1 那个类比的严格依据,也是最容易被追问的一环。先把两个"平均"分开:
- 集合平均:固定时刻 t,把所有可能实现的取值平均起来,即 E(Yₜ)。这是"整张地图"上的量,现实中永远算不出来。
- 时间平均:把你手里这一条线的 n 个观测平均起来,即 (1/n)Σyₜ。这是你能算的。
- 遍历性(ergodicity):n → ∞ 时,时间平均依概率收敛到集合平均。
遍历性成立的条件是过程平稳,且记忆足够短(自协方差绝对可和,即 Σ|γₖ| < ∞)。这两条一旦满足,一条足够长的实现就等价于整张地图——这就是时间序列分析能够成立的许可证。
反过来看,这解释了两件事:
- 为什么平稳性是第一道关。 地图本身在变(非平稳),遍历性不成立,再长的线也推不出地图。所以第二章的 ADF、KPSS 不是走过场,而是在确认"这一路走的是同一张地图"。序列一旦在中途发生结构突变,前半段和后半段根本不属于同一张地图,拿前半段的地图去猜后半段必然失败。
- 为什么"多找几个人"不能替代"等更久"。 你要研究的过程在现实中只发生过一次,没有副本。硬凑多个对象(布伦特、迪拜、多只股票)那已经是面板数据,个体异质性会引入新问题,严格说不是同一个随机过程的多条实现。
一个实用推论:有效样本量远小于 n。 高度相关的 n 个观测,信息量可能只相当于少数几个独立观测。这就是时间序列模型的置信区间通常比同样样本量的横截面回归更宽的原因。被问到"样本量够不够"时,只报 n 是答不到点上的。
1.4 自协方差函数与自相关函数
自协方差函数定义为
γₖ = Cov(Yₜ, Yₜ₊ₖ) = E[(Yₜ − μ)(Yₜ₊ₖ − μ)]
它有四条性质:
- 对称性:γₖ = γ₋ₖ,所以只需看 k ≥ 0;
- 非负性:γ₀ = Var(Yₜ) ≥ 0;
- 有界性:|γₖ| ≤ γ₀(由柯西–施瓦茨不等式);
- 非负定性:对任意实数向量 a,ΣᵢΣⱼ aᵢaⱼγ|ᵢ₋ⱼ| ≥ 0。
第四条最容易被忽略,但它决定了"什么样的函数能当自协方差函数"。一个函数即使满足前三条,也未必非负定,因此不一定是某个平稳过程的自协方差。
**自相关函数(ACF)**是标准化后的自协方差:
ρₖ = γₖ / γ₀
性质:ρ₀ = 1,|ρₖ| ≤ 1,ρₖ = ρ₋ₖ。
打个比方:ACF 就是序列的记忆力曲线。ρ₁ 是"一个月前的事今天还记得多少",ρ₁₂ 是"一年前的事今天还记得多少"。ρ₀ = 1 是"今天的事当然全记得"。这条曲线衰减得快,说明序列忘性大、接近白噪声;衰减得慢,说明记忆持久;几乎不下降,则提示可能是随机游走——它从不清零,把所有历史都累加在身上。
★ 为什么"记忆"和"相关"是一回事? 因为"记得"在统计上只有一个含义:过去的值对今天还有预测力。而"有预测力"就是"相关"。把两期取值摆成散点:ρ 高时点聚成一条斜线,看横轴就能读出纵轴;ρ 接近 0 时点散成一团云,横轴对纵轴毫无信息。所以 ρₖ 的数值本身就是记忆强度,ACF 曲线就是记忆随滞后衰减的曲线——同一件事的两种叫法。
★ 衰减慢不等于单位根。 ACF 几乎不下降只是"可能有单位根"的提示,不是证据。AR(1) 取 φ = 0.98 时,24 阶之后 ρ₂₄ 仍有 0.62,与随机游走在图上几乎无法区分,但前者平稳、后者不平稳,后续处理完全相反(一个可直接建模,一个必须先差分)。判定必须靠 ADF 检验——ADF 的原假设就是 φ = 1。此外 ACF 衰减极慢还可能是长记忆(分数差分),其衰减是幂律而非指数,但过程仍平稳。
样本估计常用
γ̂ₖ = (1/n) Σₜ₌₁ⁿ⁻ᵏ (yₜ − ȳ)(yₜ₊ₖ − ȳ), ρ̂ₖ = γ̂ₖ / γ̂₀
★ 为什么分母用 n 而不是 n − k? 用 n − k 会让样本自协方差矩阵不保证非负定,进而使谱密度估计出现负值。用 n 是有偏但一致的估计,换来的是矩阵性质良好。这是"偏差换性质"的典型取舍。
★ 白噪声下 ρ̂ₖ 的分布。 若 y 为白噪声,则近似有 ρ̂ₖ ~ N(0, 1/n)。因此 ±1.96/√n 构成 95% 的置信带,落在带内的 ρ̂ₖ 视为不显著异于零。这就是 ACF 图上那两条虚线的来历。注意这是逐点的近似带,不是联合带;同时看 20 个滞后时,平均会有 1 个偶然越界,不要过度解读单个越界点。
打个比方:95% 置信带就像体检的"参考范围"。20 项指标里允许有 1 项略微超标——那不是身体出问题,是正常波动。看到一根 ACF 柱子冒出虚线就断定"有自相关",等于看到一项指标超标就要求住院。真正该看的是整体形态:是零星一根越界,还是一排柱子都站在带外。
1.5 偏自相关函数
ACF 有个缺陷:即使 Yₜ 与 Yₜ₊₂ 之间没有直接关系,只要两者都与 Yₜ₊₁ 相关,ρ₂ 也会不为零。也就是说,ACF 会把间接相关"传导"进来。
**偏自相关函数(PACF)**的定义是:在给定中间观测 Yₜ₊₁, …, Yₜ₊ₖ₋₁ 的条件下,Yₜ 与 Yₜ₊ₖ 的相关系数。它剔除了中间变量的传导效应,只保留"直接"相关。
★ 怎么算:一个减法。 这是 PACF 唯一需要记住的机制。以 PACF(2) 为例,分四步:
- ACF:直接测两头总相关,得到 ρ₂
- 算"传来的":一步传递率 ρ₁ 传两步,传递率是 ρ₁²(是平方,不是一次方)
- 相减:ρ₂ − ρ₁²,剩下的就是"不是传来的"那部分
- 归一化:除以 (1 − ρ₁²),把结果缩回 −1 到 1 之间
公式即
φ₂₂ = (ρ₂ − ρ₁²) / (1 − ρ₁²)
代入两组数对照:
| 设定 | ρ₂(总相关) | ρ₁²(传来) | 相减 | PACF(2) |
|---|---|---|---|---|
| AR(1) φ = 0.9 | 0.81 | 0.81 | 0 | 0 |
| AR(2) φ₁=0.3, φ₂=0.5 | 0.68 | 0.36 | 0.32 | 0.5 |
第二行算出的 0.5,正好等于 AR(2) 里 φ₂ 的真值。这不是巧合,而是 PACF 的定义:
PACF(k) = 用 AR(k) 拟合时第 k 个系数。
所以"PACF 在 p 阶截尾"翻译过来就是:用 AR(p+1) 拟合,新加的那个系数是 0,多记一期没用。 定阶就是一期一期往上加,加到新参数不显著为止。
★ "偏"这个字就是"偏掉传来的"。 注意两条路的贡献是相加而非竞争:总相关 = 绕路贡献 + 直达贡献,所以直达 = 总 − 绕路。不能拿直达再减一次绕路。若只有绕路一条道,不管它损耗多少,PACF 都为 0。
★ ACF 和 PACF 不是两份独立证据。 PACF 由 ACF 经 Yule-Walker 递推得到(Durbin-Levinson 算法),右边只有 ρ₁…ρₖ,不引入任何新数据;反过来 PACF 也能反推 ACF,两者信息等价。所以"ACF 和 PACF 互相验证"是个误解——它们本来就是同一个东西的两种呈现。
那为什么两个都要看?因为可读性不同。AR(1) 的 ACF 从 0.9 缓慢降到 0.35,很难判断"降到多少算没了";PACF 则是 0.9 之后直接归零,截断点一目了然。定阶看 PACF,不是因为它更准,而是因为同一个信息被摆成了更好读的形状。这也是 ARMA(p,q) 的困境所在:两者都拖尾时信息已经用尽,两种画法都读不出来,必须换信息准则。
★ ACF 只测线性记忆。 ρₖ 是 Pearson 相关系数,只捕捉线性关联。若真实关系是 Yₜ = Yₜ₋₁²,依赖非常明显,但 ρ₁ 可能接近 0。所以"ACF = 0"只等于"没有线性记忆",不等于"没有记忆"。这是 ARIMA 框架的能力边界,也是非线性模型(如第十章 NNAR)存在的理由。
打个比方:这是传话游戏。A 和 C 本来八竿子打不着,但 A 跟 B 要好、B 跟 C 要好,于是 ACF 就报告"A 和 C 关系密切"——其实那层关系全是 B 传过去的。
PACF 的做法是:把中间人 B 摁住不许动,再看 A 和 C 还联不联系。如果这时候关系消失了,说明原来那个"相关"确实是传话传出来的,不是真交情。
这也解释了为什么 PACF 能定 AR 阶数:AR(p) 里每个滞后项都是"直接"参与者,第 p 阶之后加进来的新人跟当前值没有直接往来,被摁住中间人之后就该露馅成 0——所以 PACF 在 p 阶后截尾。
PACF 有一个极其重要的等价刻画:
φₖₖ 恰好等于 k 阶自回归模型 yₜ = φₖ₁yₜ₋₁ + … + φₖₖyₜ₋ₖ + εₜ 中最后一个系数。
这就是 PACF 能用来定 AR 阶数的根本原因:如果真实过程是 AR(p),那么 p 阶以上再加滞后项,新系数应为零,即 φₖₖ = 0 对 k > p 成立。所以 AR(p) 的 PACF 在 p 阶后截尾。
实际计算用 Durbin-Levinson 递推,从 ρ₁, ρ₂, … 逐阶算出 φ₁₁, φ₂₂, …,不必每次重新回归。
1.6 白噪声
白噪声 WN(0, σ²) 指满足以下条件的序列:
E(εₜ) = 0,Var(εₜ) = σ²,Cov(εₜ, εₛ) = 0(t ≠ s)
即均值零、方差恒定、无自相关。
要区分两个层次:
- 弱白噪声:只要求不相关(二阶条件),这是 ARMA 建模的常规假设;
- 严格白噪声(独立白噪声):要求相互独立,是更强的条件。
若还服从正态分布,称为高斯白噪声,此时不相关与独立等价。
★ 白噪声的地位。 它是"信息已被榨干"的标志。时间序列建模的核心思路是:把序列中所有可预测的结构(趋势、季节、自相关)都提取出来,剩下的残差应当接近白噪声。所以残差白噪声检验是模型是否充分的最终判据——这一思想贯穿全书。
打个比方:白噪声就是榨干的柠檬——再用力也挤不出汁。
建模的全部工作,就是把趋势、季节、自相关一层层榨出来,直到剩下的渣再也挤不出任何可预测的东西。这时候残差是白噪声,模型就算"充分"了。反过来,如果残差还能榨出东西(Ljung-Box 拒绝),说明序列里还有结构你没提干净,模型漏了。
另一个直观画面是老式电视没信号时的雪花点:每一帧都完全随机,前一帧和后一帧毫无关系,盯多久也看不出下一个点会是什么颜色。这就是白噪声的视觉版本——有波动,但没规律。
1.7 随机游走:最简单的非平稳过程
Yₜ = Yₜ₋₁ + εₜ, εₜ ~ WN(0, σ²)
递推可得 Yₜ = Y₀ + Σᵢ₌₁ᵗ εᵢ,于是
- E(Yₜ) = Y₀(常数)
- Var(Yₜ) = tσ²(随时间线性增长)
方差不是常数,所以随机游走不是宽平稳。它的 ACF 为
打个比方:醉汉从路灯下出发,每一步随机迈。
把递推式展开就明白了:Yₜ = ε₁ + ε₂ + … + εₜ,也就是把 t 个独立的随机数加起来。这件事有两个后果,一个好消息一个坏消息:
- 好消息:均值会抵消。每个 ε 的平均是 0,加 100 个 0 还是 0,所以 E(Yₜ) = 0 恒成立,第一条平稳要求满足。
- 坏消息:方差只会累加。独立随机变量相加,方差直接相加,所以 Var(Yₜ) = tσ²。走 10 步他大概在路灯附近 ±3 米,走 100 步就散到 ±10 米。
所以"平均位置没动,但'他可能在哪儿'的范围越来越大"——看时刻不同,结论就不同,这就不是平稳。
怎么看图才对:别盯一条轨迹,一条线是看不出方差的。要在某个时刻横着切一刀,看所有可能的轨迹此刻落在哪儿——t = 10 时挤成一团,t = 100 时摊得很开,但三团东西的中心始终在同一条线上。中心不动 = 均值恒定,越来越宽 = 方差在长。
第三条为什么也崩:因为 Yₜ₊ₖ = Yₜ + 后面 k 步的增量,后面那部分跟 Yₜ 无关,所以 Cov(Yₜ, Yₜ₊ₖ) = Var(Yₜ) = tσ²。这个数里带着 t——间隔同样是 k,t = 10 时和 t = 100 时算出来差十倍,所以它不是"只依赖 k"。不只是方差在变,协方差也在变。
ρₖ = √((t − k)/t) ≈ 1 − k/(2t)
衰减极慢,几乎线性下降,在图上表现为"长时间不落入置信带"。这是识别非平稳序列最直观的图形特征。
带漂移的随机游走:
Yₜ = c + Yₜ₋₁ + εₜ
此时 E(Yₜ) = Y₀ + ct,均值随时间线性增长。它对应 ARIMA(0,1,0) 加常数项,差分后是均值为 c 的白噪声。
★ 随机游走的一个关键性质:冲击是永久的。一次 ε 冲击会永久改变序列的水平,不会衰减回去。这正是"单位根"的经济含义。
1.8 两类非平稳:趋势平稳与差分平稳
这是全书最容易被混淆、也最影响建模决策的一组概念。
趋势平稳(trend stationary):
Yₜ = a + bt + εₜ
均值随时间线性变化,但去掉确定性趋势后是平稳的。正确做法是退势(regression on t,或减去拟合趋势),而不是差分。
差分平稳(difference stationary,含单位根):
Yₜ = c + Yₜ₋₁ + εₜ
需要差分才能平稳,退势反而会残留单位根。
两者的判别意义在于:
| 维度 | 趋势平稳 | 差分平稳 |
|---|---|---|
| 冲击性质 | 暂时,会衰减回趋势 | 永久,改变水平 |
| 正确处理 | 退势(含时间趋势回归) | 差分 |
| 错处理的后果 | 过度差分,引入人为的负相关 | 伪回归,t 值虚高 |
| 长期预测 | 收敛到趋势线 | 收敛到一条由漂移决定的直线,方差线性增长 |
打个比方:这两个概念的区别,是**"站在自动扶梯上"和"醉汉走路"的区别**。
- 趋势平稳 = 站在自动扶梯上。 扶梯匀速上升,你在上面怎么晃都行,晃完还会回到扶梯给你的那个高度。冲击是暂时的,会衰减回去。所以正确的处理是减去扶梯的高度(退势),而不是压缩你晃动的幅度(差分)。
- 差分平稳 = 醉汉走路。 没有扶梯,每一步都永久累积,一次冲击就把水平抬上去再也不下来。绝对位置本身没有参照,你只能看"这一步比上一步多走了多少"——所以必须差分。
弄反了的代价是双向的:该差分却退了势,残差里还留着单位根,会做出伪回归(R² 很高、t 值虚高,其实两个毫无关系的序列也能"显著");该退势却差分了,会把本来平稳的序列硬压成过度差分,凭空造出一堆负相关。
★ 过度差分的典型信号:一阶差分后,ACF 在滞后 1 出现约 −0.5 的大幅负值。这是因为差分算子 (1 − B) 相当于给序列乘上一个在 z = 1 处为零、在 z = −1 处有峰的多项式,会人为制造负的一阶自相关。见到这个信号就应回头检查是否多差了一次。
打个比方:面团已经擀平了,你还接着擀——不会更平,只会更薄、破洞。差分的目的是"消掉单位根",单位根一旦消掉还继续差,就是在数据里人为制造负相关:因为 yₜ − yₜ₋₁ 里天然含一个 −yₜ₋₁,这个减号会把一阶自相关硬拽到 −0.5 附近。所以看到 ACF 滞后 1 有个明显的负柱子,第一反应不该是"模型没配好",而是"我是不是多差了一次"。
第三种情况是结构突变(structural break):序列在中途发生水平或斜率的突然改变。此时 ADF 会倾向于不拒绝单位根(因为把突变误当成持续性),而 KPSS 会拒绝平稳。处理办法是引入虚拟变量或分段建模。
要点
- 宽平稳三条:均值常数、方差有限常数、自协方差只依赖滞后。缺一不可。
- γₖ 对称、有界、非负定;ρₖ = γₖ/γ₀,白噪声下 ρ̂ₖ ~ N(0, 1/n)。
- PACF 的 φₖₖ 等于 k 阶 AR 的最后系数,这是定阶的理论依据。
- 随机游走方差 = tσ²,ACF 衰减极慢,冲击永久。
- 趋势平稳要退势,差分平稳要差分,过度差分会在 ACF 滞后 1 留下 −0.5 的痕迹。
自测 3 问
Q1:宽平稳要满足哪三个条件?少一条会怎样?
点开看答案
① 均值是常数;② 方差有限且是常数;③ 自协方差只依赖滞后 k,不依赖时间 t。
三条缺一不可:任何一条不满足,样本 ACF 等统计量就不再有稳定的含义,后面的建模工具都用不了。
Q2:随机游走为什么是非平稳的?它的方差和 ACF 有什么特征?
点开看答案
随机游走 Xₜ = Xₜ₋₁ + εₜ,方差 = tσ²,随时间线性增长,违反「方差为常数」。
样本 ACF 衰减极慢;每个冲击都会永久留在序列里(冲击永久)。
Q3:趋势平稳和差分平稳分别该怎么处理?处理错了会留下什么痕迹?
点开看答案
- 趋势平稳:去掉确定性趋势(退势);
- 差分平稳:做差分。
对趋势平稳序列做差分属于过度差分,会在 ACF 滞后 1 留下约 −0.5 的负值。