在Stata中进行单位根检验是时间序列分析的重要步骤,主要用于判断序列的平稳性,单位根检验的核心思想是检验序列是否存在单位根,若存在单位根,则序列为非平稳序列,可能导致伪回归问题;反之则为平稳序列,Stata提供了多种单位根检验方法,包括DF检验、ADF检验、PP检验、KPSS检验等,不同方法适用于不同数据特征和模型设定。

单位根检验的基本原理与常用方法
-
DF检验(Dickey-Fuller检验)
DF检验适用于一阶自回归过程AR(1),模型设定为:
[ \Delta yt = \alpha + \beta t + \gamma y{t-1} + \varepsilon_t ]
(\alpha)为常数项,(\beta)为时间趋势项,(\gamma)为系数,原假设(H_0: \gamma = 0)(存在单位根),备择假设(H_1: \gamma < 0)(平稳),若拒绝原假设,则序列平稳。 -
ADF检验(Augmented Dickey-Fuller检验)
ADF检验是DF检验的扩展,通过引入滞后差分项消除序列自相关,模型为:
[ \Delta yt = \alpha + \beta t + \gamma y{t-1} + \sum_{i=1}^{p} \deltai \Delta y{t-i} + \varepsilon_t ]
滞后阶数(p)可通过AIC、SC准则或自相关图确定。 -
PP检验(Phillips-Perron检验)
PP检验通过非参数方法修正序列自相关和异方差,模型形式与DF检验相同,但使用修正的t统计量和Z统计量。 -
KPSS检验
KPSS检验的原假设为序列平稳(趋势平稳或水平平稳),备择假设为非平稳,与ADF检验形成互补。
Stata中单位根检验的命令与操作
Stata的dfuller命令用于ADF检验,pperron命令用于PP检验,kpss命令用于KPSS检验,以下是具体操作步骤:
ADF检验(dfuller命令)
基本语法为:
dfuller 变量名 [, options]
常用选项包括:
trend:包含时间趋势项和常数项(默认仅含常数项)。noconstant:不包含常数项。lags(#):设定滞后阶数,默认自动选择。regress:显示回归结果。
示例:
对变量gdp进行ADF检验,包含趋势项,滞后阶数为2:
dfuller gdp, trend lags(2)
PP检验(pperron命令)
语法与dfuller类似:
pperron 变量名 [, options]
选项包括trend、noconstant、lags(#)等,还可通过bandwidth()设定带宽参数。
示例:
对变量inflation进行PP检验,不含趋势项:
pperron inflation, noconstant
KPSS检验(kpss命令)
语法为:
kpss 变量名 [, options]
选项包括trend(趋势平稳检验,默认为水平平稳)和lags(#)。
示例:
检验变量stock的水平平稳性:
kpss stock
检验结果解读与模型选择
单位根检验需关注以下关键指标:
- t统计量:与临界值比较,若t统计量小于临界值(绝对值更大),拒绝原假设。
- P值:若P值小于显著性水平(如0.05),拒绝原假设。
- 滞后阶数:通过AIC/SC准则选择,避免过度拟合。
模型选择规则:
- 若序列有明显趋势,选择包含趋势项的模型(
trend选项)。 - 若序列均值非零,需包含常数项(默认)。
- 滞后阶数可通过
varsoc命令(信息准则筛选)或dfuller的lags(0/1/...)手动尝试。
示例结果解读:
Dickey-Fuller test for unit root Number of obs = 100
Interpolated Dickey-Fuller
Test Statistic 1% Critical 5% Critical 10% Critical
Value Value Value
Z(t) -3.215 -3.497 -2.890 -2.582
若Z(t) = -3.215,小于5%临界值-2.890,则在5%显著性水平下拒绝原假设,序列平稳。
多变量序列的单位根检验
对于面板数据或多个时间序列,可结合xtunitroot命令(面板单位根检验)或循环执行单变量检验,对变量x1、x2、x3分别进行ADF检验:
foreach var in x1 x2 x3 {
dfuller `var', trend lags(2)
}
注意事项
- 数据预处理:检验前需检查序列趋势、异常值,必要时进行对数变换或差分。
- 检验方法互补:建议结合ADF和KPSS检验,避免单一方法偏差。
- 季节性数据:若数据存在季节性,需先进行季节差分或使用
seasonal选项。
相关操作示例
以下为ADF检验与PP检验的对比示例(假设数据为gdp序列):
| 检验方法 | 命令 | 检验统计量 | P值 | 5%显著性) |
|---|---|---|---|---|
| ADF检验 | dfuller gdp, trend |
-3.215 | 021 | 平稳 |
| PP检验 | pperron gdp, trend |
-3.180 | 023 | 平稳 |
FAQs
问题1:如何确定ADF检验的滞后阶数?
解答:滞后阶数可通过以下方法确定:
- 使用
dfuller的lags(#)手动尝试不同阶数,选择AIC/SC最小的模型; - 通过
varsoc 变量名命令查看信息准则(AIC、BIC、HQIC),选择使准则最小的阶数; - 参考Schwert准则((p_{\text{max}} = \text{int}[12(T/100)^{1/4}]),T为样本量)。
问题2:ADF检验与KPSS检验结果冲突时如何处理?
解答:ADF检验的原假设是“存在单位根”,KPSS检验的原假设是“序列平稳”,若ADF拒绝原假设(平稳)而KPSS拒绝原假设(非平稳),可能因序列结构复杂(如结构断点),建议:
- 检查序列趋势和异常值,分段检验;
- 使用更稳健的检验方法(如ERS检验、NP检验);
- 结合经济理论判断序列的长期趋势,避免机械依赖统计结果。
