菜鸟科技网

Stata中ADF检验命令怎么用?

在Stata中执行ADF检验(Augmented Dickey-Fuller test)是时间序列数据分析的重要步骤,用于检验序列是否存在单位根,ADF检验通过引入滞后项来修正残差的自相关性,其核心命令为dfuller,但实际应用中需结合数据预处理、选项设置和结果解读等多个环节,以下从命令基础、语法结构、选项说明、结果解读及操作示例五个方面详细说明。

Stata中ADF检验命令怎么用?-图1
(图片来源网络,侵删)

ADF检验的核心命令与基础语法

Stata中执行ADF检验的基础命令为dfuller,其基本语法结构为:

dfuller 变量名 [if] [in] [, 选项]  

“变量名”为待检验的时间序列变量;[if][in]为可选条件,用于筛选样本范围;[,]后的选项是ADF检验的关键参数,用于设定检验类型、滞后阶数等。

主要选项说明

ADF检验的选项直接影响检验结果的可靠性,常用选项如下表所示:

选项 功能说明 示例
noconstant 不包含截距项(仅用于趋势明确的序列,实际较少使用) dfuller y, noconstant
trend 包含截距项和线性时间趋势项(适用于有明显上升/下降趋势的序列) dfuller y, trend
drift 仅包含截距项(默认选项,适用于无明确趋势但均值非零的序列) dfuller y, drift(等价于默认)
lags(#) 设定ADF检验的滞后阶数(#为正整数,需通过准则确定) dfuller y, lags(3)
regress 显示回归结果详细输出(包括系数、标准误、t统计量等) dfuller y, lags(2) regress

滞后阶数的选择

滞后阶数的选择是ADF检验的关键步骤,阶数过低可能导致残差自相关,过高则会降低检验功效,Stata中常用的选择方法有两种:

Stata中ADF检验命令怎么用?-图2
(图片来源网络,侵删)
  1. 信息准则法:通过varsoc命令计算不同滞后阶数下的AIC、BIC或HQIC值,选择最小值对应的阶数。

    varsoc y, maxlag(8)  // 检验滞后0-8阶的信息准则  

    输出结果中,若AIC在滞后3阶最小,则ADF检验中可设定lags(3)

  2. 经验法则:对于年度数据,滞后阶数通常取1-2;季度数据取4;月度数据取12,但该方法依赖数据频率,需结合信息准则调整。

ADF检验的结果解读

执行dfuller命令后,Stata会输出检验统计量、临界值和p值等关键结果,需重点关注以下内容:

Stata中ADF检验命令怎么用?-图3
(图片来源网络,侵删)
  1. 检验类型(Test Statistic):表格第一行显示ADF检验的t统计量(如“Z(t)”),该值需与临界值比较。
  2. 临界值(Critical Values):输出结果提供1%、5%、10%显著性水平下的临界值,若ADF统计量小于临界值(或p值小于显著性水平),则拒绝原假设(序列存在单位根),认为序列平稳。
  3. 回归结果(若使用regress选项):显示滞后项系数、截距项、趋势项的显著性,可辅助判断序列特征。

示例结果解读
假设执行dfuller gdp, trend lags(2)后,输出如下:

Augmented Dickey-Fuller test for unit root         Number of obs   =        98  
---------- Interpolated Dickey-Fuller ---------  
        Test         1% Critical       5% Critical      10% Critical  
 Statistic           Value             Value             Value  
----------------------------------------------------------------------------  
 Z(t)             -3.152            -4.066            -3.461            -3.157  
----------------------------------------------------------------------------  
MacKinnon approximate p-value for Z(t) = 0.0986  
  • ADF统计量为-3.152,大于5%临界值-3.461,且p值0.0986>0.05,不能拒绝原假设,认为GDP序列存在单位根(非平稳)。

完整操作示例

以Stata内置的“air2.dta”数据集(航空乘客数据)为例,演示ADF检验完整流程:

  1. 加载数据与设定时间格式

    webuse air2.dta  
    tsset time  // 设定时间变量为time  
  2. 绘制时序图观察趋势

    line air time  

    图形显示序列有明显上升趋势和季节性,初步判断可能非平稳。

  3. 选择滞后阶数

    varsoc air, maxlag(12)  

    输出显示AIC在滞后1阶最小(AIC=10.23),故选择lags(1)

  4. 执行ADF检验(含趋势项)

    dfuller air, trend lags(1) regress  
  5. 结果解读
    输出ADF统计量为-1.823,大于5%临界值-3.461(p值=0.682),不能拒绝原假设,序列非平稳,需对序列进行差分后再检验,

    gen d_air = D.air  // 一阶差分  
    dfuller d_air, drift lags(1)  // 对差分序列检验(含截距项)  

    若差分后ADF统计量-4.217小于5%临界值-2.879(p值=0.0001),则认为差分序列平稳,原序列为I(1)过程。

FAQs

Q1:ADF检验中,如何选择“noconstant”“trend”“drift”三种模型?
A1:模型选择需结合序列特征和经济意义:

  • 若序列无明确趋势且均值接近零,可尝试noconstant(实际较少用,因多数序列存在截距);
  • 若序列无趋势但均值非零,使用drift(默认选项);
  • 若序列有明显上升/下降趋势(如GDP、股价指数),必须使用trend,可通过时序图初步判断,或对比三种模型的AIC/BIC值,选择信息准则最小的模型。

Q2:ADF检验p值大于0.05,是否一定说明序列非平稳?
A2:不一定,ADF检验的原假设是“序列存在单位根”,p值>0.05仅表示“不能拒绝原假设”,而非“接受原假设”,可能原因包括:① 序列确实非平稳;② 滞后阶数选择不当(过低导致残差自相关,过高导致检验功效下降);③ 样本量过小(ADF检验需大样本性质,样本量<50时结果可能不可靠),建议调整滞后阶数、扩大样本量或结合PP检验、KPSS检验等其他方法综合判断。

分享:
扫描分享到社交APP
上一篇
下一篇