时间顺序数据的交叉验证问题

机器算法验证 交叉验证 预测模型
2022-03-18 18:39:17

让我们假设一个简单的场景:您想要预测各种房产的房价。数据集本质上是横截面的,因为您只观察每个属性一次。但是,您也有观察的时间戳(月/年)。

从某种意义上说,这意味着数据本质上是按时间排序的。一般来说,我知道对于时间序列数据,使用例如k 折交叉验证可能会出现问题。但是,我没有实时序列数据(一所房子有多个观测值),而是跨房子的时间排序数据。同样清楚的是,对于时间序列数据,还有其他方法,例如滚动估计。

特别是,我想从统计/计量经济学的角度从理论上理解为什么这可能是有问题的,而不仅仅是直觉。是否有人对此主题有理论指导或了解相关文献以深入研究该主题?

编辑:根据@Björn 的回答,在这里提供有关目标的更多信息似乎很有用。目标实际上是根据经过训练的模型预测未来价格。

4个回答

您的验证拆分应该与您的目标任务相匹配。如果获取一个数据库,以随机方式找出销售价格,然后填写其余的数字是任务(无意预测未来的销售),那么简单的交叉验证就可以了。如果目标是预测未来价格,那么过去与未来的拆分会更好(无论是单个拆分还是多个拆分)。为什么?以下是一些可能出错的示例(通常很难进行干预以防止这些错误发生):

  • 同一房屋的多次销售可能在数据中。如果我有过去和未来的销售,那么猜测当前销售价格介于两者之间是一个不错的选择。足够复杂的模型将设法记住数据以给出这种答案,并且在您专门寻找它之前您甚至不会注意到(我曾经使用 xgboost 看到过这种类型的东西)。另一方面,在实践中,您不会拥有这些信息,并且真实的预测会不太可靠。
  • 多个类似的新单位可能会同时上市。这可能是一个很好的猜测,同一个地方的相同物业的价格大致相同(加上人们的一些谈判技巧)。
  • 如果通货膨胀、经济状况等随着时间的推移发生变化,那么这些可能会对房地产价格产生各种影响。如果您在未来销售的同一时间拥有销售数据,那么这可能会告诉您很多您在实践中不知道的这些影响(即使您将当前的经济预测和通货膨胀数据放入您的模型中,这大概会有点帮助)。
  • 用未来数据训练的模型不需要外推到未来,它只需要插值。因此,像这样的验证设置并不能测试模型推断未来的能力。当然,如果我们计划定期重新训练一个模型(比如说每月一次),它就不需要推断很远的未来,所以这可能不是一个问题。尽管如此,对未来进行一点推断仍然比用未来的知识进行插值更难。
  • 到目前为止,所有这一切都假设个人销售不会相互影响,但情况也可能如此。
    • 例如,如果人们知道该地区近期销售的销售价格,他们可能会以接近该价格的价格为目标(根据房产进行调整),但如果是这样,那么来自未来的数据会告诉您有关过去类似销售的一些信息(但在预测未来时你不会有这些知识)。
    • 或者,一个地区的销售价格可能会由于受到一些当地事件(新高速公路正在建设、新学校开学等)的影响而以相同的方式移动,并且模型将通过该地区的其他未来销售而不是从在实践中可以预测这一点的事情(例如,对影响房价的当地事件的了解)。

我不能谈论理论方面,但为什么不预处理你的数据以避免问题呢?如果您可以获得一些房价通胀数据,您可以将较旧(较早的时间戳)房产的价格膨胀到您可以合理地期望它们今天获取的值,然后使用苹果与苹果之间的数据比较来训练您的预测算法。

我不认为数据上的时间戳对于房价预测来说是必要的问题。

该过程是将房屋分解为其属性(大小,位置等),添加时间虚拟变量,然后对这些变量进行回归,这在计量经济学文献中称为“特征模型”,用于详细讨论检查例如,Berdnt,1996 年的“计量经济学实践:经典与当代”第 4.3 章。

当您使用此方法时,您会估计伴随虚拟时间变量的系数,因此该模型不会使用过去的特定房屋价值来计算未来价值。

一个关键问题是协方差笼包括时变效应,如果处理不当,可能会对数据施加和无法识别的模式。取决于随着时间推移的总体经济形势,房价将呈现总体趋势。更复杂的模式(例如不断发展的时尚和功能需求)将增加额外的复杂性。

它与莫尔效应有关。这是我最近创建的一个图,它显示了数据中的隐藏模式如何影响 CV,使用一个极端示例进行演示。莫尔条纹可能非常复杂,如果您不刻意寻找它们,则很难检测到它们。如果抽样的周期性是潜在趋势周期性的乘积因子,那么您可能会对建模集中的基本影响进行抽样不足,而这些影响主要是为测试集保留的(反之亦然)。

模拟结构化数据集中实验因子分布的可视化。 颜色由红色通道创建时间间隔,绿色通道表示剂量暴露,蓝色通道表示实验组成员。 选择保留组表明强度降低了 1/3。 ac) 研究周为 x 轴,剂量组(按实验组细分)为 Y 轴。 a) 是基本的实验设计矩阵。 b) 黑色像素表示通过顺序块选择为 K-fold 选择的样本 c) 黑色像素表示使用 Monte-Carlo 选择的样本 d) 每种选择方法的训练集和测试集的平均属性。 模拟结构化数据集中实验因子分布的可视化。颜色由红色通道创建时间间隔,绿色通道表示剂量暴露,蓝色通道表示实验组成员。选择保留组表明强度降低了 1/3。ac) 研究周为 x 轴,剂量组(按实验组细分)为 Y 轴。a) 是基本的实验设计矩阵。b) 黑色像素表示通过顺序块选择为 K-fold 选择的样本 c) 黑色像素表示使用 Monte-Carlo 选择的样本 d) 每种选择方法的训练集和测试集的平均属性。