如何检查分布稳定性?

机器算法验证 假设检验 分布 统计学意义 预测模型 kolmogorov-smirnov 测试
2022-04-06 10:43:09

我需要验证我用来构建模型的训练集是否平均分布到测试集。

该模型用于预测目的,我认为有必要将 2 个样本平均分布;从这个意义上说,需要测试您构建模型的样本(训练集)是否作为您对模型进行回测的样本(测试集)分布。

通常,在信用评分/评级模型中,人口稳定性指数用于此目的,但它似乎不是一个稳健的统计衡量标准。

在您看来,我可以使用KS 两样本测试吗?

或者,您能否建议一些其他的统计测量或测试,以检查分布稳定性?

3个回答

首先,关于测量合身性。Kolmogorov-Smirnov检验适用于一维分布尽管它已扩展到多变量数据,但它并不是为时间序列设计的。我不确定你如何使用你的时间序列数据。如果您只对事件发生的概率感兴趣,则可以使用该测试。但是,请注意,您将丢失所有信息,例如“事件 B 总是在事件 A 之后发生”,而这可能就是金币所在的位置。

倒退一步,您说您将旧数据用作火车,将新数据用作测试。您可以以不同的方式拆分数据并首先避免问题。

如果您对预测未来行为感兴趣,您可以将每个时间序列拆分为过去(训练)和测试(未来)。请注意,您可以为任何系列选择不同的点。通过这种方式,您可以在现在被认为是您的未来的基础上进行训练,并且仍然可以获得有效的估计。

有时需要在同一时间点拆分所有系列。在这种情况下,您可以考虑创建一些数据集(例如,一个在 1 月结束,一个在 2 月结束,等等)。

这样做的好处是,随着时间的变化,您将能够估计您的模型有多好。请注意,虽然基础分布可能会发生变化,但您的模型可能正在寻找更窄的方面并且可能更健壮。

您可能正在处理概念漂移(或与时间相关的域适应)的问题。阅读有关这些主题的一些调查可能会给您一些有用的想法。

在您的随机抽样方法的质量接近完美随机性的限度内,并且在样本数量接近无穷大的限度内,训练和测试样本的分布将变得相同。

但是在考虑您对dsaxton的评论之后,您似乎处于处理时间序列问题的特殊情况。

通常在忽略样本到达时间的常见学习任务中,暗示所有样本同时发生。因此,假设训练样本的 PDF 是最接近测试集 PDF 的估计(因为它们都同时出现)。在这种情况下,随机抽样是您的朋友。

但是,由于您没有假设上面的简单假设,而是您承认测试实例必然是那些出现在训练样本之后的实例(这是一个更现实的假设),那么它是您的时间序列问题的一部分,您的模型必须处理到达样本的 PDF 随时间变化的事实。

因此,在处理时间序列问题时,您不能消除随着时间在训练和测试样本集中流逝的 PDF 的偏移/变化。相反,将其视为一项挑战,以确定您的模型对 PDF 随时间变化/变化的事实的适应程度。

如果您通过构建保持相同 PDF 的训练和测试集(尽管存在时间偏移)从评估中消除此类挑战,那么您实际上是在执行评估,该评估并未显示您的预测模型在时间序列问题中的有用性。

或者,您可以认为时间序列问题是域适应问题的一种特殊情况,其中域变化是由时间变化引起的。

所以总而言之,答案是:您不能确保训练和测试样本之间的 PDF 相同/相似,因为您的模型的主要目标是适应 PDF 随时间变化的事实。

问:在您看来,我可以使用 KS 两样本测试吗?

答:没有。

问:或者,您能否建议一些其他统计测量或测试,以检查分布稳定性?

答:是的。什么也不做。如果您希望更多样本以更好地将 PDF 偏移识别为函数时间,那么这是另一个问题(您可以在其中找到与其他模型相比,您建模需要更少/更多样本的训练样本量)。

如果您从数据中随机选择训练集和测试集,则不必担心均匀分布。

更重要的是,您在测试集上测试您从训练集生成的模型,并通过这样做验证您可以使用您的模型来预测除训练集之外的其他值。如果这行得通,您就不必担心这些集合是均匀分布的。