ObsPy和scipy去趨勢的API介紹

 
在之前學習筆記探討過時間序列資料集可能會隱含趨勢,所謂的趨勢就是序列資料隨著時間持續增加或減少的現象。
通常在進行時間序列預測或辨識、建模之前去趨勢會對評估更有幫助。


obspy.core.trace.Trace.detrend
https://docs.obspy.org/packages/autogen/obspy.core.trace.Trace.detrend.html#obspy.core.trace.Trace.detrend

在深入了解趨勢的課題之前,先回顧「線性迴歸」與「多項式迴歸」。

線性迴歸(Linear Regression)
適用於簡單線性資料集的擬合直線。如果資料點的散佈形狀近似直線,則資料為線性。
線性趨勢線通常會呈現以固定趨近等比的穩定變化間隔增減。

多項式迴歸(Polynomial regression)
是線性迴歸的延伸,其將依變數與自變數之間的關係建模為 n 次多項式。多項式趨勢線是一種曲線,適合擺動不定的資料使用,多項式的冪次可由資料波動的次數或曲線彎曲點 (波峰和波谷) 的個數決定。
因此二階多項式趨勢線通常僅有一個波峰或波谷。三階多項式趨勢線通常有一個或兩個波峰或波谷。


Scipy提供detrend方法
在Scipy提供detrend方法,預設若無指定type會採用linear線性最小平方法擬合方式或也可以指定constant然後用mean來做去趨勢。
Remove linear or constant trend along axis from data.
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.detrend.html#scipy.signal.detrend


obspy.signal.detrend 封裝了預設有三種detrend方法
定義在兩個模組中
第一個模組 obspy.signal.detrend
https://docs.obspy.org/packages/autogen/obspy.signal.detrend.html

1.obspy.signal.detrend.simple
https://docs.obspy.org/packages/autogen/obspy.signal.detrend.simple.html#obspy.signal.detrend.simple

2.obspy.signal.detrend.polynomial
https://docs.obspy.org/packages/autogen/obspy.signal.detrend.polynomial.html#obspy.signal.detrend.polynomial

3.obspy.signal.detrend.spline
https://docs.obspy.org/packages/autogen/obspy.signal.detrend.spline.html

第二個模組 obspy.core.trace.Trace.detrend 
https://docs.obspy.org/packages/autogen/obspy.core.trace.Trace.detrend.html
部分會是跟上面一樣機制,甚至會再去間接採用scipy的方法。

比較特別的點是ObsPy 是一個開源專案,主要提供一個用於處理地震資料的 Python 框架。
也時常在其他訊號資料處裡方面,時常看到被拿來採用。

Ref:
[個人筆記] 利用Excel趨勢線做簡單的資料分析
https://dotblogs.com.tw/eason/2010/10/26/18589
Excel 快速加入各種趨勢線教學:線性、指數、對數、多項式等迴歸線
https://blog.gtwang.org/excel/excel-scatter-plot-add-regression-trendline-tutorial/
How to Use and Remove Trend Information from Time Series Data in Python
https://machinelearningmastery.com/time-series-trends-in-python/
Linear vs. Polynomial Regression: Understanding the Differences
https://www.geeksforgeeks.org/machine-learning/linear-vs-polynomial-regression-understanding-the-differences/
Implementation of Polynomial Regression
https://www.geeksforgeeks.org/machine-learning/python-implementation-of-polynomial-regression/
ObsPy-Python framework for processing seismological data
https://github.com/obspy/obspy/wiki/
What is Polynomial Regression?
https://polynomialregression.drque.net/math.html
Trends, Smoothing, Detrending
https://www.stat.cmu.edu/~cshalizi/dst/18/lectures/02/lecture-02.html#trends-from-data

留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

外貿Payment Term 付款條件(方式)常見的英文縮寫與定義

鼎新ERP_會計系統_總帳管理_財務參數設定_傳票處理