English 中文(简体)
合并两个统计结果集
原标题:Merging two statistical result sets
  • 时间:2009-09-26 07:01:57
  •  标签:

我有两套处理统计数据。 处理中的数据可以产生大量成果,因此我不必储存所有数据,以在晚些时候重新计算额外数据。

Saye 我有两套统计数字,描述两个不同的会议,以开展一个进程。

每一组

Statistics : { mean, median, standard deviation, runs on process} 

我将如何合并这两个中间点和标准偏差,以综合总结两个描述统计数据集。

不用说,我可以保存统计所描述的两套数据。

最佳回答

你们可以取得平均和标准上的偏差,而不是中位。

new_n = (n(0) + n(1) + ...)
new_mean = (mean(0)*n(0) + mean(1)*n(1) + ...) / new_n

new_var = ((var(0)+mean(0)**2)*n(0) + (var(1)+mean(1)**2)*n(1) + ...) / new_n - new_mean**2

<代码>n(0)系指第一组数据中的操作编号,n(1)<>>> 代码为第二版,按此编号,<代码>mean为平均值,var为差异(仅为标准偏差)。 <代码>n**2系指“n平方”。

造成合并差异的原因是,数据组的差异等于数据组的平方,减去数据组的平均值。 统计语言

Var(X) = E(X^2) - E(X)^2

<代码>var(n)+mean(n)**2 这些术语给我们E(X^2)部分,然后可以与其他数据集相结合,然后取得预期结果。

在媒体方面:

如果你将两个数据集合并起来,那么你可以肯定,这两个媒体(或相当于其中之一)之间的中间点是哪里的,但你可以说的只是什么。 如果你想要避免中位数不等于某个数据点,那么,将平均数字计算为科索沃。

如果你把许多数据集合在一起,你要么拿到媒体的中间点,要么拿到它们的平均数。 如果不同数据集之间可能存在严重的系统性差异,那么,考虑到数据集的平均数可能更好,因为中值会降低外人的影响。 但是,如果你有系统的差异,无视这些差异可能不是一件好事。

问题回答

阿尔特尔乌斯在数学上是正确的,但他认为计算差异的方法在数字上是不稳定的。 您谨对差异作出如下调整:

new_var=(n(0)*(var(0)+(mean(0)-new_mean)**2) + n(1)*(var(1)+(mean(1)-new_mean)**2) + ...)/new_n

edit from comment
The problem with the original code is, if your deviation is small compared to your mean, you will end up subtracting a large number from a large number to get a relatively small number, which will cause you to lose floating point precision. The new code avoids this problem; rather than convert to E(X^2) and back, it just adds all the contributions to the total variance together, properly weighted according to their sample size.

不可能有中位。 Say有两les(1、1、2)和0、2、3、3。 中间线为1和2,总中位数为1。 无法说明。





相关问题
热门标签