我正在研究一组输入变量与响应变量价格之间的相关性。这些都是时间序列。
1) 我是否有必要平滑曲线,其中输入变量是周期性的(自回归)?如果是这样,如何?
2) 建立相关性后,我想准确量化输入变量如何影响响应变量。 例如:“一旦 X 增加 >10%,则 6 个月后 y 增加 2%。”
我应该查看哪些 python 库来实现这一点 - 特别是找出两个相关事件之间的滞后时间?
例子:
我已经看过:statsmodels.tsa.ARMA但它似乎只处理随着时间的推移预测一个变量。在 scipy协方差矩阵可以告诉我相关性,但无助于计算滞后时间。
最佳答案
虽然问题的一部分更多地基于统计数据,但关于如何在 Python 中完成它的部分在这里似乎很熟悉。我看到你已经决定在 R 中通过查看你在 Cross Validated 上的问题来做到这一点,但如果你决定回到 Python,或者为了其他人发现这个问题的好处:
我认为您在正确的区域查看 statsmodels.tsa,但它不仅仅是 ARMA 包:
http://statsmodels.sourceforge.net/devel/tsa.html
特别是,请查看 statsmodels.tsa.vector_ar 以对多变量时间序列进行建模。它的文档可在此处获得:
http://statsmodels.sourceforge.net/devel/vector_ar.html
上面的页面指定它用于处理固定时间序列 - 我认为这意味着删除趋势和任何季节性或周期性。以下链接最终准备好用于预测的模型,但它讨论了用于构建模型的 Box-Jenkins 方法,包括使其静止:
http://www.colorado.edu/geography/class_homepages/geog_4023_s11/Lecture16_TS3.pdf
您会注意到该链接讨论了寻找自相关 (ACF) 和偏自相关 (PACF),然后使用 Augmented Dickey-Fuller 检验来检验序列现在是否平稳。所有这三个工具都可以在 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 中,并且本身具有很多时间序列和数据分析功能,因此可能会引起人们的兴趣。时间序列文档位于此处:
关于python - 时间序列 - 相关性和滞后时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320773/