蔚仁佳
一、研究背景及意義
隨著大數據時代的來臨,大數據技術為我們分析問題和解決問題提供了新的思路和方法。與常規數據集相比,在大數據環境下進行數據挖掘將得到更多更全面的信息。未來從大數據中發現因果關系以及在常規數據中挖掘一般因果關系將是一種趨勢。為了改善傳統格蘭杰模型在時間序列因果關系挖掘中出現的弊端,近一步改進并完善因果關系挖掘模型,本文提出了在大數據環境下使用二階貝葉斯網絡模型進行因果關系挖掘。該模型采用最小描述長度(Minimum Description Length, MDL)原理來進行打分。通過對期貨樣本數據分析,并對原始時間序列進行離散化、屬性約簡、重構等處理后進行二階貝葉斯網絡模型訓練,不僅可以挖掘節點與節點之間的因果關系而且可以發現因果關系之間的聯系。
二、時間序列數據獲取與預處理
從統計學的角度上來講,時間序列指的是將某一個維度在不同時間點上的不同數值,按照時間的先后順序排列而成的數據。因此,時間序列常常受到各種不確定因素的干擾而表現出一定的隨機性,數據之間往往存在一定的相關性。從數學的角度上來講,隨機序列指的是由一系列隨機變量組成的數組,如我們用X1,X2......Xt來表示,其中t=1, 2, 3,.....n。
時間序列是按照時間的順序來排列的,因此上面的表達式中t為時間的整數變量,用來表示等間隔的增長,比如第t時間點·第t月·第t個等等,我們用x,來表示,其中t=1, 2, 3,......n,這里的t表示時間的順序。另外還有一點不同的是在時間序列中變量t既可以為正數也可以為負數,這是由于時間序列都是以當前的時間為基準,若t為負數則說明該數據發生在當前時間點之前,若t為正數則說明該數據發生在當前時間點之后,但是t的值必須為整數。
(一)期貨時間序列數據的來源
期貨交易數據都是按照時間順序觀察收集得到的期貨合約交易的價格數據,例如開盤價,收盤價,最低價,最高價等等。從期貨交易軟件上連續獲得的期貨時間序列數據稱作期貨時間序列數據流。時間序列數據有連續的,也有離散的。
期貨時間序列數據是一組隨時間變化而觀察得到的價格數據,該數據是離散的。
我們假設
S={(x1, y1),(x2,y2),…,(x",yn)}
為時間序列,n表示數據點的個數,Xi表示買賣期貨合約時的價格數據,其中i屬于[1,n],表示買賣期貨合約的時間點;給定一個維度,規定該時間序列是某種價格數據。通常情況下,使用自動的期貨交易平臺進行交易的時候,只需要分析眾多維度中的一種期貨時間序列數據即可,即固定屬性,例如期貨收盤價時間序列數據。
本文采用的期貨時間序列數據來自UC工網站上的開源數據,選取了其中3份期貨交易時間序列。每一份時間序列擁有1000萬左右的數據樣本。每個樣本擁有交易日期、該期貨的工D、更新時間、實時價格、開盤價、收盤價、最高價、最低價等維度,其中更新時間從幾秒至幾分鐘不等。
(二)貝葉斯網絡數據集的構建
本文的貝葉斯網絡分為一階和二階,兩種貝葉斯網絡的數據集構建方式不一樣,本節主要敘述如何構建一階貝葉斯網絡的數據集。在經過離散化處理后的時間序列上隨機(初始點不放回)截取5000個連續的時間序列片段,每個片段擁有5000個節點。經過上面的隨機截取后獲得了5000個長度為5000的時間序列,下面將對每一個時間序列進行數據集的轉化。由于考慮到二階貝葉斯網絡訓練時計算機的運行能力,在經過多次試驗后決定選取5個節點,方便實驗。
三、基于貝葉斯網絡的因果關系挖掘
在貝葉斯網絡中,對期貨時間序列進行貝葉斯網絡的推理,即貝葉斯網絡的因果關系挖掘,其主要思想是:在給定某些證據變量取值的條件下,求解給定變量和目標變量之間的因果關系。在本文中,我們利用最小描述長度(MDL)來對單時間序列(期貨)進行節點與節點之間,邊與邊之間的因果關系挖掘。
按照以上算法,我們對期貨的時間序列數據進行貝葉斯網絡模型訓練后得到如下因果關系圖,整理后如下:
從上圖我們可以看到總共有5個節點,每個節點本身代表著在一階貝葉斯網絡中的一種因果關系。節點1表示在原始時間序列中第一個節點和第五個節點之間的因果關系,我們用因果關系1來表示。同理,用因果關系2和3分別表示上圖中的節點2和3。從上圖可以看到節點1是節點2和3的父節點,這說明因果關系1是因果關系2和3的父節點。由此可以得出以下結論:如果己知原始時間序列中節點1和節點5之間存在因果關系,那么節點2和節點3與節點5之間也存在著因果關系。
四、結語
采用貝葉斯網絡進行模型訓練對輸入的數據集有著較高的要求,本文的原始數據集來自期貨時間序列,該數據集中有較多的缺陷,例如數據不完整,冗余數據過多等問題,所以試驗的第一步就是進行數據預處理,保證后期實現的高效和準確。另外,由于本文采用了一種全新的貝葉斯網絡訓練方法,需要大量的時間序列,所以需要對原始時間序列進行隨機截取來產生足夠多的小時間序列,保證模型的實現。最后,貝葉斯網絡訓練需要的是矩陣形式的數據集,而單變量的時間序列是一個數組,需要考慮如何將數組轉化成符合貝葉斯網絡訓練的數據集。(作者單位為山西財經大學)