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

在对时间序列做预测前,我们要对数据进行一系列检验,主要是检验数据的稳定性和随机性(白噪声检验),本文主要介绍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,则说明是白噪声序列,是纯随机性序列。

上一篇:LVS-DR模式配置


下一篇:跟高手学习LINUX笔记-18