Python中的时间序列分析

机器算法验证 时间序列 Python
2022-03-09 10:32:47

我是时间序列分析的初学者。我有下面的模型;y 是产品销售额,x 是推文率:

yt=ayt1+byt2+...+cytm+dxt+ext1+...+fxtn

  1. 这个模型叫什么?我想它被称为 AR 模型,但我不确定,因为因变量 y 也在 RHS 上。
  2. 如何修复滞后期可以有不同的滞后吗?mnxy
  3. 如何使用 Python 构建此模型并预测的销售额?任何不使用 rpy 的解决方案。t+1t+n
4个回答
  1. 您拥有的模型称为自回归分布滞后 (ARDL) 模型。具体来说, 可以称为 ARDL(m,n) 模型,我们可以将模型写成稍微紧凑的形式: 其中在这种情况下

    yt=ayt1+byt2+...+cytm+dxt+ext1+...+fxtn
    yt=δ+i=1mαiyti+j=0nβjxtj+ut
    utIID(o,σ2)  tδ=0

  2. m 和 n 的值不必相同。也就是说,自回归项的滞后长度不必等于分布滞后项的滞后长度。另请注意,可以包含第二个(或更多)分布式滞后项(例如,)。选择滞后长度有不同的方法,对于这个问题的处理,我建议你参考 Damodar Gujarati 的第 17 章和 Dawn Porter 的 Basic Econometrics(第 5 版)。ztk

  3. 要在 python 中构建这样的模型,可能值得查看statsmodels.tsa以及其他答案中提到的其他包。

这个答案可能应该是一个评论,因为我没有解决前两个问题,但是太长了......

这些天你可以用 Python 做很多统计工作,而且像 statsmodels 和pandas这样的项目越来越好。对于时间序列分析,我认为目前最好的选择是使用PyIMSL 包,它包含一系列用 C 语言编写的函数以提高速度(并且免费用于非商业用途)。文档可以在这里找到。(完全披露,我曾经为 Rogue Wave Software 工作)。

现在,尽管我的大部分分析工作都使用 Python,但对于时间序列建模,我已经转向使用Rob Hyndman 编写的 R中出色的预测包它很难被击败,尤其是对于探索性工作。

Sourceforge.net 上还有潮汐分析。也检查一下。有时,免费应用程序中只有一件事会错过您真正想要的几件事。

http://sourceforge.net/projects/tappy/?source=directory

好吧,首先我建议你在谷歌上搜索一个 Python 包来操作时间序列,比如这个http://statsmodels.sourceforge.net/另一方面,如果您必须使用 python(例如,而不是 R),您可以尝试一种优化方法,使用预测误差(MSE 或 RMSE)作为目标函数来找到最佳模型参数。