计算实际平均值

时间:2010-11-21 16:47:03

标签: algorithm language-agnostic estimation average

我有一个相对较少的(~100个值)整数集:每个整数表示我运行的测试持续了多长时间(以毫秒为单位)。

计算平均值的平凡算法是将所有n值相加并将结果除以n,但这并未考虑到某些可笑的高/低值必须是错了,应该被丢弃。

有哪些算法可用于估算实际平均值?

4 个答案:

答案 0 :(得分:2)

正如您所说,您可以丢弃所有与平均值相差超过给定值的值,然后重新计算平均值。另一个值得关注的值是中位数,这是最常见的值。

答案 1 :(得分:1)

这取决于您的测试的不同条件。这是概率论的一项任务。 最简单的方法之一是尝试计算中位数,您可以处理可笑的高/低值。请看下面的链接: Wiki about median

答案 2 :(得分:1)

如您所述,如果有非常高/低的值,则算术平均值不佳。 您可以像有人建议的那样计算中位数,即在您的值的排序列表中,“中间”值(如果您的集合包含不均匀的项目数量)或两个“中间”值的算术平均值(否则) )。

另一种方法是丢弃最低和最高的五个percentiles并计算其余的算术平均值。

答案 3 :(得分:1)

一些选项:

  • 首先丢弃N个最高值和最低值,并计算其余值的算术平均值。将N设置为合适的值,以便例如丢弃1%或10%的值。
  • 使用median或中间值。
  • 使用geometric mean减少异常值的重量。

维基百科列出some ways来计算不同的“均值”值