【问题标题】:How to test time series model?如何测试时间序列模型?
【发布时间】:2011-06-14 11:21:01
【问题描述】:

我想知道测试时间序列模型的好方法是什么。假设我在时域 t1,t2,...tN 中有一个时间序列。我有输入,比如 zt1, zt2,...ztN 和输出 x1,x2...xN。

现在,如果这是一个经典的数据挖掘问题,我可以采用已知的方法,例如交叉验证、留一法、70-30 或其他方法。

但是我应该如何解决使用时间序列测试我的模型的问题?我应该在第一个 t1,t2,...t(N-k) 输入上构建模型并在最后 k 个输入上进行测试吗?但是,如果我们想要最大化提前 p 步而不是 k(其中 p

【问题讨论】:

  • 您希望为您的具体案例提供强大的解决方案,但您对您的案例提供的细节很少。一个好的开始是告诉我们您正在使用哪种类型的估算器。您可能会在CrossValidated 上获得更好的问题答案。

标签: r statistics data-modeling time-series prediction


【解决方案1】:

使用时间序列拟合,您需要小心在开发模型之前使用您的样本外数据。建模的主要问题是它很容易过拟合。

通常我们所做的是将 70% 用于样本内建模,30% 用于样本外测试/验证。当我们在生产中使用该模型时,我们日常收集的数据将成为真实的样本外数据:您从未见过或使用过的数据。

现在,如果您有足够的数据点,我建议您尝试滚动窗口拟合方法。对于样本中的每个时间步,您回顾 N 个时间步以拟合您的模型,并查看模型中的参数如何随时间变化。例如,假设您的模型是 Y = B0 + B1*X1 + B2*X2 的线性回归。您将对样本进行回归 N - window_size 时间。通过这种方式,您可以了解您的 Beta 对时间等因素的敏感程度。

【讨论】:

    【解决方案2】:

    听起来你可以选择

    1. 使用最初几年的数据创建模型,然后查看它对剩余年份的预测效果。

    2. 将所有年份的数据用于输入条件的某个子集,然后查看使用剩余输入条件的预测效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 2021-08-29
      • 2020-09-14
      • 2019-07-11
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      相关资源
      最近更新 更多