时间序列平稳性检验(ADF)和白噪声检验(Ljung-Box)

本文详细介绍了如何通过ADF单位根检验和Ljung-Box随机性检验来评估时间序列数据的稳定性,通过Python代码演示了ADF检验的T值、P值解释及应用,以及Ljung-Box检验的Q统计量和P值判断数据是否为白噪声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在对时间序列做预测前,我们要对数据进行一系列检验,主要是检验数据的稳定性和随机性(白噪声检验),本文主要介绍ADF检验Ljung-Box检验

ADF检验

ADF检验即单位根检验是指检验序列中是否存在单位根,因为存在单位根就是非平稳时间序列了。单位根就是指单位根过程,可以证明,序列中存在单位根过程就不平稳,会使回归分析中存在伪回归。

下面给出ADF检验的python代码

from statsmodels.tsa.stattools import adfuller
import pandas as pd
import numpy as np
data = pd.Series([151.0, 188.46, 199.38, 219.75, 241.55, 262.58, 328.22, 396.26, 442.04, 517.77, 626.52, 717.08, 824.38, 913.38, 1088.39, 1325.83, 1700.92, 2109.38, 2499.77, 2856.47, 3114.02, 3229.29, 3545.39, 3880.53, 4212.82, 4757.45, 5633.24, 6590.19, 7617.47, 9333.4, 11328.92, 12961.1, 15967.61],index=np.arange(1978,2011))
re=adfuller(data)
print(re)

(-0.04391111656553118, 0.9547464774274733, 10, 22, {'1%': -3.769732625845229, '5%': -3.005425537190083, '10%': -2.6425009917355373}, 291.54354258641223)

结果分析如下:
-0.04391111656553118是adt检验的结果,简称为T值,表示t统计量。
0.9547464774274733简称为p值,表示t统计量对应的概率值。
10表示延迟。
22表示测试的次数。
第五个是配合T值一起看的,是在99%,95%,90%置信区间下的临界的ADF检验的值。
291.54354258641223最大滞后门限值门限

首先,-0.04391111656553118大于三个置信区间的临界值,即存在单位根。

其次,p值要求小于给定的显著水平(一般是0.05),等于0最好。本数据中,P值 为 0.9547464774274733,大于0.05,即存在单位根。

所以综上所述,此序列不是平稳序列

下面给出平稳序列的结果
(-4.924087490679005, 3.129856642757301e-05, 19, 636, {'1%': -3.4406737255613256, '5%': -2.866095119842903, '10%': -2.5691958123689727}, 14356.744057311003)

T值小于三个置信区间的临界值,且P值小于0.05接近0,所以不存在单位根,是平稳序列。

Ljung-Box检验

Ljung-Box检验即LB检验、随机性检验,用来检验m阶滞后范围内序列的自相关性是否显著,或序列是否为白噪声,Q统计量服从自由度为m的卡方分布。若是白噪声数据,则该数据没有价值提取,即不用继续分析了

下面给出Ljung-Box检验的python代码

from statsmodels.stats.diagnostic import acorr_ljungbox as lb_test
re = lb_test(data, lags=20)#使用的博主自己的数据
prinit(re)
        lb_stat      lb_pvalue
1    471.099659  1.847036e-104
2    899.481638  4.786785e-196
3   1347.384204  7.695651e-292
4   1791.734228   0.000000e+00
5   2207.199800   0.000000e+00
6   2674.155719   0.000000e+00
7   3242.923906   0.000000e+00
8   3686.776794   0.000000e+00
9   4069.902008   0.000000e+00
10  4474.462678   0.000000e+00
11  4865.867510   0.000000e+00
12  5234.470249   0.000000e+00
13  5641.097308   0.000000e+00
14  6133.124076   0.000000e+00
15  6518.637784   0.000000e+00
16  6846.243758   0.000000e+00
17  7193.271970   0.000000e+00
18  7526.968985   0.000000e+00
19  7836.234889   0.000000e+00
20  8179.147428   0.000000e+00

结果分析如下

我们主要看第二列的P值,lags为检验的延迟数,一般指定是20,或是序列长度,每一个P值都小于0.05或等于0,说明该数据不是白噪声数据,数据有价值,可以继续分析。

反之如果大于0.05,则说明是白噪声序列,是纯随机性序列。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青石横刀策马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值