如何有效平稳化非周期波动信号以通过p值0.01的ADF检验?
非周期非平稳信号预处理过ADF检验的可行方案
问题背景
正在对非周期信号做预处理,为后续自回归建模做准备,信号波形如下:
已将显著性阈值p值设为0.01,对原始信号执行**增广迪基-富勒(Augmented Dickey-Fuller, ADF)**检验,判定为非平稳序列。先后对信号做一阶差分、固定间隔差分处理后,得到的序列经ADF检验仍然为非平稳,需要找到可行的预处理方案让处理后的序列满足p<0.01的ADF检验标准。
可行解决方案
- 优先校准ADF检验参数
大部分差分后仍不通过检验的情况是参数配置错误导致:- 若信号存在明确趋势,ADF检验时指定
regression='ct'参数(同时纳入常数项和线性趋势项),不要使用默认的仅常数项配置 - 滞后阶数使用AIC或BIC准则自动选择,避免手动指定阶数不合理导致检验结果偏误
- 若信号存在明确趋势,ADF检验时指定
- 先处理异方差再差分
从波形可见信号波动幅度存在明显差异,异方差特性会干扰平稳性检验结果:- 若信号全为正,先做对数变换或Box-Cox变换压制大幅波动的影响,再执行差分操作
- 若信号存在负值,先做平移使所有值为正后再执行上述变换
- 去趋势+差分组合处理
单一差分无法消除确定性趋势的情况下,使用组合处理方案:- 先用HP滤波、多项式拟合或者经验模态分解(EMD)剥离信号中的确定性趋势项,对得到的残差序列再做差分
- 可尝试二阶差分,不建议使用三阶及以上差分,会过度损失序列原有信息,影响后续自回归建模效果
- 平滑序列异常值
信号中的突变尖峰属于异常值,会显著拉高ADF检验的p值:- 采用3σ原则、分位数截断方法剔除异常值,或使用滑动窗口中位数/均值平滑序列后再做平稳性处理
- 检验结果交叉验证
若上述方案都尝试后仍未达到0.01阈值,可做交叉验证避免检验偏差:- 对序列做小波分解,提取低频平稳分量单独检验,选取满足阈值的分量开展后续建模
- 搭配KPSS检验做补充验证,避免ADF检验本身的第二类错误,若KPSS检验判定平稳,可结合两种检验结果确认序列平稳性
内容的提问来源于stack exchange,提问作者Eric94
相关产品推荐
相关产品推荐


