我有一个相对较少(~100个值)的整数集合:它们中的每一个代表了我运行的测试持续了多少时间(以毫秒为单位)。计算实际平均值
计算平均值的平凡算法是总结所有的n
值并将结果除以n
,但这并没有考虑到一些可笑的高/低值必定是错误的并应该丢弃。
有什么算法可用来估计实际平均值?
我有一个相对较少(~100个值)的整数集合:它们中的每一个代表了我运行的测试持续了多少时间(以毫秒为单位)。计算实际平均值
计算平均值的平凡算法是总结所有的n
值并将结果除以n
,但这并没有考虑到一些可笑的高/低值必定是错误的并应该丢弃。
有什么算法可用来估计实际平均值?
这取决于您的测试的不同条件。这是来自概率论的任务。 最简单的方法之一是尝试计算一个的中位数,你可以处理可笑的高/低值。看看下面的链接: Wiki about median
正如你所说,算术平均值不好,如果有非常高/低值。 您可以按照某人的建议计算中间值,即在您的值的排序列表中,“中间”值(如果您的集合包含不均匀的项目数量)或两个“中间”值的算术平均值其他)。
另一种方法是降低最低和最高的五个percentiles并计算其余的算术平均值。
一些选项:
维基百科列出some ways计算不同“的意思是”值
没有这样的事情“实际”的平均值:你不能严格区分实际数据统计离群值不作一些假设。什么构成实际数据和什么是错误最终是一个概率决定。此外,这不是一个严格的编程问题,而是一个关于统计的问题。 – stakx 2010-11-21 16:56:17
+1 stakx。另外,我可能会认为“荒谬”的价值观错误的假设可能是不正确的。我建议只运行更多的测试(1000或10000),并按原样计算* mean *值。 – 2010-11-21 17:09:13