Python Statsmodels的时间序列Ljung_Box检验

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

 

 

用来检验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()

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

 

posted @ 2019-08-23 15:29  travel_cat  阅读(16096)  评论(0编辑  收藏  举报