2010-12-10 48 views
1

我有一組數據流,我想分析這些數據是否突變,並可能忽略數據中的尖峯/噪聲。我研究過移動平均數,winsorised方法和其他幾種可能的解決方案,包括控制系統中的PID控制器,小馬庫和numpy以尋求如何解決這個問題的線索。檢測流數據中的更改

示例數據集如下。
22.0,22.0,22.0,22.0 ,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,21.840329667841555,21.840329667841555,20.8806130178211, 20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,21.840329667841555, 21.840329667841555,21.840329667841555, 21.840329667841555,22.80350850198276

理想情況下,我想檢測第1部分,第3部分和第4部分的值以粗體顯示。第二部分可以像對待一樣。

尋找一種優雅的數學/算法解決方案,其工作原理類似於移動平均值,因爲如果數據長時間不變(窗口是動態的),它將忽略舊數據。在上述數據的情況下,當考慮下一個數據窗口20.8806130178211時,初始值22被忽略。

解決方案(程序/類)應該能夠接受新的數據輸入值(22.0232),並且如果計算出的值在可接受的範圍內,即返回true或false的值, 。

感謝
SFK

回答

1

也許比看着你的數據的移動平均一個更好的辦法是看在你的數據變化的移動平均線。因此,您可以將您的數據集的第一個差異識別出來,並確定大於某個閾值的值。