是否可以从已经汇总的数据中计算 Q1、Median、Q3、StDev?

机器算法验证 分位数 聚合
2022-04-07 03:47:35

我们的数据将每小时汇总为以下值

  • 第一季度
  • 中位数
  • 意思是
  • 第三季度
  • 标准差
  • 最大限度
  • 值计数

所以数据最终会看起来更像这样。

        00:00-01:00     01:00-02:00     02:00-03:00     03:00-04:00          ...
--------------------------------------------------------------------------------
Q1            68,72           69,64           64,31           64,40          ...
Median       118,72          124,42          115,54          118,11          ...
Mean         119,17          119,97          117,23          117,60          ...
Q3           169,64          171,72          170,63          168,72          ...
StDev         59,30           59,15           61,23           59,62          ...
Max          219,70          219,44          219,76          219,71          ...
Min           15,02           15,07           15,05           15,05          ...
Count       1000,00         1000,00         1000,00         1000,00          ...

现在,如果可能,我们希望在不使用原始数据的情况下聚合一整天(24 小时)的相同值(因为在我们的实际场景中,从这些数据中聚合需要更长的时间)。

对于他们中的大多数人来说,这很简单,就像 MIN 只是整体 MIN,AVG 是整体 AVG,等等。

但棘手的部分是 Q1、Median、Q3 和 StDev。

据我了解,不可能简单地计算 24 个单独值的(加权)平均值。但是有没有一种方法可以从已经聚合的值中实现这一点(例如通过存储一些额外的数据)?

与如此庞大的数据集的差异是否显着?

或者除了从整个数据集中计算数据之外,数据是否总是会失真?

1个回答

你有观察的平均值、计数和 StDev,所以聚合的 StDev 是一个代数问题。我相信你可以很容易地弄清楚。

分位数更棘手。考虑,两个样本的 Q1。它们构成了组合样本的 Q1 的界限。如果,那么很容易看到聚合的这就是关于分位数的全部内容,即在您的情况下Q11>Q12Q12<Q1Q1<Q11min(Q1i)<Q1<max(Q1i)

通过使用渐近样本分位数分布,您可以从数据中获得更多信息。在这种情况下,您可以估计分位数的 StDev,而不是获取边界。您必须假设分布在白天没有变化。

或者,您可以尝试估计白天的分位数,例如它们在早上较高而在晚上较低。在这种情况下,您可以运行测试以查看是否是这种情况。