别再只盯着h=1了!用Matlab的adftest做时间序列平稳性检验,这3个输出参数你得会看
2026/6/13 20:59:09 网站建设 项目流程

别再只盯着h=1了!用Matlab的adftest做时间序列平稳性检验,这3个输出参数你得会看

时间序列分析中,平稳性检验是建模前的关键步骤。许多Matlab用户在使用adftest函数时,往往只关注返回的h值,却忽略了其他输出参数蕴含的丰富信息。这种单一维度的判断方式,可能导致对数据特性的误判,进而影响后续模型的准确性。

1. 深入理解ADF检验的核心逻辑

ADF检验(Augmented Dickey-Fuller test)作为时间序列平稳性检验的黄金标准,其原理远比表面看到的h=0/1复杂。检验的核心是通过构建特定的回归方程,判断时间序列是否存在单位根(unit root)——这是非平稳性的典型特征。

原假设与备择假设的实质

  • 原假设(H₀):序列存在单位根(非平稳)
  • 备择假设(H₁):序列不存在单位根(平稳)

检验过程中,Matlab会计算一个特定的检验统计量(stat),并将其与不同显著性水平下的临界值(cValue)进行比较。这个比较结果直接决定了h的取值,但背后的统计意义需要更细致的解读。

2. 四维解读:adftest输出参数全解析

2.1 h值:决策的二进制信号

h是检验结果的二元判定:

h = 0 % 接受原假设(非平稳) h = 1 % 拒绝原假设(平稳)

但单纯依赖h存在明显局限:

  • 无法反映检验结果的置信程度
  • 对临界值附近的"模糊地带"不敏感
  • 忽略不同显著性水平下的结果差异

2.2 pValue:结果的可信度度量

p值提供了拒绝原假设的概率依据:

pValue = 0.01 % 强烈拒绝原假设 pValue = 0.06 % 边缘性结果(取决于alpha取值)

p值的实战解读指南

p值范围统计意义实际决策建议
<0.01极显著拒绝H₀确信平稳
0.01-0.05显著拒绝H₀判定平稳
0.05-0.10边缘显著需结合其他参数判断
>0.10无法拒绝H₀判定非平稳

2.3 stat与cValue:检验统计量的直接较量

检验统计量stat与临界值cValue的关系,揭示了数据特性的深层次信息:

[h,pValue,stat,cValue] = adftest(data); disp(['统计量:',num2str(stat),' 临界值:',num2str(cValue)]);

判断规则

  • stat < cValue→ 拒绝H₀(平稳)
  • stat > cValue→ 无法拒绝H₀(非平稳)

注意:cValue会随显著性水平(alpha)变化。默认alpha=0.05时,对应95%置信水平下的临界值。

3. 参数联动的实战案例分析

3.1 典型平稳序列的特征

% 生成平稳白噪声序列 rng(1); y = randn(100,1); [h,p,stat,cv] = adftest(y); disp(['h:',num2str(h),' p:',num2str(p),... ' stat:',num2str(stat),' cv:',num2str(cv)]);

输出特征:

  • h = 1
  • p ≈ 0.001(远小于0.05)
  • stat ≈ -7.5(远小于cv ≈ -2.89)

3.2 非平稳序列的典型表现

% 生成随机游走序列 y = cumsum(randn(100,1)); [h,p,stat,cv] = adftest(y); disp(['h:',num2str(h),' p:',num2str(p),... ' stat:',num2str(stat),' cv:',num2str(cv)]);

输出特征:

  • h = 0
  • p ≈ 0.7(远大于0.05)
  • stat ≈ 0.3(大于cv ≈ -2.89)

3.3 临界案例的精细判别

当结果处于边界时(如p≈0.04-0.06),建议:

  1. 尝试不同显著性水平:
    [h1,~,~,~] = adftest(y,'alpha',0.05); [h2,~,~,~] = adftest(y,'alpha',0.01);
  2. 结合序列图和其他检验方法(如KPSS检验)
  3. 考虑差分后的序列表现

4. 高级应用技巧与常见陷阱

4.1 参数优化策略

滞后阶数选择

% 自动选择最优滞后阶数 [h,p,stat,cv] = adftest(y,'lags',0:10,'test','t1');

检验类型指定

% 包含趋势项的检验 [h,p,stat,cv] = adftest(y,'model','ts');

4.2 典型误判场景

伪平稳判断

  • 当序列存在结构性突变时
  • 季节性强烈的序列在非适当模型下
  • 接近单位根的近非平稳过程

解决方案对比表

问题类型识别特征解决方案
结构性突变stat值突变使用包含断点的ADF检验
强季节性周期性p值波动先进行季节性差分
近非平稳p值接近临界值增加样本量或使用更稳健的检验

4.3 结果报告的规范表达

专业报告中应包含:

  1. 检验类型(含滞后阶数选择方法)
  2. 所有输出参数值
  3. 使用的显著性水平
  4. 最终结论及限制说明

示例报告段落: "采用ADF检验(包含常数项,滞后阶数通过AIC准则自动选择,最大滞后=10)对序列X进行平稳性检验。在α=0.05显著性水平下,得到h=1(p=0.003,stat=-4.21,cValue=-2.89),可拒绝原假设,判定序列平稳。需注意,该结论基于线性假设,未考虑可能的非线性特征。"

5. 与其他检验方法的协同应用

在实际分析中,建议组合使用多种检验方法:

检验方法对比矩阵

方法原假设适用场景与ADF互补性
ADF存在单位根一般非平稳检测基准方法
KPSS序列平稳趋势平稳判别提供反向验证
PP存在单位根异方差调整稳健性检验
ERS存在单位根近单位根过程提高检验势

组合检验策略:

  1. 先进行ADF检验获取基准结论
  2. 用KPSS检验验证结果一致性
  3. 当出现矛盾时,进行PP检验
  4. 对边界案例使用ERS检验
% 组合检验示例 [h_adf,p_adf] = adftest(y); [h_kpss,~] = kpsstest(y); if h_adf~=1 && h_kpss==1 [h_pp,p_pp] = pptest(y); end

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询