2013-03-11 46 views
1

我們概要分析與一羣其他數據點沿着方法收集的持續時間,我們存儲從公共數學一SummaryStatistics對象內這些數字來提供最小的代碼,最大值,平均值,算上等,但我們需要刷新此每隔一小時左右對磁盤進行一次對象,然後再次開始收集下一個。如何將多個commons.math SummaryStatistics對象一起添加?

我的問題是我們如何能夠可靠地將這些值加在一起,所以如果我們有24點彙總統計的對象,我們可以在不扭曲了數據,顯示整個一天的總結?對象本身具有運行平均值以及計算了多少項,那麼是否有一個實用程序類可以將兩個加權平均值結合起來?

+0

[你嘗試過什麼?](http://whathaveyoutried.com/) – 2013-03-11 13:34:14

+0

我平均兩種方式在一起,但它顯然是錯誤的答案 – user842800 2013-03-11 14:18:05

回答

2

你也可以做到這一點直接使用AggregateSummaryStatistics。參見「對多個樣品和整體統計數據計算統計信息同時」在下議院數學用戶指南的statistics節一節。

1

既然你說你有兩個平均值和計數,你要使用的通式是他們的計數來概括手段的產品,然後除以他們的計數的總和。

例如,兩個SummaryStatistics對象AB,你可以使用:

double weightedMean = (A.getMean() * A.getN() + B.getMean() * B.getN())/
         (A.getN() + B.getN()); 

對於很多人(,他們的List稱爲`manyStats'),你可能做這樣的事情:

double accum = 0.0; 
long n = 0; 
for (SummaryStatisics s: manyStats) { 
    accum += s.getMean() * s.getN(); 
    n += s.getN(); 
} 
double weightedMean = accum/n; 
相關問題