Time-Series
階躍變化檢測
我正在使用非線性最小二乘法將分析函數擬合到一些實驗數據。我必須為算法提供一些初始猜測值,所以我試圖弄清楚如何自動執行此操作(而不是通過眼睛,這是我一直在做的)。
這是一些模擬數據,通過將正態分佈的隨機噪聲添加到分析函數中創建
我正在嘗試可靠地檢測數據中此階躍變化的位置。通過計算數據點的平均方差並在數據中尋找與該值顯著不同的點,我取得了一些有限的成功,但這種方法似乎非常受信噪比的限制。
我希望對我需要研究什麼來解決我的問題有一些指導,因為我根本不知道多少統計數據。
謝謝!
- 編輯粘貼 bin 鏈接到 xy 數據
可能有一些更複雜的方法,但這是我的第一個想法。
您基本上想要對函數求導並找到它最大的位置。在數值上,您可以只取數據點之間的差異,然後找出哪兩個點的差異最大。那麼這兩個點的 x 值的中點就是您變化最大的位置。
這種簡單的方法容易受到噪音的影響。因此,您可以先使用不會將數據向右或向左移動的過濾器來過濾數據。如果您使用簡單的 FIR 濾波器,則從前到後過濾,然後從後到前過濾結果。結果是一個雙重過濾和非移位數據集。然後按照上面的過程找到值之間差異最大的點。
您還可以使用更複雜的數值微分計算,這些計算使用比兩點差更多的值。