Python时间序列分析:白噪声与平稳性检验实战

唐可
唐可
发布时间:2026-10-13| 5人浏览过
原创

本文详细介绍如何在Python中进行时间序列的纯随机性(白噪声)检验与平稳性检验。通过statsmodels库的acorr_ljungbox函数实现Ljung-Box检验,判断数据是否为纯随机序列;同时利用arch库和statsmodels进行ADF单位根检验,评估序列平稳性。文章包含具体代码示例、参数说明及结果解读,适用于数据预处理与建模前的关键步骤。

白噪声检验基础与函数介绍

白噪声检验,亦称纯随机性检验,是时间序列分析中的基础步骤。若数据表现为纯随机波动,则进一步挖掘其规律将失去实际意义。因此,在获取数据后,建议首先执行纯随机性检验以确认数据的有效性。

在Python中,可使用`acorr_ljungbox(x, lags=None, boxpierce=False)`函数执行数据的纯随机性检验。

参数`lags`用于指定延迟期数。若传入整数,则包含该整数以内的所有延迟期;若传入列表或数组,则包含列表中最大时滞及其之前的所有时滞。

当参数`boxpierce`设置为True时,函数除返回LB统计量外,还将额外返回Box-Pierce Q统计量。

该函数的返回值包含以下关键指标:

`lbvalue`:表示Ljung-Box检验的统计量值。

`pvalue`:基于卡方分布计算得出的P统计量。

`bpvalue`:(可选)基于Box-Pierce检验的P统计量,类型为float或array。

`bppvalue`:(可选)基于卡方分布下的Box-Pierce检验的P统计量,类型为float或array。

以下是具体的代码实现示例:

from statsmodels.stats.diagnostic import acorr_ljungbox acorr_ljungbox(b.salesVolume, lags = [6, 12],boxpierce=True)

观察输出结果可知,无论采用哪种统计量,其对应的P值均较大。这意味着无法拒绝原假设,从而推断该数据属于纯随机数据序列。

时间序列平稳性检验:ADF方法实战

补充知识:在Python中实现时间序列的单位根检验。

构建时间序列模型前,必须对数据进行平稳性检验。常用的检验方法包括DF检验、ADF检验和PP检验。下文将以ADF检验为例进行说明。

注:P值是指在假设检验中,利用样本观测值能够拒绝原假设的最小显著性水平。

若显著性水平a大于或等于P值(a >= p),则在显著性水平a下拒绝原假设H0。

若显著性水平a小于P值(a < p),则在显著性水平a下接受原假设H0。

实现方法一:

from arch.unitroot import ADF ADF(data)

ADF检验的原假设为序列不平稳。示例中P值近似为0,因此拒绝原假设,判定该序列是平稳的。

from statsmodels.stats.diagnostic import unitroot_adf unitroot_adf(b.salesVolume)

此方法输出包含检验值、p-value、滞后阶数及自由度等信息。示例中检验统计量为–5.954367776923936,小于1%显著性水平下的临界值-4.01203360058309。由于P值远小于0.01,我们拒绝原假设(原假设为存在单位根,即序列非平稳),从而认为该时间序列是平稳的。

以上即为使用Python实现时间序列白噪声检验与平稳性检验的完整内容,希望能为读者提供参考与支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。