You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中实现Simple Dickey-Fuller(简单迪基-富勒)检验的方法咨询

Python实现标准Dickey-Fuller(DF)检验的解决方案

核心结论

标准DF检验无需额外找独立的第三方包实现,它本身就是Augmented Dickey-Fuller(ADF)检验的特殊形式,仅需调整ADF检验的传入参数即可得到完全等价的DF检验结果。


具体实现方法(基于statsmodels库)

你可以直接使用已经在用来做ADF检验的statsmodels.tsa.stattools.adfuller函数,调整两个核心参数即可:

  • 设置maxlag=0:ADF检验的扩展项就是序列的滞后差分项,将最大滞后阶数设为0即符合DF检验无滞后差分项的回归设定
  • 通过regression参数选择你需要的DF检验形式:
    • 'c':仅含截距项(最常用的默认DF检验形式)
    • 'n':无截距、无时间趋势项
    • 'ct':含截距和时间趋势项
    • 'ctt':含截距、线性和二次时间趋势项

代码示例

import numpy as np
from statsmodels.tsa.stattools import adfuller

# 生成示例时间序列,可替换为你的待检验数据
np.random.seed(42)
test_series = np.random.randn(150).cumsum()

# 执行标准DF检验(仅含截距项版本)
df_test_result = adfuller(test_series, maxlag=0, regression='c')

# 输出检验结果
print(f"DF检验统计量:{df_test_result[0]:.4f}")
print(f"对应p值:{df_test_result[1]:.4f}")
print("各显著性水平临界值:")
for sig_level, crit_val in df_test_result[4].items():
    print(f"  {sig_level}: {crit_val:.4f}")

补充说明

如果你的作业要求单独展示DF检验的实现逻辑而非直接调用封装函数,也可以手动基于OLS回归构造DF检验:构造对应设定的回归方程,计算滞后一阶项系数的t统计量,再和DF分布的临界值对比判断是否拒绝原假设即可,手动计算结果和上述调整参数后的ADF输出完全一致。

目前Python常用数据科学库没有单独封装标准DF检验的接口,因为通过调整ADF参数实现的方式足够简便且结果完全等价,无需额外重复开发。

内容的提问来源于stack exchange,提问作者Tes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:45:02