2011-01-24 65 views
1

我想知道测试时间序列模型的好方法是什么。假设我在时间域t1,t2,... tN中有一个时间序列。我有输入,比如zt1,zt2,... ztN和输出x1,x2 ... xN。现在,如果这是一个经典的数据挖掘问题,我可以使用已知的方法,如交叉验证,一次性退出,70-30或其他方法。如何测试时间序列模型?

但是,我应该如何处理测试我的模型与时间序列的问题?我应该在第一个t1,t2,... t(N-k)输入上建立模型,并在最后k个输入上测试它吗?但是,如果我们想要最大化预测,而不是k(其中p为< k)。我正在寻找一个强大的解决方案,我可以将其应用于我的具体案例。

+4

您希望为您的特定案例提供强大的解决方案,但您对案例的具体情况很少。一个好的_start_将告诉我们你正在使用什么类型的估计器。您可以在[CrossValidated](http://stats.stackexchange.com/)上获得更好的问题答案。 – 2011-01-24 15:29:33

回答

3

随着时间序列拟合,你需要小心使用外的样本数据,直到后您开发的模型。建模的主要问题是它很容易过度配合。

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

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

2

这听起来像你有

  1. 之间进行选择使用的前几年数据的创建模型,然后看看它如何预测残生。

  2. 对输入条件的某个子集使用所有年份的数据,然后使用剩余的输入条件预测其预测效果如何。