news 2026/4/22 14:22:33

ADF检测:给时间序列做个“体检”

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ADF检测:给时间序列做个“体检”

本文详细介绍ADF检测(Augmented Dickey-Fuller Test),这是时间序列分析中判断数据是否平稳的金标准。

在做时间序列预测(比如用 ARIMA 模型)之前,我们必须先回答一个问题:“这组数据是平稳的吗?”如果不平稳,很多模型根本跑不通,或者跑出来的结果是错的。


1. 什么是“平稳性” (Stationarity)?

用最直白的话说:平稳的数据,就是“守规矩”的数据。

它的统计特性(均值、方差)不会随着时间流逝而改变。无论你什么时候去观察它,它看起来都差不多。

生动的例子

  • 平稳序列(心电图)

    • 人的心跳虽然在跳动,但始终围绕着一个基准线(比如每分钟 75 次)上下波动。
    • 它不会今天跳 70,明天跳 200,后天跳 1000。
    • 特点:有固定的均值,波动范围(方差)也比较固定。
  • 非平稳序列(股票走势)

    • 一支牛股,价格从 10 块涨到 100 块,又跌回 50 块。
    • 它的均值一直在变(去年均价 20,今年均价 80)。
    • 特点:有趋势(上涨或下跌),或者波动越来越剧烈。

(图示:上方是平稳序列,围绕 0 轴稳定波动;下方是非平稳序列,像醉汉走路一样没有定性)


2. 为什么要追求平稳?

你可能会问:“股票那种不平稳的数据才是常态啊,为什么要强求平稳?”

因为大多数经典的时间序列模型(如 ARIMA)都是基于“过去即未来”的假设。

  • 如果数据是平稳的,我们可以自信地说:“过去它的均值是 0,未来它的均值大概率还是 0。”
  • 如果数据不平稳(比如一直在涨),过去的均值是 10,未来的均值可能是 100。用过去的规律去套未来的数据,就会失效。

所以,在建模前,我们通常要把“不平稳”的数据转化成“平稳”的数据。


3. 什么是 ADF 检测?

肉眼看图虽然直观,但有时候不够严谨。我们需要一个数学上的裁判,这就是ADF 检测

它的全称是Augmented Dickey-Fuller Test(增广迪基-福勒检验)。

核心逻辑:假设检验

ADF 检测就像法庭审判:

  1. 原假设 (H0)“被告是有罪的”->“数据是不平稳的”(存在单位根)。
  2. 备择假设 (H1)“被告是无罪的”->“数据是平稳的”

我们需要找证据(计算统计量)来推翻原假设。


4. 如何看 ADF 检测结果?

我们在 Python 中使用statsmodels库来做 ADF 检测。结果中我们主要看两个指标:

4.1 p-value (P值) —— 最重要!

  • p-value < 0.05

    • 结论:证据确凿,拒绝原假设
    • 人话数据是平稳的
    • 可以放心使用 ARIMA 等模型。
  • p-value > 0.05

    • 结论:证据不足,接受原假设
    • 人话数据是不平稳的
    • 需要处理(比如做差分)后再来检测。

4.2 Test Statistic (统计量)

  • 如果Test Statistic小于Critical Value (1%, 5%, 10%),也可以说明平稳。
  • 通常看 P 值就够了,P 值更直观。

5. 数据不平稳怎么办?

如果 ADF 检测告诉你数据不平稳(p > 0.05),别慌,我们有绝招:差分 (Differencing)

  • 一阶差分:今天减昨天。
    • 股票价格一直在涨(不平稳)。
    • 但“每天的涨跌幅”(今天价格 - 昨天价格)通常就是围绕 0 波动了(平稳)。
  • 对数变换:取 Log。
    • 如果数据的波动越来越大(喇叭口形状),取 Log 可以把波动压下来。

6. Python 代码示例

fromstatsmodels.tsa.stattoolsimportadfullerimportpandasaspd# 假设 data 是你的时间序列数据result=adfuller(data)print(f'ADF Statistic:{result[0]}')print(f'p-value:{result[1]}')ifresult[1]<0.05:print("恭喜!数据是平稳的。")else:print("遗憾,数据不平稳。建议做一阶差分:data.diff()")

7. 总结

  • 平稳性是时间序列建模的基石。
  • ADF 检测是判断平稳性的裁判。
  • 记住口诀:P 值小于 0.05,才是好数据(平稳)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:12:17

javascript Promise封装GLM-TTS异步调用简化逻辑

JavaScript Promise 封装 GLM-TTS 异步调用简化逻辑 在语音合成技术快速演进的今天&#xff0c;GLM-TTS 这类支持零样本音色克隆与情感迁移的大模型系统&#xff0c;正逐步成为虚拟人、智能客服和有声内容生产的核心引擎。其能力强大&#xff0c;但前端集成却常因异步流程复杂而…

作者头像 李华
网站建设 2026/4/21 23:06:13

20260104_155032_零代码创建AI_Agent:OpenAI_Agent_Bui

2026年1月&#xff0c;LY Corporation用Agent Builder在2小时内搭建出工作助理Agent&#xff0c;原本需要数月的复杂编排、定制代码、人工优化&#xff0c;现在几乎不需要写一行代码&#xff0c;迭代周期缩短70%&#xff0c;从两个季度变成两次冲刺。OpenAI的Agent Builder让这…

作者头像 李华
网站建设 2026/4/17 20:20:04

html5 progress bar显示GLM-TTS合成进度条

HTML5 Progress Bar 显示 GLM-TTS 合成进度条 在构建现代 AI 语音合成系统时&#xff0c;用户等待过程中的“黑箱感”始终是一个被低估却影响深远的体验痛点。尤其当使用如 GLM-TTS 这类功能强大但推理耗时较长的模型进行长文本或多任务语音生成时&#xff0c;用户点击“开始合…

作者头像 李华
网站建设 2026/4/23 12:54:10

dify vs GLM-TTS:低代码平台与专业语音模型的融合可能

Dify 与 GLM-TTS&#xff1a;当低代码平台遇见专业语音合成 在智能客服里听到的播报越来越像真人&#xff0c;在有声书里读到的文字开始带着情绪起伏——这些变化背后&#xff0c;是语音合成技术正悄然跨越“能说”和“会表达”之间的鸿沟。过去几年&#xff0c;TTS&#xff0…

作者头像 李华
网站建设 2026/4/23 12:52:33

GEO优化服务商技术拆解:四维评估法,选出你的AI搜索伙伴

摘要当用户越来越多地转向ChatGPT、Kimi、豆包等AI搜索引擎寻求建议时&#xff0c;传统的SEO逻辑正在失效。品牌面临一个全新痛点&#xff1a;在AI对话中“隐身”。GEO&#xff08;生成式引擎优化&#xff09;应运而生&#xff0c;旨在通过技术手段让品牌被AI理解、引用并优先推…

作者头像 李华