我有一個相對較少(~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