Python Statsmodels的时间序列Ljung_Box检验

Ljung-Box检验即LB检验,是时间序列分析中检验序列自相关性的方法。LB检验的Q统计量为:


image.png

用来检验m阶滞后范围内序列的自相关性是否显著,或序列是否为白噪声,Q统计量服从自由度为m的卡方分布。

LB检验可同时用于时间序列以及时序模型的残差是否存在自相关性(是否为白噪声)。Python的statsmodels包提供了该检验的函数:

from statsmodels.stats.diagnostic import acorr_ljungbox as lb_test

函数输入 lb_test(x,lags=None,boxpierce=False):
x:检验的时间序列

lags(int,list or None):检验的延迟数,

若为None则输出min((nobs // 2 - 2), 40),其中nobs为观测样本数量,样本较大的情况下输出40

boxpierce:若为True,则同时输出boxpierce统计量的检验结果

(Box-Pierce检验为白噪声检验的另一个版本,是LB检验的前身)

函数输出:

LB统计量值(array)

LB-p值(array)

若boxpierce=True,则继续输出BP统计量的值和相应p值

作为样例,选取了一段市场指数的回报率进行检验,输出p值序列:

plt.plot(lb_test(df_list[index_list[0]]['Return'])[1])
plt.show()
image.png

在延迟超过5时,p值下降到0.05置信度以下,可以认为出现显著的自回归关系,且序列并非白噪声

你可能感兴趣的:(Python Statsmodels的时间序列Ljung_Box检验)