我有一個記錄頻率的時間序列,我想從中計算其次的意思。但是採樣率不是恆定的,這意味着簡單的算術平均值是錯誤的。我實際上想要計算的是每個第二區間內的階梯函數(由時間序列描述)的積分。如何以最簡單的方式計算階梯函數的積分?
例如考慮此時間序列:
08:11:23.400 -> 49.9 Hz
08:11:24.200 -> 50.1 Hz
08:11:24.600 -> 50.15 Hz
08:11:24.800 -> 50.05 Hz
08:11:25.100 -> 49.95 Hz
第二08:11:24.000 - 08:11:25.000
的算術平均值將是(50.1 + 50.15 + 50.05)/ 3 = 50.1。但這不是那秒測量的平均頻率。它是: (200 * 49.9 + 400 * 50.1 + 200 * 50.15 + 200 * 50.05)/ 1000 = 50.06,因爲測量的頻率對於不同的時間量是成立的。
這是計算加權平均值(以保持時間爲權數)或等效地計算階梯函數的積分(然後按時間分開)。
首先:這個具體的計算是否有名字?這對我來說似乎是一個相當標準的時間序列計算。不知道這個名字使得它很難谷歌。
第二:哪個java庫支持這樣的計算?我想避免自己實現這個。我拒絕相信沒有好的標準Java庫提供這個。我正在研究Apache Commons數學庫,但沒有任何運氣(但又是:也許我只是錯過了正確的術語來尋找)。
我很困惑---你說你不想自己實現加權平均?就是這樣。這只是幾行代碼。或者你的意思是你想要的東西需要時間序列,間隔參數,並返回加權平均值?雖然我對此稍微表示同情,但仍然沒有太多工作。爲什麼你想避免自己做呢? –
那麼,爲什麼重新發明輪子,如果它已經存在?在我的車輪中有任何類型的錯誤的可能性都比較高,而標準庫在大多數情況下都會得到很好的測試。其次,我想要做更多的標準統計數據,這可能會受到適當的庫的限制,並且可以統一處理不同的統計數據。 – benjamin