讲师中心 微信公众号

工具推荐

视频效率加速
AniShort
AniShort

AI短剧协同制作平台

Seko
Seko

AI短剧一键生成成片

Laper
Laper

剧本策划到成片协作

updream

一键生成高质量推广成片

Python数据怎么做平稳性检验_ADF Test单位根检验代码实现

阿墨君_1079

阿墨君_1079

发布时间:2026-03-13 12:41:03

|

892人浏览过

|

来源于php中文网

原创

用adfuller做ADF检验需先观察序列趋势并正确设定regression参数,对异方差序列应先变换(如取对数),使用autolag="AIC"自动选滞后阶数,仅关注pvalue与icbest,注意test_statistic须比临界值更负才拒绝原假设,输入必须为1D numpy数组且无缺失值。

python数据怎么做平稳性检验_adf test单位根检验代码实现

怎么用 adfuller 做 ADF 检验?别直接扔原始序列

ADF 检验不是“调个函数就完事”的黑盒,adfuller 对输入序列很敏感。原始时间序列常含趋势或截距,直接喂给 adfuller 很可能得出“非平稳”的误判——其实只是模型设定没对上。

实操建议:

  • 先画图看趋势:plt.plot(series),有明显上扬/下降线?大概率得选 regression="ct"(带常数+时间趋势)
  • 若序列均值稳定但方差炸了(比如波动越来越大),ADF 本身不处理异方差,得先做变换(如取对数、np.log1p)再检验
  • adfuller 默认用 regression="c"(只带常数项),对带线性趋势的序列容易漏检单位根,这时候 p 值偏大,误以为平稳
  • 滞后阶数 maxlag 别硬写数字,让函数自动选:adfuller(x, autolag="AIC"),否则阶数太小会残留自相关,太大又损失自由度

adfuller 返回的五个值里,只看 pvalue 和 icbest 就够了

返回元组是 (test_statistic, pvalue, usedlag, nobs, critical_values, icbest),但日常判断只盯两个数:p 值是否小于 0.05,以及 icbest(AIC/BIC 选的最优滞后阶数)是否合理。其他字段基本不用查。

常见错误现象:

立即学习“Python免费学习笔记(深入)”;

Python Hardener
Python Hardener

通过完整的安全审查、代码整洁重构、健壮的错误处理、正确的日志记录以及完整的文档字符串覆盖,强化 Python 脚本。

下载
  • p 值 = 0.12,但 icbest = 1,而你数据有 500 个点——说明滞后阶数严重不足,自相关没剔干净,得手动加大 maxlag 再试
  • critical_values 是字典,含 "1%"、"5%"、"10%" 三档临界值,但比这个更关键的是:你的 test_statistic 必须比对应显著性水平的临界值更负才算拒绝原假设。比如 test_statistic = -2.8,而 "5%" 临界值是 -2.86,那就不算通过
  • 别把 nobs 当样本量——它等于原始长度减去滞后阶数,所以短序列 + 高滞后 = 有效观测极少,结果不可靠

差分后还非平稳?别急着三阶差分,先检查季节性或结构突变

一阶差分后 pvalue > 0.05 很常见,但这不意味着必须二阶差分。过度差分会引入虚假随机性,反而破坏可预测性。

使用场景和排查点:

  • 月度销售数据在差分后仍不平稳?大概率是季节性没处理,先用 seasonal_decompose 或 detrend + period=12 剥离季节项,再对残差做 ADF
  • 序列在某年份突然跳变(比如政策调整)?ADF 假设结构稳定,这种断点会让检验失效。得先用 changepoint 库检测突变点,分段检验
  • 金融收益率序列常“看起来平稳”,但 ADF 却卡在 p=0.07 —— 这时候别硬差分,考虑用 PP 检验(kpss 或 phillips_perron)交叉验证,它对异方差更鲁棒

为什么 adfuller 在 pandas DataFrame 上直接报错 ValueError: array must be 1-dimensional?

因为 adfuller 只吃 1D 数组,而 df["col"] 返回的是 pd.Series,看着像一维,但内部 dtype 或索引可能触发隐式转换失败;df[["col"]] 更惨,返回的是二维 DataFrame。

安全写法就一条:

  • 永远用 adfuller(df["col"].dropna().values) —— .values 强制转成 numpy.ndarray,dropna() 防空值干扰
  • 别信 df["col"].to_numpy(),某些版本 pandas 会保留 NaN,导致 adfuller 报错
  • 如果序列含 datetime 索引,不影响检验,但别把它当数据传进去;adfuller 不读索引,只看数值

最易被忽略的一点:ADF 检验本身不关心时间间隔是否等距,但它假设观测独立同分布(除自相关外)。如果你的采样严重不均匀(比如日频数据里缺了三个月),检验结果会失真——这时候得先插值或重采样,再跑 adfuller。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

1911

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

5344

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1849

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

32377

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3807

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3827

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

1263

2023.08.11

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

616

2023.08.10

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

0

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn