自动寻找最好的自回归方法
Automatically find the best autoregressive method
这是一个有点抽象的问题。在 Mathematica 中有一个函数 TimeSeriesModelFit
可以自动找到拟合数据的最佳自回归模型。有没有办法在 Python 中做同样的事情?可能有这个包吗?
以Mathematica本身的数据为例:
data = {5., 9., 8., 10., 6.1, 10.4, 9.1, 11.6, 7.5, 12.1, 10.4, 13.5,
9., 14.1, 11.9, 15.7, 10.8, 16.4, 13.7, 18.3, 12.9, 19., 15.8, 21.2,
15.3, 22.1, 18.3, 24.6};
statsmodels.tsa.ar_model.ar_select_order
可以做到:
>>> from statsmodels.tsa import ar_model
>>> search = ar_model.ar_select_order(endog=data, maxlag=10, ic="aic", glob=True)
>>> search.ar_lags
array([ 1, 4, 9, 10])
查找到滞后10;但由于 glob
已启用,它会考虑 每个 2**10 = 1024 个可能的滞后组合。请注意,这意味着它不会只尝试 10 个模型(即 AR(1) 到 AR(10)),但它会打开和关闭滞后(这也可以从上面输出的不连续滞后建议中看出)。
statsmodels
让你在改装时通过这些不一定连续的滞后项来形成新的模型,例如
>>> mod = ar_model.AutoReg(endog=data, lags=[1, 4, 9, 10])
>>> res = mod.fit()
>>> res.aic
-6.380532624300298
对于不一定是纯自回归的模型,有 pmdarima
package that implements automatic selection of S-ARIMA-X models. It is based on auto.arima
of R. I'm not familiar with ARCH-like models but it seems the arch
包的实现可以包裹在一个循环中以尝试不同的模型和 select 一些标准。
这是一个有点抽象的问题。在 Mathematica 中有一个函数 TimeSeriesModelFit
可以自动找到拟合数据的最佳自回归模型。有没有办法在 Python 中做同样的事情?可能有这个包吗?
以Mathematica本身的数据为例:
data = {5., 9., 8., 10., 6.1, 10.4, 9.1, 11.6, 7.5, 12.1, 10.4, 13.5,
9., 14.1, 11.9, 15.7, 10.8, 16.4, 13.7, 18.3, 12.9, 19., 15.8, 21.2,
15.3, 22.1, 18.3, 24.6};
statsmodels.tsa.ar_model.ar_select_order
可以做到:
>>> from statsmodels.tsa import ar_model
>>> search = ar_model.ar_select_order(endog=data, maxlag=10, ic="aic", glob=True)
>>> search.ar_lags
array([ 1, 4, 9, 10])
查找到滞后10;但由于 glob
已启用,它会考虑 每个 2**10 = 1024 个可能的滞后组合。请注意,这意味着它不会只尝试 10 个模型(即 AR(1) 到 AR(10)),但它会打开和关闭滞后(这也可以从上面输出的不连续滞后建议中看出)。
statsmodels
让你在改装时通过这些不一定连续的滞后项来形成新的模型,例如
>>> mod = ar_model.AutoReg(endog=data, lags=[1, 4, 9, 10])
>>> res = mod.fit()
>>> res.aic
-6.380532624300298
对于不一定是纯自回归的模型,有 pmdarima
package that implements automatic selection of S-ARIMA-X models. It is based on auto.arima
of R. I'm not familiar with ARCH-like models but it seems the arch
包的实现可以包裹在一个循环中以尝试不同的模型和 select 一些标准。