Time-Series

階躍變化檢測

  • August 15, 2016

我正在使用非線性最小二乘法將分析函數擬合到一些實驗數據。我必須為算法提供一些初始猜測值,所以我試圖弄清楚如何自動執行此操作(而不是通過眼睛,這是我一直在做的)。

這是一些模擬數據,通過將正態分佈的隨機噪聲添加到分析函數中創建

這是一些模擬數據,通過將正態分佈的隨機噪聲添加到分析函數中創建

我正在嘗試可靠地檢測數據中此階躍變化的位置。通過計算數據點的平均方差並在數據中尋找與該值顯著不同的點,我取得了一些有限的成功,但這種方法似乎非常受信噪比的限制。

我希望對我需要研究什麼來解決我的問題有一些指導,因為我根本不知道多少統計數據。

謝謝!

  • 編輯粘貼 bin 鏈接到 xy 數據

http://pastebin.com/QTawFex3

可能有一些更複雜的方法,但這是我的第一個想法。

您基本上想要對函數求導並找到它最大的位置。在數值上,您可以只取數據點之間的差異,然後找出哪兩個點的差異最大。那麼這兩個點的 x 值的中點就是您變化最大的位置。

這種簡單的方法容易受到噪音的影響。因此,您可以先使用不會將數據向右或向左移動的過濾器來過濾數據。如果您使用簡單的 FIR 濾波器,則從前到後過濾,然後從後到前過濾結果。結果是一個雙重過濾和非移位數據集。然後按照上面的過程找到值之間差異最大的點。

您還可以使用更複雜的數值微分計算,這些計算使用比兩點差更多的值。

引用自:https://stats.stackexchange.com/questions/229914

comments powered by Disqus