時間序列滑動窗口和時間穿越問題


什么是時序數據

          時序數據是指時間序列數據。時間序列數據是同一指標按時間順序記錄的數據列。在同一數據列中的各個數據必須是同類的,要求具有可比性。簡單的來說,就是按照時間為索引的數據列。

如何使用時序數據

         對時間序列分析的目的是通過找出樣本內時間序列的統計特性和發展規律性,基於規律構建時間序列模型,進行樣本預測。

         那么對於時序數據,我們通常會去分析數據的極值,中值,偏差,方差,同比,環比以及數據的周期性等特點,從而去總結數據的一些特征,進而對數據有一個大致的認識。

         同時,我們還可以使用滑窗統計,即按照時間的順序對每一個時間段的數據進行統計,從而得到每個時間段內目標體現的特征,進而從連續的時間片段中,通過對同一特征在不同時間維度下的分析,可以得到數據的變化趨勢。

                                                                                                                                    

滑動窗口圖片

從上圖可以看出,滑動窗口便是按照將目標值按照時間進行排序,接着划定每個窗口長度以及大小,計算每個窗口內的特征,便可以得到目標值的變化趨勢

 

什么是流水表和切片表

 

在金融行業中,通常獲取的表有兩種,流水表和切片表,

流水表的定義:流水表對於表的每一個修改都會記錄,可以用於反映實際記錄的變更。通常用於記錄數據變更。

切片表的定義:切片表往往只反映某一個維度的相應數據。其表結構往往只有某一維度,或者某一個事實條件的數據,通常來說,切片分為按天切片,按月切片,按年切片,不同的切片反應了數據在不同時間跨度上的變化。

 

對流水表划窗和對切片表划窗

 

對於流水表,按照上述方法進行滑窗,即在一段時間窗口內進行特征統計,對不同窗口進行分析即可以得到數據的內在變化趨勢。

對於切片表,由於其已經進行了切片,因此其滑窗只能按照最小切片間隔的整數倍進行滑窗

 

什么是時間穿越

 

所謂時間穿越,即用到了未來的數據。如下圖所示,如果在統計窗口一的同時加入了窗口二內的數據,這就造成了穿越。

 

如果使用了穿越數據,那么很顯然就會出現模型過擬合的現象。導致模型在訓練集中效果卻異常優異,但是在測試集或者上線后性能急劇下降。

究其根本原因,是因為在實際場景中,數據行為都是在快速變化的,相近時間內的行為存在一定的相似性,時間相差越遠行為差異越大。這一點和一個穩定數據分布場景是完全不同的,如果數據分布在時間維度上是相對穩定的,那么時間因素就不是一個那么重要的因素,相互穿越帶來的問題就會比較小。

因此我們在建模過程中為了模型的准確性和魯棒性,需要避免時間穿越的問題。

 

如何避免穿越

因此,如果需要避免穿越,就不要使用未來數據即可,但是,在這之間有一些點需要注意,建模過程中常常誤加入穿越數據。

  1. 如下圖所示,如下圖所示,如果我們需要計算TS點的數據,假設這個數據時T+3的數據,如果我們的滑動窗口時60天,那么我們的滑窗也應該是過去60天到過去三天。(之前筆誤寫成了57天,是我傻了。。。。)

                                                                


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM