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置信度以下,可以认为出现显著的自回归关系,且序列并非白噪声