如何测试时间序列模型?

时间:2011-01-24 11:45:43

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

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

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

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

2 个答案:

答案 0 :(得分:3)

听起来你可以选择

  1. 使用前几年的数据来创建模型,然后看看它预测剩余年数的程度。

  2. 使用输入条件的某些子集的所有年份数据,然后查看它使用剩余输入条件预测的程度。

答案 1 :(得分:3)

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

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

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