是否可以累积一组描述大量样本的统计信息,以便随后生成箱线图?


22

我必须马上我是一个执业软件开发者,而不是一个统计学家澄清,而我的大学统计类是一个长的时间以前...

就是说,我想知道是否存在一种用于累积描述性统计信息的方法,然后可以使用该方法来生成箱线图,而这并不需要存储一堆单独的样本?

我想做的是在复杂的多队列过程中生成队列服务时间的图形摘要。过去我曾经使用过一个名为tnftools的程序包,该程序包可以累积大量样本,然后将其后处理为响应时间和异常值的图表。但是tnftools不适用于当前平台。

理想情况下,我希望能够在流程运行时“即时”累积一组描述性统计信息,然后提取数据以按需进行分析。但是我不能简单地让进程积累样本,因为这样做会涉及内存/ IO对系统性能产生无法接受的影响。


Kaelin:>您的意思是说,是否存在用于计算汇总统计数据(例如中位数和四分位数)的“实时”方法?如果这是您想要的,我可以给您提供详细说明它们的论文的链接。你也可以给你正在努力为这些方法可能在R.存在有效的GNU实现平台的更多细节
user603

@kwak:是的,听起来像我要找的东西。我将不胜感激这些链接。:-)我正在Mac OS X上工作……我可以使用R进行后处理数据,但是由于通常的原因,无法将GPL代码链接到我公司的产品中。
Kaelin Colclasure

Answers:


27

对于“即时”箱线图,您将需要“即时”最小/最大值(平凡)以及“即时”四分位数(0.25、0.5 =中位数和0.75)。

最近,有关中值计算的在线(或“即时”)算法问题正在进行许多工作。

最近的发展是二进制。作为辅助,它还比快速选择(既不是在线也不是单次通过)具有更好的最坏情况复杂性。

您可以在此处在线找到相关的论文以及C和FORTRAN代码。您可能需要与作者检查许可详细信息。

您还将需要四分位数的单遍算法,您可以使用上述方法以及以下四分位数的中值递归表征:

Q0.75(x)Q0.5(xi:xi>Q0.5(x))

Q0.25(x)Q0.5(xi:xi<Q0.5(x))

即25(75)%的四分位数非常接近小于(大于)中位数的那些观测值的中位数。

附录:

存在许多用于计算分位数的较旧的多遍方法。一种流行的方法是维护/更新从流中随机选择的确定大小的观测值存储库,并在该存储库上递归计算分位数(请参阅评论)。这种(和相关的)方法已被以上建议的方法所取代。


1
+1右;我还处于从直方图近似的黑暗时代。

我是否正确理解,如果天真的实施了这样从中位数四分位数的递归定义,则需要两次通过?您知道单遍算法吗?
石英

@Quartz:不,单遍即可:您有两次单遍运行中值计算。
user603 2014年

2

有一种算法可以直接维护估计的直方图,而不仅仅是找到中位数:“ 无需存储观测值即可动态计算分位数和直方图的P平方算法 ”。这可能会比对所需的每个分位数重复合并的效率更高。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.