在Augmented Dickey-Fuller测试中,BIC究竟如何在Python中运行?

时间:2015-11-01 16:16:42

标签: python statsmodels

这个问题是关于statsmodels.tsa.stattools python库中的Augmented Dickey-Fuller测试实现 - adfuller()。

原则上,AIC和BIC应该为一组可用模型计算信息标准并获得最佳信息(信息损失最低的那个)。

但他们如何在Augmented Dickey-Fuller的背景下运作?

我没有得到的东西:我设置了maxlag = 30,BIC选择了滞后= 5,但有一些信息标准。我设置了maxlag = 40 - BIC仍然选择滞后= 5但信息标准已经改变了!为什么世界上相同滞后数的信息标准会随着maxlag的变化而变化?

当maxlag从20变为30时,有时这会导致模型选择的变化,当BIC从滞后= 5切换到滞后= 4时,这是没有意义的,因为先前可用滞后= 4。

1 个答案:

答案 0 :(得分:1)

当我们在adfulller中请求自动延迟选择时,该函数需要将所有模型与给定的maxlag滞后进行比较。对于这种比较,我们需要对所有模型使用相同的观察结果。由于滞后观测值进入回归矩阵,我们将观测结果作为对应于最大滞后的初始条件。

因此autolag对所有模型使用nobs - maxlags观察。为了计算adfuller本身的测试统计量,我们不再需要模型比较,我们可以使用所有可用于所选滞后的观测值,即nobs - best_lag

更一般地,如何处理初始条件和不同数量的初始条件并不总是明确的,自相关和部分自相关在很大程度上基于使用所有可用的观察,AR的完整MLE和ARMA模型使用静态模型来包括初始条件,而条件MLE或最小二乘方则根据需要丢弃它们。