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},defaultNone 如果 lags 是一个整数,则将其视为包含的最大滞后,测试结果将报告所有较小滞后长度的结果。如果 lags 是一个列表或数组,则包含列表中所有滞后,但仅报告列表中滞后的测试结果。如果 lags 为 None,则默认最大滞后为 min(10, nobs // 5)。如果设置了 period,则默认滞后数量会发生变化。
- boxpiercebool,
defaultFalse 如果为真,则在Ljung-Box检验结果的基础上,还会返回Box-Pierce检验的结果。
- model_df
int,default0 模型消耗的自由度数量。在ARMA模型中,这个值通常是p+q,其中p是AR阶数,q是MA阶数。这个值从测试中使用的自由度中减去,以便统计量的调整自由度为lags - model_df。如果lags - model_df <= 0,则返回NaN。
- period
int,defaultNone 季节性时间序列的周期。用于计算季节性数据的最大滞后值,使用 min(2*period, nobs // 5) 如果设置。如果为 None,则使用默认规则来设置滞后数。设置时,必须 >= 2。
- auto_lagbool,
defaultFalse 指示是否根据最大相关值的阈值自动确定最佳滞后长度的标志。
- 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_statLjung-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