python adfuller是什么?,怎么用

在Python中,adfuller函数是时间序列平稳性检验的行业标准工具,它通过ADF检验量化序列是否存在单位根,是预测建模与统计分析前必须完成的关键步骤。

adfuller 函数的核心参数与调用方法

理解ADF检验与adfuller的关系

ADF(Augmented Dickey-Fuller)检验是判断时间序列平稳性的主流方法,而Python的statsmodels库中的adfuller函数正是该检验的官方实现,业内专家指出,adfuller已经成为金融、经济、传感器数据等领域最常用的平稳性检验工具之一,其核心思想是:通过构建回归模型,检验延迟项系数是否为零,若为零则存在单位根,序列非平稳。

python安装时的选中的launcher是什么?
加载中
python安装时的选中的launcher是什么?

参数说明:从入门到实际配置

调用adfuller时,需要理解三个关键参数,它们直接影响检验结果的可信度。

  • x(待检验序列):必须是一维数组或pandas Series,缺失值需提前处理,否则函数会报错。
  • maxlag(最大滞后阶数):控制回归模型中包含的滞后差分项个数,statsmodels官方文档建议,默认值基于样本量自动选择(如数据量小于100时用12/12(n/100)^1/4),但实务中常需手动调整,若maxlag过大,会损失自由度;过小则无法消除自相关,导致检验偏差。
  • regression(回归模型类型):可选'c'(仅常数项,默认)、'ct'(常数项+趋势项)、'ctt'(常数项+趋势项+二次趋势项)、'nc'(无常数项),行业共识是,金融资产收益率序列通常用'c',而GDP等宏观数据需用'ct',因为趋势项更符合实际走势。

如何选择滞后阶数:三种主流策略

滞后期选择不当,adfuller的p值会失真,以下是业内常用的三种方法,按场景推荐:

  • 基于信息准则自动选择:在adfuller中设置autolag='AIC'或'BIC',函数会自动遍历各阶数,选择信息量最小的值,这是最平衡的方案,适用于大多数探索性分析。
  • 手动设定固定阶数:如果已知数据采样频率(如月度数据用12阶),可直接传入maxlag=12,避免自动选择带来的不确定性,但需注意,固定阶数可能覆盖率不足,建议先用自相关图确认。
  • python adfuller是什么?,怎么用

    遍历后对比结果:在学术研究中,常对不同maxlag值分别运行adfuller,观察p值是否稳定,若在多个阶数下结论一致,则可信度更高,据统计,超过70%的实证论文会采用此方法作为稳健性检验。

adfuller 结果解读与实战案例

解剖输出结果:四个关键指标

adfuller返回一个包含五个元素的元组,但实务中只需关注前四个,它们直接决定结论。

  • ADF统计量:负值越小(越负),越倾向拒绝原假设,3.5比-2.8更显著。
  • p值:小于0.05(或0.01)时,在对应置信水平下拒绝“存在单位根”的原假设,即序列平稳,但需注意,p值对滞后阶数敏感,不同阶数下可能差异较大。
  • 临界值:1%、5%、10%三个水平下的临界值,若ADF统计量小于临界值,则拒绝原假设,若5%临界值为-2.86,而ADF统计量为-3.12,则说明在5%水平下是平稳的。
  • 滞后阶数与样本量:前者是最终使用的滞后期,后者是有效观测数,这两个值用于验证检验是否合理,若样本量过小(如小于50),结果可能不可靠。

实战:检验股票收益率序列的平稳性

假设我们下载了某只股票近一年的日收益率数据,存为变量returns,下面是完整操作路径,每一步都可复现。

import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller
# 准备数据,确保无缺失值
returns = returns.dropna()
# 运行adfuller,使用自动选择滞后期与仅常数项模型
result = adfuller(returns, regression='c', autolag='AIC')
# 提取关键指标
adf_stat = result[0]
p_value = result[1]
critical_values = result[4]
print(f'ADF统计量: {adf_stat:.4f}')
print(f'p值: {p_value:.4f}')
print('临界值:')
for key, value in critical_values.items():
    print(f'  {key}: {value:.4f}')
# 判定
if p_value < 0.05:
    print('在5%显著性水平下,序列平稳,拒绝单位根原假设')
else:
    print('序列非平稳,需进一步差分处理')

在实际项目中,如果p值大于0.05,通常会对收益率序列做一阶差分(即diff(1)),然后再次检验,据统计,金融价格序列的一阶差分多为平稳,这符合有效市场假说的基本结论。

常见误区:p值不能直接比较大小

python adfuller是什么?,怎么用

很多初学者误以为p值越小,平稳性越强,但行业共识认为,p值只是拒绝原假设的置信度,并非平稳程度的度量,平稳性检验只给出二元结论(是否平稳),不提供“平稳程度”的量化指标,若需比较不同序列的平稳性,应使用ADF统计量本身(越负越平稳),或结合KPSS检验的统计量。

adfuller 与其它平稳性检验方法的对比

KPSS检验:互补与差异

adfuller的原假设是“存在单位根”,而KPSS相反,原假设为“序列平稳”,行业共识推荐双检验策略:先用adfuller,再用KPSS,根据结果组合判断。

检验类型 原假设 适用场景 互补价值
adfuller 存在单位根(非平稳) 判断是否需要差分 若adfuller无法拒绝(非平稳),但KPSS也无法拒绝,则数据可能过于“模糊”
KPSS 序列平稳 确认差分是否过度 若adfuller拒绝(平稳),但KPSS也拒绝(非平稳),则可能存在趋势性平稳

据计量经济学教材,当adfuller的p值略高于0.05(如0.08),而KPSS的p值低于0.05时,应优先考虑序列是趋势平稳的,而非纯随机游走,此时可考虑去除趋势项而非直接差分。

适用场景选择:按数据量级决定

  • 样本量 > 500:adfuller和KPSS均可,但adfuller在小样本下的检验功效较差,此时KPSS更可靠。
  • 样本量 50-200:推荐结合使用,且优先选择包含趋势项的模型(regression=’ct’),因为小样本中趋势项容易被误判为随机游走。
  • 高频数据(如每秒记录):需注意adfuller对自相关假设敏感,最好先用ARIMA残差检验,或使用可处理异方差的单位根检验(如DF-GLS)。

adfuller 常见问题与解决方案

p值接近0.05,如何决策?

当p值在0.04-0.06之间时,不要直接下结论,建议执行以下操作:

  1. 更换滞后阶数选择方法(如从AIC换为BIC),观察p值是否稳定。
  2. 对序列进行差分后再次检验,若差分后p值显著降低(如0.001),说明原序列存在接近单位根的特征。
  3. 参考行业惯例:在金融领域,若p值在0.05-0.1之间,且序列存在明显趋势,很多分析师会按非平稳处理,先差分再建模,以消除虚假回归风险。
  4. python adfuller是什么?,怎么用

原始数据包含缺失值怎么办?

adfuller不接受NaN,有两种处理方式:

  • 前向填充:对时间序列缺失值,用最近有效值填充,适用于价格等连续数据。
  • 插值法:使用pandas的interpolate()方法,按线性或时间权重填充,更适合加速度、温度等物理量。

但需注意,缺失值比例超过20%时,任何填充都会引入偏差,建议先考虑数据采集是否完整。

调用adfuller时出现奇异矩阵警告

这通常是因为序列中存在常数(如全部为0)或重复值过多,导致回归矩阵不可逆,解决方案:先对序列做去重检查,或加入微小随机噪声(如np.random.normal(0, 1e-6, len(series)))后再检验。

Q&A:adfuller 相关高频问题

问题1:adfuller 的p值多少才算平稳?

通常以0.05为界,p值小于0.05则在5%显著性水平下拒绝“存在单位根”的原假设,认为序列平稳,应结合ADF统计量与1%、5%、10%临界值对比,若统计量小于临界值,则在对应水平下平稳,行业共识是,在金融时间序列中,p值小于0.01才算高度可靠,因为金融数据常存在特殊波动性。

问题2:adfuller 和 kpss 结果矛盾怎么办?

同时使用adfuller和KPSS时,会出现四种结果组合,若adfuller拒绝单位根(平稳)而KPSS拒绝平稳(非平稳),则序列可能是“趋势平稳”,即去除趋势后平稳,此时应使用差分还是去趋势,取决于建模目的,若两个检验都未拒绝(adfuller认为非平稳,KPSS也认为非平稳),则数据可能存在严重结构突变,需进一步使用突变点检验(如Zivot-Andrews)或更换数据清洗方法。

问题3:adfuller 在时间序列预测中必须用吗?

对于线性模型(如ARIMA、VAR),平稳性检验是强制前置步骤,因为非平稳数据会导致虚假回归和参数估计偏差,但对于深度学习模型(如LSTM、Transformer),部分研究表明模型能够自动学习趋势,开始跳过差分步骤,但行业共识仍建议在做任何预测前,先用adfuller确认序列性质,至少能避免因极端非平稳导致的训练发散问题。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/505958.html

赞 (0)
Notebook Python怎么用?,有哪些实用技巧?
上一篇 2026年7月20日 13:26
如何快速有效反向寻找CDN真实IP?,有哪些工具?
下一篇 2026年7月20日 13:32

相关推荐

  • 佛山响应式网站建设需要多少钱,哪家公司好?

    对于佛山企业而言,2026年百度搜索算法已全面转向移动优先,响应式网站建设不再是可选项,而是决定搜索引擎可见性和用户留存的核心基础,百度公开数据显示,移动端流量占比已超过60%,且移动优先索引全面覆盖,响应式设计通过统一URL和自适应布局,完美契合百度对移动端体验的要求,同时降低了企业的维护成本,对于佛山制造业……

    2026年7月14日
    1000
  • 海外网络服务器有哪些品牌,哪个品牌性价比高?

    海外网络服务器主要包括云服务器、独立物理服务器、VPS和边缘计算节点,企业应根据业务目标用户分布、合规需求和预算选择最合适的方案,海外网络服务器的常见类型云服务器云服务器是海外部署最普遍的形式,基于虚拟化技术提供弹性计算资源,你可以按需调整配置,仅支付使用量,适合业务波动大的场景,如电商促销、社交应用后端,主流……

    2026年8月3日
    500
  • 服务器开启长链接有什么好处,如何提升服务器响应速度

    服务器开启长连接是提升高并发场景下系统吞吐量的关键策略,其核心价值在于通过复用TCP连接,显著降低连接建立与断开的资源消耗,从而大幅缩短多请求的响应时间,在传统的短连接模式下,每一次请求都需要经历“三次握手”和“四次挥手”,这在高频交互中会产生巨大的延迟与性能瓶颈,长连接技术通过保持连接通道的活跃状态,消除了重……

    2026年3月27日
    10000
  • 个人搭建云电脑服务器靠谱吗?云电脑服务器搭建教程

    个人搭建云电脑服务器完全可行,其核心逻辑是利用闲置高性能PC或迷你主机,通过虚拟化技术配合内网穿透或公网IP,实现随时随地远程访问桌面环境,成本远低于商业云服务商,个人搭建云电脑的核心优势与场景匹配很多人对“云电脑”存在误解,认为必须按月付费订阅大厂服务,对于具备一定技术基础的用户,自建云电脑不仅成本可控,还能……

    2026年5月29日
    6400
  • 高维图像识别怎么优化?高维图像识别算法哪家强

    高维图像识别通过提取与映射超越三维的拓扑特征与光谱数据,已成为2026年工业质检与医疗诊断实现零漏检与高精度分类的核心底座,高维图像识别的技术内核与演进突破三维限制的维度跃迁传统二维图像识别仅依赖RGB像素矩阵,而高维图像识别将数据维度拓展至光谱、深度、时序及物理属性等多重向量空间,根据《2026全球计算机视觉……

    2026年4月26日
    6200
  • 服务器暂无可硬资源怎么办,服务器资源不足怎么解决

    当系统在部署或扩容过程中反馈服务器暂无可硬资源时,这通常意味着底层的物理计算、存储或网络节点已达到承载上限,导致虚拟化层无法调度新的实例,面对这一核心问题,运维人员与架构师的首要任务是停止无效的重试,避免触发API限流,转而通过跨可用区迁移、规格降级或资源释放来恢复业务连续性,这不仅是资源不足的信号,更是对现有……

    2026年2月24日
    15500
  • 服务器开机内存错误怎么解决方法?内存报警无法开机的解决办法

    服务器开机遭遇内存错误,核心解决逻辑遵循“由软到硬、由表及里”的排查原则,绝大多数内存错误并非物理损坏,而是由接触不良、配置错误或频率不匹配引起,解决此类问题的关键在于快速定位故障源,通过重新插拔、交叉验证、BIOS调整等手段,在无需更换硬件的前提下恢复业务运行,面对服务器开机内存错误怎么解决方法这一技术难题……

    2026年3月27日
    11900
  • Python atomic是什么,原子操作怎么实现

    Python 中的原子操作并非天生覆盖所有场景,依赖 GIL 只能保证部分内置操作的原子性,但通过显式锁、第三方库或 C 扩展,可以安全实现并发场景下的原子读写,Python 原子操作 是什么?与普通操作有何区别原子操作在并发编程中指的是不可分割的操作,一旦开始,不会被其他线程或进程干扰,在 Python 中……

    2026年7月18日
    1000
  • 求生之路2rpg到底有哪些服务器?,哪个服务器人多?

    求生之路2RPG服务器主要分为官方社区服、国内第三方服和自建服务器,目前玩家常驻的知名RPG系列包括“Last Stand RPG”“Zombie Survival RPG”等,其中基于酷番云和简米科技机房托管的服务器在稳定性和延迟控制上表现最为突出,已成为国内玩家首选,求生之路2RPG服务器的常见类型求生之路……

    2026年8月5日
    600
  • 个人搭建云存储服务器靠谱吗?自建NAS云盘教程

    个人搭建云存储服务器是解决数据隐私焦虑、实现多设备无缝同步且长期成本远低于公有云服务的最佳方案,核心在于选择低功耗硬件并配置正确的网络穿透技术,在数字化生活日益普及的今天,照片、文档和视频的体量呈指数级增长,将数据托付给第三方公有云,不仅面临订阅费用逐年上涨的压力,更存在隐私泄露的风险,许多技术爱好者开始转向自……

    2026年5月29日
    6100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注