资讯动态

AR(p)平稳性证明全解析:从特征根到Companion矩阵

发布时间:2026/9/11 9:16:03 来源:尧图企业网站定制
在很多时间序列分析教材里AR(p)平稳性证明都是那种“看懂了觉得很简单合上书又完全想不起来”的内容。我当年学的时候也是这样背下了“特征方程根都在单位圆外”这句话但根本说不清为什么这个条件能保证平稳。后来自己动手做模拟、推公式、看各种证明思路才算把这块彻底理顺。这篇文章我想把AR(p)平稳性证明这件事拆开讲透。会用几条不同的证明思路从不同角度切入再从实操角度教你用代码验证、判断边界情形最后把我在实际学习和建模中被坑过的地方一并整理出来。不管是正在上时间序列分析课程还是准备考研复试或者是做实证建模想弄清楚背后的原理这篇都值得认真读一遍。1. 先从AR(1)说起平稳性条件的直觉到底在哪1.1 反复回代从递推公式看收敛条件一切高阶模型的直觉都可以从AR(1)开始建立。一阶自回归模型写出来是$$y_t \phi y_{t-1} \varepsilon_t$$通常假设 $\varepsilon_t$ 是白噪声均值为0方差为 $\sigma^2$不同时刻互不相关。现在把 $y_{t-1}$ 替换成 $\phi y_{t-2} \varepsilon_{t-1}$然后再替换 $y_{t-2}$反复回代下去就能得到$$y_t \varepsilon_t \phi \varepsilon_{t-1} \phi^2 \varepsilon_{t-2} \cdots \phi^{t-1} \varepsilon_1 \phi^t y_0$$这个式子非常关键。它告诉我们当前观测值可以表达成历史白噪声的加权线性组合外加一个初始值的影响。如果 $|\phi| 1$那么 $\phi^j$ 随着 $j$ 增大呈几何级数衰减历史远端的噪音对当前的影响越来越小初始项 $\phi^t y_0$ 也会随着 $t$ 增大趋近于0。相当于系统具有“遗忘能力”早期的冲击会被时间冲淡。此时 $\sum_{j0}^{\infty} \phi^j \varepsilon_{t-j}$ 这个无穷级数收敛方差算出来是 $\sigma^2 / (1-\phi^2)$是有限常数。反过来如果 $|\phi| \ge 1$事情就麻烦了。$|\phi| 1$ 时每个历史冲击的权重都是1累积方差变成 $t\sigma^2$随样本量增大不断膨胀均值也回不到常数的轨道上。$|\phi| 1$ 时更糟远古的冲击反而对当前影响最大系统完全发散。所以AR(1)的平稳条件就是 $|\phi| 1$。这个结论本身很简单但它背后传递的直觉很重要平稳性本质上要求系统对历史冲击的响应是“衰减”的过去的影响终将消退。1.2 特征根的两种写法为什么一会儿圆内一会儿圆外在AR(1)这个简单例子上就可以提前看到很多初学者被绕晕的地方了。差分方程 $y_t \phi y_{t-1}$ 的特征方程写作 $r - \phi 0$特征根是 $r \phi$。平稳条件 $|\phi| 1$ 等价于这个特征根的模小于1落在复平面单位圆内部。但如果我们换一种写法把模型写成滞后算子形式$$(1 - \phi L) y_t \varepsilon_t$$看的是多项式 $1 - \phi z 0$ 的根那这个根就是 $z 1/\phi 1/r$。此时平稳条件变成 $|z| 1$根要落在单位圆外部。同一个条件因为使用了不同的变量符号就出现了“单位圆内”和“单位圆外”两种说法。这不算写反了只是视角不同。后面推广到AR(p)时这两套说法会持续并存必须自己心中有数否则很容易被教材里不同的表述绕进去。2. AR(p)的平稳性条件从特征方程到完整证明2.1 模型标准化与滞后算子形式现在正式进入p阶情形。AR(p)模型是$$y_t \phi_1 y_{t-1} \phi_2 y_{t-2} \cdots \phi_p y_{t-p} \varepsilon_t$$把各项移到等式左边用滞后算子 $L$ 来表示 $L^k y_t y_{t-k}$就可以写成$$\Phi(L) y_t \varepsilon_t$$其中$$\Phi(L) 1 - \phi_1 L - \phi_2 L^2 - \cdots - \phi_p L^p$$这里 $\Phi(z) 1 - \phi_1 z - \cdots - \phi_p z^p$ 是一个关于复数变量 $z$ 的多项式它被称为自回归特征多项式。平稳性条件就是所有满足 $\Phi(z)0$ 的根 $z$ 都满足 $|z| 1$。这个条件和AR(1)是完美对应的。AR(1)中 $\Phi(z) 1 - \phi z$ 的根是 $z1/\phi$要求 $|z|1$其实就是要求 $|\phi|1$。但为什么多项式根的位置能决定整个过程的平稳性这里面牵涉到两个层面的问题必要性是“如果不满足根的条件过程肯定不平稳”充分性是“如果满足了这个条件一定能构造出平稳解”。下面分别来讲。2.2 必要性根在单位圆内或圆上为什么不行考虑齐次差分方程$$y_t - \phi_1 y_{t-1} - \cdots - \phi_p y_{t-p} 0$$它的通解依赖于特征方程$$r^p - \phi_1 r^{p-1} - \cdots - \phi_p 0$$的根 $r_1, r_2, \ldots, r_p$。每个根对应一个解分量 $r_i^t$。如果某个 $|r_i| 1$那么对应分量会随时间发散如果 $|r_i| 1$对应分量既不衰减也不发散比如随机游走那样历史冲击的影响永不消退。这里有个容易混淆的点这个差分方程特征根 $r$ 与我们前面滞后多项式的根 $z$ 正好是倒数关系。解一下会发现$\Phi(z)0$ 对应的 $z1/r$。所以 $|r_i|1$发散情形正好对应 $|z_i|1$根落在单位圆内。$|r_i|1$ 对应 $|z_i|1$即单位根情形。一个平稳序列均值应该是常数方差应该是有限常数。如果系统中存在一个模长大于等于1的特征根齐次解中的发散分量或非衰减分量就会把均值和方差推向无穷大至少不会保持常数。严格说如果存在模长不超过1的根就无法找到一个满足模型方程的弱平稳解。这就从必要性上说明了根必须都在单位圆外。再换一个角度理解这件事假设将一个脉冲冲击施加在 $\varepsilon_t$ 上模型对这个冲击的响应如果随时间衰减系统才能趋于稳定。这个响应正好由特征根决定——$r^j$中的 $|r|1$ 才能随 $j$ 衰减。这和前面AR(1)的直觉完全一致。2.3 充分性根都在单位圆外时如何构造平稳解反过来需要证明如果所有根都满足 $|z|1$那一定存在一个平稳解。这个证明的核心手段是构造无穷阶MA表示。基本思路是形式地把 $\Phi(L)$ “除”到等式右边$$y_t \Phi^{-1}(L) \varepsilon_t \Psi(L) \varepsilon_t$$其中$$\Psi(L) \frac{1}{1 - \phi_1 L - \cdots - \phi_p L^p} \psi_0 \psi_1 L \psi_2 L^2 \cdots$$展开之后其实就是$$y_t \sum_{j0}^{\infty} \psi_j \varepsilon_{t-j}$$这里 $\psi_j$ 被称作格林函数或者脉冲响应函数它度量的是 $t-j$ 时刻的白噪声冲击对 $y_t$ 的影响强度。接下来的关键一步是如果 $\Phi(z)$ 的根全部在单位圆外那么 $\Psi(z)1/\Phi(z)$ 在包含单位圆的一个环形区域内是全纯的可以展开成收敛的幂级数而且系数 $\psi_j$ 会按指数速度衰减。更具体地说存在常数 $C0$ 和某个 $\rho \in (0,1)$使得对所有 $j$ 都有 $|\psi_j| \le C \rho^j$。为什么会有这个指数衰减因为 $\Psi(z)$ 的奇点正好是 $\Phi(z)$ 的零点也就是那些在单位圆外的 $z_i$。离开单位圆最近的那个零点决定了展开系数的渐进衰减速率。所有零点都在单位圆外意味着单位圆内没有任何奇点所以级数在单位圆上收敛$\psi_j$ 是指数衰减的。有了这个衰减性之后验证平稳性就顺利了。首先是均值平稳$$E(y_t) \sum_{j0}^{\infty} \psi_j E(\varepsilon_{t-j}) 0$$因为白噪声均值是0所以均值恒为0与 $t$ 无关。然后是二阶矩利用白噪声在不同时刻不相关这一点$$E(y_t^2) \sum_{j0}^{\infty} \psi_j^2 \sigma^2 \le \sigma^2 \sum_{j0}^{\infty} C^2 \rho^{2j} \infty$$方差有限且为常数。再算自协方差对任意滞后 $h$$$\gamma_h Cov(y_t, y_{th}) \sigma^2 \sum_{j0}^{\infty} \psi_j \psi_{jh}$$只取决于 $h$与 $t$ 无关。所以过程是弱平稳的。充分性得证。这一步是整个AR(p)平稳性证明的精华所在。你发现没有证明的核心不是在算具体系数而是建立“根的位置”和“级数收敛性”之间的桥梁。根在单位圆外保证了展开系数可求和可求和又保证了二阶矩有限。链条非常清晰。3. 换个姿势把AR(p)写成向量AR(1)再证平稳性3.1 Companion矩阵与状态空间表示除了直接用滞后多项式做无穷级数展开还有一个非常实用的技巧把p阶AR模型改写成一阶向量形式。这个方法在理论分析和数值计算中都很常用比如判断平稳性、计算预测、推导状态空间模型时都会碰到。定义状态向量$$X_t (y_t, y_{t-1}, \ldots, y_{t-p1})^T$$那么AR(p)模型可以写成$$X_t F X_{t-1} \varepsilon_t e_1$$其中 $e_1 (1, 0, \ldots, 0)^T$而 $F$ 是一个 $p \times p$ 的矩阵叫Companion矩阵同伴矩阵$$ F \begin{bmatrix} \phi_1 \phi_2 \cdots \phi_{p-1} \phi_p \ 1 0 \cdots 0 0 \ 0 1 \cdots 0 0 \ \vdots \vdots \ddots \vdots \vdots \ 0 0 \cdots 1 0 \end{bmatrix} $$这个矩阵的第一行放的是AR系数下面几行是标准移位结构。把 $X_t$ 展开来看第一行对应 $y_t \phi_1 y_{t-1} \cdots \phi_p y_{t-p} \varepsilon_t$第二行对应 $y_{t-1} y_{t-1}$第三行对应 $y_{t-2} y_{t-2}$完全吻合。3.2 用Companion矩阵的谱半径判断平稳性向量化之后对 $X_t$ 反复回代可以得到$$X_t \sum_{j0}^{\infty} F^j e_1 \varepsilon_{t-j}$$完全类比AR(1)的情形。这里 $F^j$ 起着“权重”的作用。如果 $F^j$ 随 $j$ 增大而衰减到零矩阵那么级数收敛$X_t$ 的各分量方差有限过程平稳。那 $F^j$ 什么时候会衰减到零呢这就要看 $F$ 的特征值了。可以证明Companion矩阵 $F$ 的特征值恰好等于差分方程特征根 $r_1, r_2, \ldots, r_p$不是滞后多项式的根 $z$。所以前面说的平稳条件“差分方程特征根全部落在单位圆内”在这里就等价于 $F$ 的所有特征值模长都小于1。在矩阵分析里这个性质叫作谱半径小于1$$\rho(F) \max_i |\lambda_i(F)| 1$$谱半径小于1意味着什么有个经典的结论对任意矩阵$\lim_{j\to\infty} F^j 0$ 当且仅当 $\rho(F) 1$。即使矩阵不可对角化存在若尔当块指数衰减依然成立——因为 $F^j$ 的元素是由 $\lambda_i^j$ 和 $j^k \lambda_i^{j-k}$ 这类项组合而成的当 $|\lambda_i|1$ 时即使前面有多项式因子 $j^k$最终也会被指数衰减压下去。有了 $F^j$ 的指数衰减$X_t$ 的协方差矩阵$$\Sigma_X \sum_{j0}^{\infty} F^j e_1 e_1^T (F^j)^T \sigma^2$$因为每项的范数按 $\rho^{2j}$ 量级衰减所以级数收敛。这从矩阵的视角完整地给出了平稳性证明。用这个方法判断高阶AR模型的平稳性在编程上特别方便。不用去显式求多项式根直接构造矩阵然后计算所有特征值的模即可。后面讲代码实操时我会具体展示。4. 矩视角的严格化Yule-Walker方程与协方差稳定性4.1 平稳AR(p)自协方差满足的递推关系前面从解的角度证明了平稳性这一节再从矩的角度给出一个配套视角。对于平稳的AR(p)过程把模型两边同时乘以 $y_{t-k}$再取期望就能得到自协方差函数 $\gamma_k E(y_t y_{t-k})$这里默认均值为0非零均值情形先中心化即可满足$$\gamma_k \phi_1 \gamma_{k-1} \phi_2 \gamma_{k-2} \cdots \phi_p \gamma_{k-p}, \quad k \ge 1$$右边其实就是AR方程中各项的协方差组合。$k0$ 那个方程特殊一点因为 $\varepsilon_t$ 和 $y_t$ 相关从而$$\gamma_0 \phi_1 \gamma_1 \phi_2 \gamma_2 \cdots \phi_p \gamma_p \sigma^2$$这一组方程就是Yule-Walker方程。从证明的角度看它说明了一件事平稳AR(p)过程的自协方差函数必须满足一个p阶线性齐次差分方程$k \ge 1$时其解的形式可以写成特征根幂次的线性组合$$\gamma_k c_1 r_1^k c_2 r_2^k \cdots c_p r_p^k$$当所有差分方程特征根 $|r_i|1$ 时$\gamma_k$ 随着 $k$ 增大指数衰减到零。这和“短期相关、长期遗忘”的平稳过程特征是呼应的。反过来如果某个 $|r_i|\ge 1$自协方差不收敛到0甚至直接发散这就不满足平稳过程的定义了。4.2 用谱密度与Yule-Walker矩阵理解“根在圆外”的必要性还有一个非常直观的验证方式。平稳AR(p)过程的谱密度是$$f(\lambda) \frac{\sigma^2}{2\pi \left| \Phi(e^{-i\lambda}) \right|^2}$$如果 $\Phi(z)$ 在单位圆上有某个根比如 $z_0 e^{-i\lambda_0}$那么分母在频率 $\lambda_0$ 处等于0谱密度趋于无穷大。谱密度是自协方差序列的傅里叶变换谱密度发散意味着自协方差序列不可求和这对应于过程中的单位根或爆炸性成分。进一步看由自协方差构成的Toeplitz矩阵$$ \Gamma_p \begin{bmatrix} \gamma_0 \gamma_1 \cdots \gamma_{p-1} \ \gamma_1 \gamma_0 \cdots \gamma_{p-2} \ \vdots \vdots \ddots \vdots \ \gamma_{p-1} \gamma_{p-2} \cdots \gamma_0 \end{bmatrix} $$在Yule-Walker估计中我们解的线性方程组是 $\Gamma_p \phi \gamma_p$。要想参数估计有唯一解$\Gamma_p$ 必须是正定矩阵。单位根情形的谱密度发散会使这个矩阵变成奇异或近似奇异的估计也就不稳了。我自己在推导Yule-Walker方程时学到了一个很深的体会平稳性条件不只是为了让理论“好看”它和估计的可行性是绑定的。如果根在单位圆上$\Gamma_p$ 可能是奇异的最小二乘估计和矩估计都可能出问题。这就是为什么建模第一步要检查平稳性不纯粹是教条。5. 代码实操用多项式求根和模拟来验证平稳性5.1 用polyroot和eigen快速判断AR系数是否平稳理论说了一堆最终都要落到能跑起来的工具上。我平时最常用的办法有两种一是求滞后多项式根二是构造Companion矩阵求特征根。两种方法选哪种取决于你手头的数据格式。如果你已经在软件里拿到AR系数 $\phi_1, \ldots, \phi_p$用R可以这样做# 设定AR(2)系数 phi - c(0.5, 0.2) # 滞后多项式系数1, -phi1, -phi2 poly_coef - c(1, -phi) # 求根并查看模长 z_roots - polyroot(poly_coef) abs(z_roots)polyroot()返回的是滞后多项式 $\Phi(z)0$ 的根所以判断标准是模长全部大于1。如果打印出来是1.581和1.581这样的值说明通过。用Python的话对应操作是import numpy as np phi np.array([0.5, 0.2]) # 多项式系数1, -phi1, -phi2 roots np.roots(np.r_[1, -phi]) np.abs(roots)很多时候我更喜欢用Companion矩阵尤其是当模型阶数较高时数值上通常更稳定def is_stationary(phi): p len(phi) F np.zeros((p, p)) F[0, :] phi if p 1: F[1:, :-1] np.eye(p - 1) eigvals np.linalg.eigvals(F) return np.all(np.abs(eigvals) 1), eigvals注意这里是看特征值的模长是否小于1和polyroot的判断方向相反因为Companion矩阵的特征值是差分方程特征根 $r$它和滞后多项式根 $z$ 互为倒数。用的时候要看清自己算的是哪一套根。除了直接看根还可以通过模拟观察序列形态。用AR(2)系数 $\phi (0.5, 0.2)$生成300个观测序列会围绕零均值小幅波动不会出现持续偏离或爆炸性增长。如果换一组系数比如 $\phi (1.2, -0.3)$先算一下根会看到有一个根的模长小于1此时模拟出来的序列图像会出现明显的扩散趋势——这就是非平稳的典型表现。5.2 边界情形单位根过程模拟出来的“假回归”陷阱平稳和发散之间还有一个非常容易迷惑人的地带——单位根过程和近单位根过程。单位根过程最简单的例子就是随机游走 $y_t y_{t-1} \varepsilon_t$它对应AR(1)中 $\phi1$滞后多项式根恰好等于1落在单位圆边界上。模拟一个随机游走序列如果不告诉你数据生成过程光看图像很多人会觉得它有趋势甚至以为是一个带漂移的确定性趋势过程。实际做回归分析时把两个相互独立的随机游走做回归经常能得到高度显著的 $t$ 统计量这就是伪回归现象。这个坑我在初学计量时踩过相信不少人也踩过。还有更微妙的边界形态——近单位根过程。比如 $\phi0.99$ 的AR(1)理论上它是平稳的因为 $|0.99|1$但衰减速度极慢。要区分这个过程和随机游走需要非常大的样本量。有限样本下ADF检验的功效很低经常无法拒绝单位根原假设。这时候不要直接下“这是单位根过程”的结论更保险的做法是把特征根模长也算出来看看距离1有多近。下表是我自己在实操中总结的快速判断参考特征多项式根的位置差分方程特征根位置过程性质典型表现$z1$ 全部$存在 $z1$存在 $存在 $z1$存在 $我在做模拟实验时还会顺手生成多个样本路径看不同路径之间的分歧程度。平稳过程的不同实现会围绕同一均值波动长周期形态相似单位根过程的不同实现则会越走越散。这个视觉判断往往比数值检验更直观。6. 实战中的常见误区与排查技巧6.1 单位圆内还是圆外先弄清楚你算的是哪一种根这是我见过最多的困惑也是所有教材都不太强调的细节。同样一个平稳条件用滞后多项式 $\Phi(z)0$ 时要求根在单位圆外用差分方程特征方程 $r^p - \phi_1 r^{p-1} - \cdots - \phi_p0$ 时要求根在单位圆内。两个根互为倒数所以结论一致但表述完全不同。如果在R里用polyroot(c(1, -phi))算的是滞后多项式的根判断标准是all(abs(roots) 1)如果手动解差分方程或者用软件直接求矩阵的特征值判断标准相反。我自己的习惯是写代码时用抽线函数封装好注释里写清楚对应当前函数的判断方向避免以后回头读代码时把自己绕晕。6.2 平稳性证明不是ADF检验的替代品ADF检验是实证里最常用的平稳性检验工具但它检验的是“是否存在单位根”这个问题它只是在统计意义上判断不能替代对特征根的精确计算。尤其当样本量不大、根又很靠近单位圆时ADF检验结果并不可靠。反过来用模拟数据做检验时即使你知道真实的 $\phi0.95$在有限样本下ADF也经常给出无法拒绝单位根的结论。这并不说明过程非平稳而是检验功效不足。理论上判断平稳性看特征根位置就足够了实证上判断具体数据是否平稳则要结合检验和业务背景综合判断。这两种思路不要混在一起。6.3 复根同样是允许的高阶AR模型的特征根不一定全是实数可能出现共轭复根。只要复根的模长严格大于1过程依然是平稳的并且复根的存在意味着ACF会出现波浪形的衰减振荡这是周期性行为的来源不是发散信号。判断复根时一定要用模长 $|z|\sqrt{a^2b^2}$而不是只看实部。有些入门者看多项式有个负实部的根就以为不稳定这是错误的。判断平稳性只看模长是否离开单位圆。6.4 AR(2)的平稳三角可以作为快速检验工具对于二阶AR模型平稳条件可以直接用系数表示成一个三角区域不一定要每次求根。条件是$$|\phi_2| 1, \quad \phi_1 \phi_2 1, \quad \phi_2 - \phi_1 1$$这个结论由特征方程根的约束转化而来在实际建AR(2)模型时非常实用。你可以先把估计出来的系数画在 $(\phi_1, \phi_2)$ 平面上看看落不落在平稳三角内——如果正好落在边界上说明存在单位根。但要注意这个三角只对AR(2)成立AR(3)及以上的平稳区域是更复杂的非线性曲面没法靠几个不等式快速判断。阶数上来之后老老实实用数值方法求根才靠谱。6.5 平稳性证明和实际建模脱节怎么办有些同学学完证明之后还是不知道怎么用在建模上。其实这个定理的最大价值是给你一个前置检查清单拿到数据拟合AR模型后第一件事不是看R方而是看AR多项式的根。如果根已经接近单位圆模型的长期预测方差会非常大脉冲响应也不会收敛此时模型并不适合做结构性解释和长期预测。我自己在拟合完AR模型后一定会跑一遍根检验并顺手打印出各特征根的模长。即使ADF检验已经通过了我也会看一眼根的数值。因为统计检验和理论判断是互补的——前者告诉你“样本中是否有足够证据拒绝单位根”后者告诉你“模型结构上是否稳定”。两个都过关才敢放心用这个模型去做后续的预测和分析。写在最后的小建议关于AR(p)平稳性证明我最想分享的一个经验是不要只背“根在单位圆外”这个结论而是要把三种证明思路各推一遍。滞后算子展开适合理解充分性Companion矩阵适合理解系统动态和写代码Yule-Walker矩条件适合理解估计的可行性。三套视角合在一起才能真正把平稳性这个概念内化。在实际写代码验证时我习惯把求根和判断封装成一个小函数入参就是AR系数输出包括滞后多项式的根、Companion矩阵的特征根、是否平稳这三个结果。每次拟合完模型就调用一次比单独看某个检验统计量要直观得多。建议你也可以照着做一份以后建模能省很多事。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价