Algorithms
是否可以積累一組描述大量樣本的統計數據,以便我可以生成箱線圖?
我必須立即澄清我是一名執業軟件開發人員,而不是統計學家,而且我的大學統計課是很久以前的……
也就是說,我想知道是否有一種方法可以累積一組描述性統計數據,然後可以用來生成箱線圖,而不需要存儲一堆單獨的樣本?
我要做的是在復雜的多隊列過程中生成隊列服務時間的圖形摘要。我過去曾使用過一個名為 tnftools 的包,它允許積累大量樣本,然後將其後處理成一個很好的響應時間和異常值圖表……但是 tnftools 不適用於我當前的平台。
理想情況下,我希望能夠在流程運行時“動態”積累一組描述性統計數據,然後提取數據以進行按需分析。但我不能簡單地讓進程累積樣本,因為這樣做所涉及的內存/IO 會對系統性能產生不可接受的影響。
對於“動態”箱線圖,您將需要“動態”最小/最大值(微不足道)以及“動態”四分位數(0.25,0.5=中位數和 0.75)。
最近在用於中值計算的在線(或“即時”)算法問題上進行了大量工作。
最近的一個發展是binmedian。作為一個輔助,它也比快速選擇(既不是在線也不是單次通過)具有更好的最壞情況復雜性。
您可以在此處在線找到相關論文以及 C 和 FORTRAN 代碼。您可能需要與作者核實許可詳細信息。
您還需要一個四分位數的單遍算法,您可以使用上面的方法和以下根據中位數對四分位數進行遞歸表徵:
和
即百分之二十五(75)的四分位數非常接近那些小於(大於)中位數的觀察值的中位數。
附錄:
存在許多用於計算分位數的較舊的多遍方法。一種流行的方法是維護/更新從流中隨機選擇的確定大小的觀測值水庫,並在該水庫上遞歸計算分位數(參見這篇評論)。這種(和相關的)方法被上面提出的方法所取代。