我可以从我的非常大的数据集中随机抽取一个样本来克服非独立性吗?

机器算法验证 时间序列 采样 独立 广义最小二乘法 二次抽样
2022-03-25 12:30:53

我正在尝试在一个非常大的时间序列数据集上运行回归模型(将流动噪声与车速、俯仰和俯冲状态进行比较)。因为我的样本大约每分钟采集一次(有几个小时的间隔,所以间隔不完全),违反了独立性假设。

我选择了 GLS 模型,因为我还要处理非常量方差。我建立了一个方差结构来处理这个问题。我尝试构建协方差结构,但运行时间不实用。

我有 15,000 多个数据点,所以我的想法是我可以从我的 15,000 个点中随机抽样,现在独立假设得到满足,我可以仅使用方差结构运行 GLS。我每次可以使用新的随机样本运行 1000 多次迭代并进行比较。

我的问题是 - 这有效吗?我在这里错过了什么吗?

作为后续行动 - 我的数据也有异常值。我正在使用库克的距离移除它们。应该在抽取随机样本之前还是之后进行?

2个回答

我将在蒂姆的回答中添加几点,重点关注原始问题,即“我的问题是 - 这有效吗?我在这里遗漏了什么吗?”。我认为这种方法可能是有效的,但是......这取决于很多细节。

关于在下采样时是“消除”还是“稀释”依赖的问题,我觉得这更多的是关于语义而不是其他任何事情。如果您进行了足够的下采样,您将达到一个点,即出于所有实际目的,您已经消除了相关性。因此,如果您有大量数据和足够的信号,那肯定是一种务实的方法。如果模型的残差在拟合后没有显示出“显着”相关性,那么你就可以安全回家了。在某种程度上......因为,尽管如此,这至少有四个原因是次优的:

  1. 通过丢弃数据,您正在丢弃有用的信息
  2. 这通过选择的下采样因子引入了任意阈值(如果下采样过多,实际上可能会限制您找到现有显着效果的能力,例如
  3. 根据您从完整数据集中选择的样本,您最终可能会得到不同的结果,因此通过这样做,您实际上忽略了报告估计值中可变性的一部分(但话又说回来,这可能可以忽略不计,而且您可以尝试通过重采样过程多次执行此操作来解决它)
  4. 您可能对相关结构本身感兴趣(尽管我认为您不是这种情况)

因此,如果它可以为您省去我怀疑可能伴随着在您收集数据的规模上正确拟合具有正确相关结构的模型的麻烦,我不会忽视它。另一方面,你应该认为,如果你每 10 分钟收集一次数据,那么无论如何你只会得到 1/10 的数据。所以我想一个需要考虑的重要因素是你对描述你试图建模的现象有兴趣吗?如今,研究人员可以使用一些传感器,例如声音传感器以 256kHz 采样,有人可能会争辩说,出于实际目的,丢弃大量数据可能是可以的。这将始终是一个“取决于具体设置”的问题,所以我并不是真的提倡将其作为一种盲目的例行程序。但这可能是一种务实有效的方法。

与正在讨论的观点无关,但对@tim 指出的观点进行评论,我认为在 MCMC 分析中不建议进行细化的原因不是瘦后仍然存在相关性,而是因为这始终是无用的过程,因为您使用 MC 的值作为后验分布,并且实际上您实际上会随着时间的推移而边缘化(您忽略了时间自相关)。因此,即使它们是相关的,删除值也总是不如使用所有值有效(前提是链已经收敛,但如果没有,则无需尝试从中进行推断)。再说一次,我有 61 个声望点,而@tim 确实有数千个,所以他可能知道我不知道的东西 ;) !

如果您对时间序列数据进行下采样,它不会消除依赖性,只会稀释它。假设您的数据遵循关系

yt+1=f(yt)+εt+1

所以当前时间点直接依赖于前一个时间点。之间有什么关系ytyt+k? 嗯,是

yt+k=f(f(f(f(yt)+εt+1)+εt+2)+εt+3))+εt+k

所以还是有一些依赖值k前一步,但关系比前一步的值要嘈杂得多。所以如果去掉中间步骤,还是会有一些依赖。出于完全相同的原因,不再推荐曾经是标准方法的 MCMC 链,因为它不会“删除”依赖关系。

也就是说,回归模型在处理时间序列数据时也很常见在这种情况下,您通常会“一次一行”查看数据,而模型是

yt=Xtβ+εt

所以它不考虑过去或未来。假设是错误是独立的。如果不是,您将需要一个允许自相关误差的模型,即像动态回归这样的时间序列模型。有很多方法可以在没有时间序列模型的情况下处理它,但时间序列模型是完成这项工作的工具。