statsmodels.stats.diagnostic.acorr_ljungbox

statsmodels.stats.diagnostic.acorr_ljungbox(x, lags=None, boxpierce=False, model_df=0, period=None, return_df=True, auto_lag=False)[source]

残差自相关性的Ljung-Box检验。

Parameters:
xarray_like

数据系列。数据在进行检验统计量计算之前会被去均值化。

lags{int, array_like}, default None

如果 lags 是一个整数,则将其视为包含的最大滞后,测试结果将报告所有较小滞后长度的结果。如果 lags 是一个列表或数组,则包含列表中所有滞后,但仅报告列表中滞后的测试结果。如果 lags 为 None,则默认最大滞后为 min(10, nobs // 5)。如果设置了 period,则默认滞后数量会发生变化。

boxpiercebool, default False

如果为真,则在Ljung-Box检验结果的基础上,还会返回Box-Pierce检验的结果。

model_dfint, default 0

模型消耗的自由度数量。在ARMA模型中,这个值通常是p+q,其中p是AR阶数,q是MA阶数。这个值从测试中使用的自由度中减去,以便统计量的调整自由度为lags - model_df。如果lags - model_df <= 0,则返回NaN。

periodint, default None

季节性时间序列的周期。用于计算季节性数据的最大滞后值,使用 min(2*period, nobs // 5) 如果设置。如果为 None,则使用默认规则来设置滞后数。设置时,必须 >= 2。

auto_lagbool, default False

指示是否根据最大相关值的阈值自动确定最佳滞后长度的标志。

Returns:
DataFrame

带有列的框架:

  • lb_stat - Ljung-Box 检验统计量。

  • lb_pvalue - 基于卡方分布的p值。p值计算为1 - chi2.cdf(lb_stat, dof),其中dof是lag - model_df。如果lag - model_df <= 0,则返回NaN作为p值。

  • bp_stat - Box-Pierce 检验统计量。

  • bp_pvalue - 基于Box-Pierce检验的卡方分布的p值。p值计算为1 - chi2.cdf(bp_stat, dof),其中dof是lag - model_df。如果lag - model_df <= 0,则p值返回NaN。

另请参阅

statsmodels.regression.linear_model.OLS.fit

回归模型拟合。

statsmodels.regression.linear_model.RegressionResults

线性回归模型的结果。

statsmodels.stats.stattools.q_stat

Ljung-Box检验统计量,基于估计的自相关系数计算得出。

注释

Ljung-Box 和 Box-Pierce 统计量在自相关函数的缩放上有所不同。Ljung-Box 检验具有更好的有限样本性质。

参考文献

示例

>>> import statsmodels.api as sm
>>> data = sm.datasets.sunspots.load_pandas().data
>>> res = sm.tsa.ARMA(data["SUNACTIVITY"], (1,1)).fit(disp=-1)
>>> sm.stats.acorr_ljungbox(res.resid, lags=[10], return_df=True)
       lb_stat     lb_pvalue
10  214.106992  1.827374e-40

Last update: Oct 16, 2024