跳到正文

单位根检验:ADF、Phillips-Perron、KPSS

ADF、Phillips-Perron、KPSS 用的是不同的零假设,'非平稳'因此可以是不同的事。讲三种检验的构造、Dickey-Fuller 分布从哪来,以及为什么单位根检验出了名地功效低。

第 1 篇 · 共 12 篇 约 12 分钟

有人说”这个序列不平稳”,你要反问:按哪个检验、什么零假设、对什么备择?答案不同,结论可以完全相反。三个常用检验——ADF(Said & Dickey, 1984)、Phillips-Perron(1988)、KPSS(Kwiatkowski, Phillips, Schmidt & Shin, 1992)——零假设根本不是同一个:前两个把单位根设为零假设,KPSS 把平稳设为零假设。把它们混着读,会得出荒唐结论。而且这还只是第一层麻烦;第二层麻烦更根本:不管零假设怎么摆,单位根和高持续性的平稳过程在有限样本里就是长得像,检验的功效天生就低。这两层麻烦贯穿这篇文章。

推导三种检验之前,先把参考文献放这:Hamilton (1994, 第 17-18 章)、Tsay (2010, 第 2 章)。

问题本身

给定序列 yty_t,它平稳吗?建模成 AR(1):

yt=μ+ϕyt−1+εty_t = \mu + \phi y_{t-1} + \varepsilon_t

ϕ\phi 的三个区间对应三种世界。∣ϕ∣<1|\phi| < 1:平稳,冲击的影响是暂时的,ACF 几何衰减。ϕ=1\phi = 1:单位根,yt=μ+yt−1+εty_t = \mu + y_{t-1} + \varepsilon_t,冲击永久留在水平里,样本 ACF 衰减极慢。∣ϕ∣>1|\phi| > 1:发散过程,不构成长期均衡,是泡沫文献关心的对象。

单位根检验就是 H0:ϕ=1H_0: \phi = 1 对 H1:ϕ<1H_1: \phi < 1 的假设检验。听起来是个普通 tt 检验的活,麻烦在于:在 H0H_0 下,ϕ^\hat{\phi} 的 tt 统计量不服从 tt 分布。这不是小样本修正能解决的事,是渐近性质上的不同——下面马上讲清楚它从哪来。

Dickey-Fuller 检验,以及那个非标准分布

基本 Dickey-Fuller 回归把模型改写成差分形式:

Δyt=(ϕ−1)yt−1+εt=ρ yt−1+εt\Delta y_t = (\phi - 1) y_{t-1} + \varepsilon_t = \rho \, y_{t-1} + \varepsilon_t

其中 ρ=ϕ−1\rho = \phi - 1,于是 H0:ρ=0H_0: \rho = 0(单位根)对 H1:ρ<0H_1: \rho < 0(平稳)。检验统计量就是普通的

tρ=ρ^SE(ρ^)t_{\rho} = \frac{\hat{\rho}}{\text{SE}(\hat{\rho})}

普通的只是形式。在 H0H_0 下,回归子 yt−1y_{t-1} 本身是个随机游走,在发散,OLS 估计量 ρ^\hat{\rho} 以 TT(而不是 T\sqrt{T})的速率收敛,极限不是正态。Dickey & Fuller (1979) 给出了极限分布:

tρ=ρ^SE(ρ^)→d∫01W(r)dW(r)(∫01W(r)2dr)1/2t_{\rho} = \frac{\hat{\rho}}{\text{SE}(\hat{\rho})} \xrightarrow{d} \frac{\int_0^1 W(r) dW(r)}{\left( \int_0^1 W(r)^2 dr \right)^{1/2}}

其中 W(r)W(r) 是标准布朗运动——分子是 WW 对自身增量的积分,分母是 WW 的 L2L^2 范数,两者相关且都有非退化极限,比值就是 Dickey-Fuller 分布。临界值靠模拟布朗运动路径得到,而且比 tt 分布的临界值负得多:仅含常数项的情形,1%、5%、10% 临界值大约是 −3.43-3.43、−2.86-2.86、−2.57-2.57,对照 tt 分布的 −2.58-2.58、−1.96-1.96、−1.64-1.64。用 −1.96-1.96 去判 ADF 统计量是最常见的错误之一,方向恰好是把不平稳的判成平稳。

临界值还依赖回归里放了什么确定性项。三种形式:不带常数不带趋势(Δyt=ρyt−1+εt\Delta y_t = \rho y_{t-1} + \varepsilon_t,序列零均值时用);带常数(序列有非零均值无趋势时用);带常数和趋势(Δyt=c+βt+ρyt−1+εt\Delta y_t = c + \beta t + \rho y_{t-1} + \varepsilon_t,序列有线性趋势时用),后者的临界值更负——1%、5%、10% 下大约 −3.96-3.96、−3.41-3.41、−3.13-3.13。选错形式两头挨打:没趋势硬加趋势,功效下降;有趋势漏掉趋势,检验规模就错了。标准建议朴素到不像建议:先画图。

ADF:处理自相关的第一条路

基本 DF 检验假设 εt\varepsilon_t 是白噪声,差分序列一有自相关,检验就设错了。Said & Dickey (1984) 的修法是往回归里加滞后差分:

Δyt=c+ρ yt−1+∑j=1kγjΔyt−j+εt\Delta y_t = c + \rho \, y_{t-1} + \sum_{j=1}^k \gamma_j \Delta y_{t-j} + \varepsilon_t

仍然检验 H0:ρ=0H_0: \rho = 0,单侧,大负 tρt_{\rho} 拒绝。加滞后不改变 H0H_0 下的渐近分布,所以临界值照用 DF 的。滞后个数 kk 要选到让残差白化,通常按 AIC 或 BIC,实操上可以按 Schwert (1989) 从 k=⌊(T−1)1/3⌋k = \lfloor (T-1)^{1/3} \rfloor 起步再做 general-to-specific 精修。这个选择两边都是坑:滞后太少,残差有自相关,检验规模过大、拒绝太频繁;滞后太多,每个滞后吃一个自由度,功效往下掉。还有一个更阴的失效模式先记下——参数不变是 ADF 的前提,趋势或水平上的一次结构突变会让平稳序列看起来像单位根,这个坑大到值得单独一节,后面讲。

Phillips-Perron:处理自相关的第二条路

Phillips & Perron (1988) 对付同一个自相关问题,走的是修标准误而不是加回归子的路:对基本 DF 回归的统计量做非参数修正,用 Newey-West 风格的异方差自相关一致(HAC)长期方差估计:

tρPP=ρ^OLSσ^ρ,HACt_{\rho}^{PP} = \frac{\hat{\rho}_{OLS}}{\hat{\sigma}_{\rho, HAC}}

修正后的统计量与 ADF 共享同一个 Dickey-Fuller 渐近分布。好处是不用选滞后阶数;代价是有限样本功效通常不如 ADF,中度持续性时尤其明显。序列表现良好时两者结论应该一致;强自相关或波动率聚集的序列上,它们可以打架——打架本身就是信息,说明结论对讨厌参数的处理方式敏感。

KPSS:把零假设倒过来

ADF 和 PP 都把单位根放在零假设的位置,这意味着”没拒绝”的默认结论是单位根。KPSS(Kwiatkowski et al., 1992)反过来:

H0:yt 平稳H_0: y_t \text{ 平稳} H1:yt 有单位根H_1: y_t \text{ 有单位根}

统计量基于 yty_t 对常数(可选趋势)回归残差的累积和:

u^t=yt−yˉ,St=∑i=1tu^i\hat{u}_t = y_t - \bar{y}, \quad S_t = \sum_{i=1}^t \hat{u}_i KPSS=∑t=1TSt2T2σ^2KPSS = \frac{\sum_{t=1}^T S_t^2}{T^2 \hat{\sigma}^2}

其中 σ^2\hat{\sigma}^2 是 u^t\hat{u}_t 长期方差的 Newey-West 估计。直觉:平稳序列的残差累积和会在零附近晃,单位根序列的累积和会走远。H0H_0 下 KPSS 有明确的渐近分布(布朗运动的泛函),临界值有表,统计量大就拒绝平稳。

零假设反着摆不是花样,是互补。假设检验天然偏袒零假设——功效不足时你得到的是零假设的”无罪推定”,而不是它成立的证据。ADF 和 KPSS 一正一反跑一遍,四种组合各有各的读法:

ADF/PPKPSS解读
拒绝(平稳)不拒绝(平稳)强平稳
不拒绝(单位根)拒绝(单位根)强单位根
拒绝(平稳)拒绝(单位根)矛盾。可能是:近单位根加短样本,或结构突变,或趋势平稳序列被误判为单位根
不拒绝(单位根)不拒绝(平稳)两边功效都低。没法下结论

前两行皆大欢喜。后两行才是实务的日常:第三行是”不舒服的中间地带”,近单位根过程的典型症状——真相同时离纯平稳和纯单位根都不远,两个检验各自拒绝了对方的零假设;第四行是样本信息干脆不够。这两行的存在,把我们逼到功效问题面前。

功效:这门手艺的天花板

单位根检验功效低不是实现瑕疵,是问题本身的性质。备择假设 ϕ=1−c/T\phi = 1 - c/T 是”单位根减去一个随样本量缩小的量”,这样的局部备择下,ADF 的渐近功效被压在远低于 1 的水平;离零假设更远的备择功效会改善,但慢。有限样本里更难看:T=100T = 100、真实 ϕ=0.95\phi = 0.95 时,正确拒绝单位根零假设的概率在文献的模拟里大致只有三成上下——比抛硬币好,但好得有限。具体数字随检验形式和设定变化,量级是稳的。

根源直白:单位根过程和 ϕ=0.95\phi = 0.95 的平稳过程,在一百个观测里生成的样本路径几乎无法区分,都高度持续。由此得出这篇文章最重要的一句话:没能拒绝单位根零假设,不证明序列真有单位根。它完全可能是个高持续性的平稳过程,只是你的检验看不出来。所以应用工作在灰色地带通常要引入统计以外的裁判——经济理论。这个序列按机制更像冲击的累积(存货式的量、资产价格),还是长期均衡的产物(利差、估值比率)?前者先验偏单位根,后者先验偏平稳。理论先验不是免检金牌,但在功效低的地方,它比第三位小数的 pp 值有用。

结构突变:让平稳序列冒充单位根

Perron (1989) 的著名观点:带一次性趋势突变的平稳序列,在 ADF 眼里就是单位根。直觉不难——趋势或水平的突变造成一个永久性的移动,而”冲击永久留下”正是随机游走的签名,检验区分不了”单位根”和”平稳加一次突变”。他的例子是美国实际 GNP:1929 年和二战前后增长速度不同,突变让整条序列看起来非平稳,但条件化突变之后,它可能只是确定性趋势周围的平稳波动。方向上要记住:怀疑有突变时,标准 ADF 偏向不拒绝单位根。

对策是把突变放进备择假设里。Zivot-Andrews (1992) 检验 H0H_0:单位根,对 H1H_1:带一次突变的趋势平稳,突变日期内生选择——扫过所有候选日期,取让 ρ\rho 的 tt 统计量最负的那个。突变可以在水平(回归里加水平虚拟变量 DUt=1[t>Tb]DU_t = \mathbb{1}[t > T_b])、在趋势(加趋势虚拟变量),或两者都有;临界值依赖突变形式,而且因为日期是搜出来的,比标准 DF 临界值更负。两次突变用 Lee-Strazicich (2003) 的最小 LM 检验。再多就别硬撑了——突变多于两次时功效垮掉、临界值不可靠,而一个你认为有很多突变的序列,本来就不该指望任何单位根检验给出干净答案。

顺带一个实务技巧,不用专门检验也能闻到突变的味道:分子样本跑检验。一段样本里是单位根、另一段里平稳,多半是结构突变在作怪,不是真单位根。

DF-GLS:能白拿的功效

功效低的另一个可攻击点在去趋势的方式上。Elliott, Rothenberg & Stock (1996) 指出,标准 ADF 用 OLS 去除常数和趋势的方式在近单位根区域是低效的,改用局部备择下的 GLS 去趋势能把功效往上抬一截:在局部备择 ϕ=1+cˉ/T\phi = 1 + \bar{c}/T 下 GLS 估计确定性项系数 βˉ\bar{\beta},构造去趋势序列 y~t=yt−βˉ′xt\tilde{y}_t = y_t - \bar{\beta}' x_t,再对 y~t\tilde{y}_t 跑不带确定性项的 ADF。这就是 DF-GLS 检验,临界值有表。相对标准 ADF 的功效改善在近单位根备择处最明显——恰好是最疼的地方。做严肃应用工作,DF-GLS 当默认起点是明智的。

面板:用横截面买功效

单条序列买不到的功效,有时可以用多条序列凑。手上是多个国家的 GDP、多只股票的估值比率这类面板时,可以联合检验单位根,跨序列汇集信息。Im-Pesaran-Shin(IPS, 2003)对各序列的 ADF tt 统计量取平均、做合适的标准化,均值足够负就拒绝;Maddala-Wu (1999) 用 Fisher 方法合并各序列 ADF 的 pp 值,联合零假设下 −2∑log⁡pi∼χ2N2-2 \sum \log p_i \sim \chi^2_{2N}。这两个都假设横截面独立——而”所有序列被同一个全球冲击驱动”恰恰是宏观金融面板的常态,独立性一破,检验规模就错。Pesaran (2007) 的 CIPS 处理这个:在每条序列的 ADF 回归里加入横截面均值作为公共因子的代理(CADF 回归),再平均 tt 统计量。用面板检验前先想清楚你的横截面像哪种。

方差比:换个角度问同一个问题

最后一个工具从完全不同的方向逼近。Lo & MacKinlay (1988) 的方差比检验用随机游走的一个标志性质:qq 期收益的方差应该恰好是 1 期方差的 qq 倍。定义

VR(q)=Var(rt+rt−1+⋯+rt−q+1)/qVar(rt)=1VR(q) = \frac{\text{Var}(r_t + r_{t-1} + \cdots + r_{t-q+1}) / q}{\text{Var}(r_t)} = 1

随机游走零假设下对所有 qq 都等于 1;均值回归压低长期方差,VR(q)<1VR(q) < 1;正自相关放大它,VR(q)>1VR(q) > 1。样本统计量

VR(q)=σ^2(q)σ^2(1)VR(q) = \frac{\hat{\sigma}^2(q)}{\hat{\sigma}^2(1)}

配上合适的标准误(异方差稳健版本也在原文里),显著偏离 1 就拒绝随机游走。它跟 ADF 是好搭档,因为看的维度不同:ADF 盯着回归系数,方差比盯着方差随期限的伸缩——而且偏离的方向直接告诉你动态偏哪边,这是 ADF 给不了的。

把这些工具排成一个流程

别把 ADF、PP、KPSS 各跑一遍然后”少数服从多数”——它们的零假设不同,票不能这么数。合理的顺序是:先画序列和 ACF,看趋势、水平移动、方差变化,据此定 DF 回归的确定性项;跑 ADF(滞后按前述规则选),再跑 KPSS 当互补,按上面那张表读组合结果;两者一致就带着功效警示报告,矛盾就往近单位根、结构突变、趋势平稳这三个方向排查;有理由怀疑突变就上 Zivot-Andrews 或 Lee-Strazicich,近单位根嫌疑重就换 DF-GLS;面板数据按横截面依赖与否选 IPS 或 CIPS;强趋势序列多问一句趋势是确定性的还是随机的——这是实质问题,不只是统计问题。

代码上 ADF 和 KPSS 都是现成的:

import pandas as pd
from statsmodels.tsa.stattools import adfuller, kpss

y = pd.Series(..)  # 你的时间序列


adf_stat, adf_p, adf_lags, adf_nobs, adf_crit, _ = adfuller(y, regression='c', autolag='AIC')
print(f"ADF stat: {adf_stat:.3f}, p-value: {adf_p:.3f}")
print(f"Critical values: {adf_crit}")
# adf_stat 小于给定水平的临界值就拒绝

# KPSS 检验:零假设 = 平稳性
kpss_stat, kpss_p, kpss_lags, kpss_crit = kpss(y, regression='c', nlags='auto')
print(f"KPSS stat: {kpss_stat:.3f}, p-value: {kpss_p:.3f}")
print(f"Critical values: {kpss_crit}")
# kpss_stat 大于给定水平的临界值就拒绝

流程走完仍然拿不准时,还有最后一招,也是被低估的一招:两头都建模。平稳假设下拟合 ARMA,单位根假设下拟合 ARIMA,比样本外预测,谁预测得好用谁。在一个检验功效天生不足的领域,样本外比较是评估哪个设定更适合你的用途的唯一诚实办法。也别忘了检验通过不是终点:确立了平稳或单位根之后,模型还是要估(平稳用 ARMA,单位根用 ARIMA 或 VECM)、突变还是要查、持续性背后的经济机制还是要想。单位根检验是分析的起点,从来不是结论。

参考文献

  • Dickey, D. A., & Fuller, W. A. (1979). Distribution of the estimators for autoregressive time series with a unit root. Journal of the American Statistical Association, 74(366), 427-431.
  • Elliott, G., Rothenberg, T. J., & Stock, J. H. (1996). Efficient tests for an autoregressive unit root. Econometrica, 64(4), 813-836.
  • Hamilton, J. D. (1994). Time Series Analysis. Princeton University Press. Ch. 17-18.
  • Im, K. S., Pesaran, M. H., & Shin, Y. (2003). Testing for unit roots in heterogeneous panels. Journal of Econometrics, 115(1), 53-74.
  • Kwiatkowski, D., Phillips, P. C. B., Schmidt, P., & Shin, Y. (1992). Testing the null hypothesis of stationarity against the alternative of a unit root. Journal of Econometrics, 54(1-3), 159-178.
  • Lee, J., & Strazicich, M. C. (2003). Minimum Lagrange multiplier unit root test with two structural breaks. Review of Economics and Statistics, 85(4), 1082-1089.
  • Lo, A. W., & MacKinlay, A. C. (1988). Stock market prices do not follow random walks: Evidence from a simple specification test. Review of Financial Studies, 1(1), 41-66.
  • Maddala, G. S., & Wu, S. (1999). A comparative study of unit root tests with panel data and a new simple test. Oxford Bulletin of Economics and Statistics, 61(S1), 631-652.
  • Perron, P. (1988). Trends and random walks in macroeconomic time series. Journal of Economic Dynamics and Control, 12(2-3), 297-332.
  • Perron, P. (1989). The great crash, the oil price shock, and the unit root hypothesis. Econometrica, 57(6), 1361-1401.
  • Pesaran, M. H. (2007). A simple panel unit root test in the presence of cross-section dependence. Journal of Applied Econometrics, 22(2), 265-312.
  • Phillips, P. C. B., & Perron, P. (1988). Testing for a unit root in time series regression. Biometrika, 75(2), 335-346.
  • Said, S. E., & Dickey, D. A. (1984). Testing for unit roots in autoregressive-moving average models of unknown order. Biometrika, 71(3), 599-607.
  • Schwert, G. W. (1989). Tests for unit roots: A Monte Carlo investigation. Journal of Business & Economic Statistics, 7(2), 147-159.
  • Tsay, R. S. (2010). Analysis of Financial Time Series (3rd ed.). Wiley. Ch. 2.
  • Zivot, E., & Andrews, D. W. K. (1992). Further evidence on the great crash, the oil-price shock, and the unit-root hypothesis. Journal of Business & Economic Statistics, 10(3), 251-270.