我有一个集合列表和每个集合的一些基本统计信息(项数、最小值、最大值、平均值、stddev)。我想计算所有集合合并后的相同统计数据。计算总计数、最小最大值和平均值很容易,但我不确定如何计算总标准差。
数据如下所示:
Count Max Min Mean Stddev
1,027,671 781 68 57.8 32.79
839,473 552 54 61.3 48.53
3,012,102 890 41 64.9 41.92一起生成所有集合的统计信息:
4,879,246 890 41 62.8 ???发布于 2012-12-16 05:37:58
我假设您正在编写维护分布的代码,而不仅仅是使用一些已经计算了标准差的数据。对于计算机来说,标准的dev并不是一个很容易维护的参数。相反,您应该维护项目的数量、总和和项目的平方和,然后根据这3条原始信息轻松计算分布的平均值和标准差。我在这里的代码中使用了这个策略。add操作支持合并两个发行版。注意它的实现是多么的简单。http://github.com/rrenaud/dominionstats/blob/master/stats.py#L17。
发布于 2012-12-16 05:30:39
我认为不可能从你拥有的数据中准确地计算出这一点。问题是标准差取决于组合数据集的平均值,不一定与单个平均值相同,还取决于您无法精确(但可能是近似)访问的每个点到平均值的距离。
https://stackoverflow.com/questions/13896289
复制相似问题