我有一个明显的时间序列/顺序(监督:多类分类问题)数据集,每个数据点都带有时间戳。但是,一些领域直觉告诉我数据是静态的,不需要将它们视为时间序列数据。我还验证了非时间序列方法非常适合(即使有严格的交叉验证和其他良好实践)数据。但是,我想以更严格/方法论的方式证明这一点,最好是在 python 中,但如果别无选择,R 也可以。是否有任何方法/测试可以验证我的假设?
谢谢。
我有一个明显的时间序列/顺序(监督:多类分类问题)数据集,每个数据点都带有时间戳。但是,一些领域直觉告诉我数据是静态的,不需要将它们视为时间序列数据。我还验证了非时间序列方法非常适合(即使有严格的交叉验证和其他良好实践)数据。但是,我想以更严格/方法论的方式证明这一点,最好是在 python 中,但如果别无选择,R 也可以。是否有任何方法/测试可以验证我的假设?
谢谢。
TL;DR: 没有现成的公式来确定您是否应该使用时间序列。假设检验是最正式的方法,AFAIK。
只是为了找到一个共同点,让我们首先区分使用时间戳和处理时间序列。
时间戳数据本身可能包含许多在许多领域中可能非常有用的信息。例如,小时、星期几和月份广泛用于需求预测应用程序。但是,以这种方式使用时间戳并不能使其成为一种时间序列方法。在这里,时间只是另一个特征的作用。
在处理时间序列时,人们会期望从数据中存在的时间依赖性(以及空间依赖性)中受益。顺便说一句,大多数方法仅限于均匀间隔的时间序列。如果您有某些任意事件的时间戳,则必须先进行预处理/聚合,然后才能将其视为时间序列。
您是否应该将数据视为时间序列?
我建议考虑两个基本假设(即,如果您认为您的非时间序列模型是正确的,请尝试证明相反的情况):
首先,您可以尝试通过检查是否存在能够很好地解释您的观察结果的时间序列模型来调查 (1)。正如评论中所建议的,自相关检验是一种获得线索的方法,如果观察结果之间存在线性关系,那么随着时间的推移。
您可能希望超越线性,并尝试通过使用时间延迟 (TDNN) 或循环 (RNN) 神经模型来构建非线性预测器。
在深入研究纯统计学以获得正式答案之前,我建议进行一个简单的测试:在实时时间序列上训练你的最佳预测模型,并在随机打乱(破碎)的时间序列上进行。如果性能没有显着差异 - 时域中可能除了噪声或某种复杂的混乱之外什么都没有。
例如,像 x(t+1) = 4 * (1-x(t))*x(t) 这样的混沌过程的时间序列看起来毫无意义,但是一个非常简单的非线性模型将能够完美预测。另一方面,祝你好运尝试预测一个 randn() 生成器,这也是一个混乱的时间序列:-)。
如果你不能拒绝(1),即有很强的时域相关性证据,那么你应该验证(2)是否为真。根据您的域,在这里它可能尽可能容易/困难。说得更正式一点,我会去尝试找出
P[Y(t)| X(t), X(t-1)..., X(tn)] # 给定过去观察对目标变量的预测
一样好
P[Y(t)| X(t)]。 # 仅给定当前观察对目标变量的预测
您可以尝试通过在足够数量的试验中比较时间序列模型与非时间序列模型的性能,或使用您所在领域的一些特定知识来凭经验回答这个问题。
例如,P[猫| 当前图片的像素] = P[cat | 当前图片的像素,上一张图片的像素],这可能是真的,也可能不是,这取决于照片是在同一家庭还是不同家庭拍摄的。