白噪声序列及检验方法,如何检验一个序列是不是白噪声

首页 > 经验 > 作者:YD1662024-02-28 11:03:10

一、前言

白噪声序列及检验方法,如何检验一个序列是不是白噪声(1)

在时间序列分析与建模过程中,白噪声检验的作用有:

可以看到白噪声检验很重要,所以本文将介绍白噪声检验的相关概念与方法。

二、检验方法

观察自相关图

通常情况下,我们将一个具有零均值、同方差的独立同分布序列称为白噪声序列,所以白噪声序列是没有自相关性的,因此可以通过直观地考察ACF与PACF来判断序列是否为白噪声:

import numpy as np import matplotlib.pyplotas plt from statsmodels.graphics.tsaplots import plot_acf, plot_pacf white_noise= np.random.standard_normal(size=100) fig= plt.figure(figsize=(20, 10)) ax1= fig.add_subplot(211) ax2= fig.add_subplot(223) ax3= fig.add_subplot(224) ax1.plot(white_noise) ax1.set_title('white noise') plot_acf(white_noise, ax=ax2) plot_pacf(white_noise, ax=ax3) plt.show()

白噪声序列及检验方法,如何检验一个序列是不是白噪声(2)

可以看到,白噪声的非0阶ACF与PACF均在置信区间内。

计算统计量

如果觉得通过观察自相关图的方法过于主观,可以通过计算统计量的方式进行量化的分析检验。

白噪声序列及检验方法,如何检验一个序列是不是白噪声(3)

式中n为序列观察期数,m为指定延迟期数,Q统计量近似服从自由度为m的卡方分布。

import numpy as np from scipy import stats from statsmodels.stats.diagnostic import acorr_ljungbox def box_pierce_check(data, conf_coef=0.05, lags=20): res = acorr_ljungbox(data, lags=lags, boxpierce=True, return_df=True) Qbp = res['bp_stat'] p_val = res['bp_pvalue'] is_white_noise = res[(Qbp > stats.chi2.isf(conf_coef, lags)) | (p_val < conf_coef)].empty print('Box-Pierce check result: {}'.format('white noise' if is_white_noise else 'NOT white noise')) return is_white_noise np.random.seed(123) data = np.random.standard_normal(size=100) box_pierce_check(data,0.05,24)

Q统计量针对大样本的检验效果很好,但是在小样本场合不太精确,所以Box和Ljung提出了LB统计量。

白噪声序列及检验方法,如何检验一个序列是不是白噪声(4)

式中n为序列观察期数,m为指定延迟期数,LB统计量近似服从自由度为m的卡方分布。

import numpy as np fromscipyimportstats from statsmodels.stats.diagnostic import acorr_ljungbox def ljung_box_check(data, conf_coef=0.05, lags=20): res = acorr_ljungbox(data, lags=lags, boxpierce=False, return_df=True) Qlb = res['lb_stat'] p_val = res['lb_pvalue'] is_white_noise = res[(Qlb > stats.chi2.isf(conf_coef, lags)) | (p_val < conf_coef)].empty print('Ljung-Box check result: {}'.format('white noise' if is_white_noise else 'NOT white noise')) return is_white_noise np.random.seed(123) data = np.random.standard_normal(size=100) ljung_box_check(data, 0.05, 24)三、 总结

本文介绍了三种白噪声检验方法,其中最为常用的是Ljung-Box检验。

【参考资料】

https://www.zybuluo.com/evilking/note/795616

https://zhuanlan.zhihu.com/p/430365631

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.