BIC in Augmented Dickey–Fuller test 在 Python 中究竟如何工作?
How exactly BIC in Augmented Dickey–Fuller test work in Python?
这个问题是关于 statsmodels.tsa.stattools python 库中的 Augmented Dickey–Fuller 测试实现 - adfuller()。
原则上,AIC 和 BIC 应该计算一组可用模型的信息标准,并选择最好的(信息损失最低的那个)。
但他们如何在 Augmented Dickey–Fuller 的背景下运作?
我没有得到的东西:我设置了 maxlag=30,BIC 选择了带有一些信息标准的 lags=5。我设置了 maxlag=40 - BIC 仍然选择 lags=5 但信息标准已经改变!为什么世界上相同数量的滞后的信息标准会随着 maxlag 的改变而不同?
有时这会导致模型选择的改变,当 maxlag 从 20 更改为 30 时 BIC 从 lags=5 切换到 lags=4,这没有意义,因为 lag=4 以前可用。
当我们在 adfulller 中请求自动滞后选择时,该函数需要比较所有模型直至给定 maxlag
滞后。对于这种比较,我们需要对所有模型使用相同的观察结果。因为滞后观测值进入回归矩阵,所以我们将观测值作为与包含的最大滞后相对应的初始条件。
因此 autolag
对所有模型使用 nobs - maxlags
观测值。为了计算 adfuller 本身的测试统计量,我们不再需要模型比较,我们可以使用所有可用于所选滞后的观察值,即 nobs - best_lag
.
更一般地说,如何处理初始条件和不同数量的初始条件并不总是一目了然,自相关和部分自相关主要基于使用所有可用的观测值,AR 和 ARMA 模型的完整 MLE 使用平稳模型来包括初始条件,而条件 MLE 或最小二乘法会根据需要删除它们。
这个问题是关于 statsmodels.tsa.stattools python 库中的 Augmented Dickey–Fuller 测试实现 - adfuller()。
原则上,AIC 和 BIC 应该计算一组可用模型的信息标准,并选择最好的(信息损失最低的那个)。
但他们如何在 Augmented Dickey–Fuller 的背景下运作?
我没有得到的东西:我设置了 maxlag=30,BIC 选择了带有一些信息标准的 lags=5。我设置了 maxlag=40 - BIC 仍然选择 lags=5 但信息标准已经改变!为什么世界上相同数量的滞后的信息标准会随着 maxlag 的改变而不同?
有时这会导致模型选择的改变,当 maxlag 从 20 更改为 30 时 BIC 从 lags=5 切换到 lags=4,这没有意义,因为 lag=4 以前可用。
当我们在 adfulller 中请求自动滞后选择时,该函数需要比较所有模型直至给定 maxlag
滞后。对于这种比较,我们需要对所有模型使用相同的观察结果。因为滞后观测值进入回归矩阵,所以我们将观测值作为与包含的最大滞后相对应的初始条件。
因此 autolag
对所有模型使用 nobs - maxlags
观测值。为了计算 adfuller 本身的测试统计量,我们不再需要模型比较,我们可以使用所有可用于所选滞后的观察值,即 nobs - best_lag
.
更一般地说,如何处理初始条件和不同数量的初始条件并不总是一目了然,自相关和部分自相关主要基于使用所有可用的观测值,AR 和 ARMA 模型的完整 MLE 使用平稳模型来包括初始条件,而条件 MLE 或最小二乘法会根据需要删除它们。