【问题标题】:Auto-regressive model prediction decays to flatline自回归模型预测衰减到平坦线
【发布时间】:2015-08-08 17:02:40
【问题描述】:

抱歉,如果这是一个简单的问题/错误,但是当我尝试使用 statsmodels.tsa AR 预测时间序列时,预测会很快超过我拥有的数据。这不取决于模型的顺序或用于拟合 AR 模型的数据长度。

我做错了什么?

from statsmodels.tsa.ar_model import AR
section1 = data[0:800]-np.mean(data[0:800])
plt.plot(section1)

x = AR(section1)
y = x.fit(5)
z = y.predict(10,1500)
plt.plot(z)

【问题讨论】:

  • 您知道回归模型如何尝试拟合您的数据吗?您在 0-800 范围内的预测数据看起来像是直接取自您的训练集。
  • 是的,我认为前 800 个是训练集 - 在 Ar fit() 的文档字符串中“返回样本内和样本外预测”。我希望样本外在 800 之前继续,而不是收敛到平均值,

标签: python time-series statsmodels autoregressive-models


【解决方案1】:

没有错。这就是预测收敛于均值的平稳 ARMA 过程的行为。

如果您有固定的季节性,那么您可以在季节性滞后处区分时间序列,即使用 SARIMA,预测将收敛到固定的季节性结构。

如果您有解释变量,则平稳 ARMAX 的预测将收敛到 X 变量给出的平均值。

【讨论】:

  • 好的,谢谢。那么,也许我在使用 AR 模型时有错误的想法?我想将 2 个模型拟合到 2 个不同的时间序列,并为每个模型获取一组 AR 系数。然后,我想采用第三个时间序列并计算其中的数据点由两个 AR 系数集中的每一个生成的概率。然后,我将能够根据概率将第三个时间序列分类为更“像”第一个或第二个模型。但是,作为“眼球”测试,我希望能够从每个 AR 模型中生成“假”数据,以查看我选择的时间序列类型。
  • 对不起,我没有完全理解你的回答。 - 因此包含我想要的内容的迂回回复。
  • 如果你想模拟来自 ARMA 过程的数据,那么你需要噪声或冲击来“反弹”时间序列。 statsmodels.tsa 中有一个 generate_arma_sample 函数。
  • 好的,我将看看使用与 AR 相对的 ARMA 来拟合然后预测 - 因为我找不到 generate_ar_sample 函数。我想使用 AR,因为这个概念看起来更简单,也更容易理解!除了 statsmodels 中模拟功能的便利性之外,ARMA 是否为此类数据建模提供了显着优势?
  • 我没记错名字。 statsmodels.sourceforge.net/devel/examples/notebooks/generated/… arma_generate_sample 可用于模拟纯 AR 过程,如果 ma 设置为 [1],即多项式中没有滞后系数。
猜你喜欢
  • 2021-06-24
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 2021-03-12
  • 2019-08-08
  • 2017-11-30
相关资源
最近更新 更多