虽然问题的一部分更多是基于统计数据,但关于如何在 Python 中完成它的部分似乎在这里很适合。我发现您通过查看交叉验证上的问题决定在 R 中执行此操作,但如果您决定返回到 Python,或者为了其他发现此问题的人的利益:
我认为您在正确的区域查看 statsmodels.tsa,但它不仅仅是 ARMA 包:
http://statsmodels.sourceforge.net/devel/tsa.html http://statsmodels.sourceforge.net/devel/tsa.html
特别是,请查看 statsmodels.tsa.vector_ar 用于建模多元时间序列。它的文档可以在这里找到:
http://statsmodels.sourceforge.net/devel/vector_ar.html http://statsmodels.sourceforge.net/devel/vector_ar.html
上面的页面指定它用于处理固定时间序列 - 我认为这意味着消除趋势和任何季节性或周期性。以下链接最终准备好用于预测的模型,但它讨论了用于构建模型的 Box-Jenkins 方法,包括使其固定:
http://www.colorado.edu/geography/class_homepages/geog_4023_s11/Lecture16_TS3.pdf http://www.colorado.edu/geography/class_homepages/geog_4023_s11/Lecture16_TS3.pdf
您会注意到该链接讨论了寻找自相关 (ACF) 和部分自相关 (PACF),然后使用增强迪基-富勒检验来测试该序列现在是否平稳。所有这三个工具都可以在 statsmodels.tsa.stattools 中找到。同样,statsmodels.tsa.arma_process 也有 ACF 和 PACF。
上面的链接还讨论了使用 AIC 等指标来确定最佳模型; statsmodels.tsa.var_model 和 statsmodels.tsa.ar_model 都包含 AIC(以及其他度量)。相同的测量似乎用于使用 select_order 计算 var_model 中的滞后阶数。
此外,pandas 库至少部分集成到 statsmodels 中,并且本身具有大量时间序列和数据分析功能,因此可能会引起兴趣。时间序列文档位于此处:
http://pandas.pydata.org/pandas-docs/stable/timeseries.html http://pandas.pydata.org/pandas-docs/stable/timeseries.html