粗糙路徑理論 —— 價格序列降維利器
發(fā)布時間:2018-01-24 | 來源: 川總寫量化
作者:石川
摘要:粗糙路徑理論通過路徑簽名可有效對原始價格信息降維,使用它作為有監(jiān)督學習的特征輸入可以取得更好的效果。
1 引言
機器學習中的有監(jiān)督學習算法時常被用來預測投資品的價格走勢。以此為目的建模時,訓練集數(shù)據(jù)的特征(features)選擇格外重要。我們希望找到最能捕捉價格走勢的特征,但如果特征維數(shù)太高又容易造成過擬合以及計算效率的問題。當直接使用投資品的價格信息作為輸入時,訓練出來的模型效果往往很差,這是因為價格信息的維數(shù)太高了。
以日線為例,假如我們想使用過去 n 個交易日的日頻 K 線建模,預測下一個交易日的漲跌。由于每個 K 線有 Open、High、Low 和 Close 四個價格,那么這 n 個 K 線的輸入維數(shù)就是 4n。當 n = 20 時,這個模型的輸入維數(shù)就高達 80。如果我們采用非線性的有監(jiān)督學習算法(比如非線性核的支持向量機),那么維數(shù)更會呈指數(shù)增長。使用如此多的特征建模,樣本內(nèi)很容易出現(xiàn)過擬合,模型在樣本外的預測準確性會非常低。在構建這類模型時,對輸入特征的有效降維至關重要。我們熟悉的各種技術指標其實就是降維。技術指標對價格數(shù)據(jù)高度提煉、降噪,以期捕捉到一些更泛化的信息。基于技術指標的技術分析策略能賺錢說明使用技術指標降維可以在一定程度上捕捉價格運動的內(nèi)在規(guī)律。
今天我們就來介紹另一種捕捉價格走勢內(nèi)在規(guī)律的方法 —— 粗糙路徑理論(rough path theory)。它的本質(zhì)是通過計算路徑簽名(signature of a path)來對路徑的信息降維,并使用簽名代替路徑本身作為機器學習模型的輸入特征。本文就來揭開它神秘的面紗。
2 粗糙路徑理論
粗糙路徑理論發(fā)展自上世紀 90 年代(Lyons 1998)。顧名思義,它研究的對象是粗糙路徑(rough path)。這里,“粗糙”指的是路徑雖然連續(xù),但是處處劇烈波動。比如布朗運動產(chǎn)生的路徑就是“粗糙的”,它雖然連續(xù)但是處處不可微分。投資品的價格走勢可謂名副其實的粗糙路徑。在粗糙路徑理論中,最核心的概念就是路徑簽名。這個“簽名”就是一個映射函數(shù)(mapping),它將原始路徑信息轉(zhuǎn)換成一組實數(shù)集合。集合中的每一個實數(shù)都是通過原始路徑中的數(shù)據(jù)點以不同的方式計算而來,代表著原始路徑的某一個幾何特征。理論上,一個路徑的簽名是“無窮維”的。在實際使用中,我們只使用有限個維數(shù)的簽名(即實數(shù)集合中的實數(shù)個數(shù)有限),這樣的簽名稱為截斷簽名(truncated signature)。使用截斷簽名來代替原始高維路徑的數(shù)據(jù)信息便是對其進行降維。
計算粗糙路徑的(截斷)簽名需要用到張量代數(shù)(Tensor algebra),十分復雜,本文不加贅述。假設原始路徑是 n × N 維的,它的簽名是通過將這個路徑不斷的向其原始的 n 維坐標系上投影得到的。下面以 n = 2 為例說明如何求解一個路徑的(截斷)簽名。假設一個二維粗糙路徑如下圖所示。
它的 2 階截斷簽名 S 是由 7 個實數(shù)構成的集合:
這 7 個實數(shù)的幾何意義總結(jié)如下:
其中,S^(1,2) 和 S^(2,1) 表示該路徑按特定形式與坐標軸構成的區(qū)域的面積,如下圖所示。
用一句話總結(jié)來說,這個 2 階截斷簽名中的 7 個數(shù)每個都有明確的幾何含義,并且由原始粗糙路徑計算而來;這 7 個數(shù)構成的簽名是對原始路徑信息的高度概括。當我們用簽名代替原始路徑作為輸入特征時,一個必須要搞清楚的前提是:簽名和路徑是一一對應的嗎?路徑可以有千千萬萬,如果不同的路徑有相似的簽名,那么用簽名代替路徑的效果就要打折扣了。另外,不要忘了,我們使用的是截斷簽名中,它更是舍棄了高階的信息。即便非截斷簽名和路徑一一對應,截斷簽名又是否能很好的描述原始路徑呢?好消息是,數(shù)學上可以證明粗糙路徑的簽名是唯一的,因此簽名很好的反應了原始路徑的信息。那么,截斷簽名怎么樣呢?事實上,高階簽名所包含的信息量按照階數(shù)的階乘衰減(factorial decay)。這意味著高階簽名包含的信息較低階簽名來說可以忽略不計,因此即便是使用低階的截斷簽名,我們也可以預期它有效的保留了原始路徑的信息。在上面這個例子當中,原始的路徑就可以由它的截斷簽名 {1, 7, 5, 24.5, 19, 16, 12.5} 表示。
3 領先 —— 滯后變形
截斷簽名是對原始粗糙路徑的有效降維。這為我們使用它進行投資品價格數(shù)據(jù)分析打下了良好的基礎。不過在這之前,還需要做一步鋪墊。投資品的價格時間序列對原始“未知路徑”按一種特定頻率的采樣。當使用最高頻率采樣時,得到的就是 tick 數(shù)據(jù);當使用 1 分鐘頻率采樣時,得到的就是 1 分鐘 K 線數(shù)據(jù);當使用日頻采樣時,得到的就是日頻 K 線數(shù)據(jù),以此類推。換句話說,我們的價格數(shù)據(jù)僅僅是一些列來自未知路徑的離散點,它們并不是連續(xù)的。粗糙路徑雖然處處高波動,但它是連續(xù)的。因此,在使用簽名分析價格時,必須先將離散的價格時間序列轉(zhuǎn)化為連續(xù)的路徑。
在這方面,一個常見的方法是領先 —— 滯后變形(lead-lag transformation)。假設 t_0,t_1,…,t_N 為 N 個離散時間點,定義在之上的價格序列為 {t_i, X_(t_i)}, i = 0,1,…,N,該變形的定義如下:
從圖形上直觀的來說,該變形將原來長度為 N + 1(0 到 N)的價格序列轉(zhuǎn)變?yōu)殚L度為 2N + 1(0 到 2N)的新序列。在這個新序列中,每個點由一對兒領先價格(X^Lead)和滯后價格(X^Lag)來表示。在這個新序列中的第 0,2,…,2N 這些序列標號為偶數(shù)的點上,X^Lead 和 X^Lag 的取值就是原始序列中的 X_{j/2};在這個新序列中的第 1,3,…,2N - 1 這些序列標號為奇數(shù)的點上,第 j(某奇數(shù))個點的 X^Lead 取值等于第 j + 1 個點的 X^Lead 值,而它的 X^Lag 取值等于第 j - 1 個點的 X^Lag 值。如果我們比較這 2N 個點的 X^Lead 和 X^Lag 序列,不難發(fā)現(xiàn) X^Lag 永遠比 X^Lead 落后一位;這便解釋了為什么它們有“領先”和“滯后”之分。這 2N 個由 {X^Lead, X^Lag} 兩兩配對兒構成的新序列就是對原始離散價格時間序列的連續(xù)化處理,將其轉(zhuǎn)化為一個連續(xù)的路徑。下圖為上證指數(shù)在 2016 年 7 月內(nèi)收盤價的日數(shù)據(jù)和通過領先 —— 滯后變形產(chǎn)生的連續(xù)路徑。
為什么要采用如此變化得到路徑呢?對于投資品價格這種粗糙路徑來說,由于其劇烈的波動,它的二次變分不為零,這個數(shù)學上的特性反映著價格變化中非常重要的性質(zhì)(見《布朗運動、伊藤引理、BS 公式(前篇)》)。因此,我們希望路徑簽名也能反映原始軌跡非零二次變分的特征。通過領先 —— 滯后變形得到的路徑,并計算其簽名,就可以很好的捕捉到原始價格序列的二次變分。好了,現(xiàn)在我們已經(jīng)萬事俱備了:對于一個投資品價格序列,首先應用領先 —— 滯后變形將其轉(zhuǎn)換為連續(xù)路徑;然后計算截斷簽名對該路徑降維;最后使用該簽名作為特征輸入到機器學習算法中建模。下面就來看一個簡單的應用。
4 應用舉例
本節(jié)介紹一個使用路徑簽名分析價格規(guī)律的例子。我們的目的并非構建一個策略,而是為了說明路徑簽名確實能夠反應出價格的某些內(nèi)在規(guī)律。A 股中有不同的板塊,雖然不同的板塊在絕大多數(shù)時候相關度非常高,但是在某些特定的時期還是存在明顯的分化。比如在 2013 年,創(chuàng)業(yè)板就走出了獨立行情。因此,我們猜測在這個時間內(nèi),屬于創(chuàng)業(yè)板的股票的價格和其他版塊的股票的價格就有不同的內(nèi)在規(guī)律。下面就來簡單驗證看看。
考慮來自上交所和創(chuàng)業(yè)板的 356 支股票(其中上交所 220 支,創(chuàng)業(yè)板 136 支),使用它們在 2013 年 1 月 1 日到 2014 年 1 月 1 日期間的日數(shù)據(jù)作為各自的原始價格序列(用各自的最大值進行標準化)。經(jīng)過領先 —— 滯后變形后得到各自的連續(xù)路徑,并選擇階數(shù) 3 計算路徑簽名(簽名維數(shù)為 14)。之后,將這 356 支股票打亂順序,隨機挑選 220 支作為訓練集,剩余 136 支作為測試集。我們希望通過訓練集構建一個分類模型。該分類模型使用訓練集中股票的路徑簽名作為輸入,以股票的出處(即上交所或創(chuàng)業(yè)板)作為標簽,挖掘輸入和標簽之間的關系:
其中 Y_i 是第 i 支股票的標簽,X_i 是第 i 支股票的原始價格序列,S(X_i) 是它的路徑簽名,f 則是我們希望通過機器學習擬合出來的函數(shù)。數(shù)學上的相關定理(Levin et al. 2016)指出,線性方程就可以很好的滿足我們的目標,因此在本例中我們采用線性回歸作為機器學習的算法。使用訓練集的 220 支股票建模。之后,使用該模型對測試集中的 136 支股票分類,并將模型分類結(jié)果和真實類別比較。該判斷該模型在樣本外的準確性為 84.56%。讓我們從準確率和召回率兩方面進一步評價。該模型在測試集上的分類結(jié)果如下表所示。
從上面的結(jié)果可知,對于猜上交所的預測來說,其準確率為 83.90%,召回率為 91.25%;對于猜創(chuàng)業(yè)板的預測來說,其準確率為 85.71%,召回率為 75%。可見,對于這兩類股票中,該模型在樣本外均有不錯的表現(xiàn)。這說明使用路徑簽名有效的捕捉了不同板塊中股票價格的內(nèi)在運動規(guī)律,它作為機器學習算法的輸入是合適的。
5 結(jié)語
本文介紹了粗糙路徑理論及其在分析投資品價格走勢方面的應用。對于一個成功的機器學習應用來說,找尋合適的輸入特征是最重要的一步。特征的維數(shù)不能過高,且需要最大可能的保存原始數(shù)據(jù)的信息。舉例來說,如果我們想建模對人的性別進行分類,我們可以采用任何和人相關的屬性,比如身高或者膚色。顯然,身高就比膚色更有效,因為男性較女性更高,但每個膚色中的男女比例都差不多。在當下流行人工智能卷積神經(jīng)網(wǎng)絡中,池化(pooling)就是為了減少特征的維數(shù)。在分類領域,有一個著名的概念叫做維數(shù)災難(curse of dimensionality):分類器的性能隨著特征個數(shù)的變化不斷增加,過了某一個值后,性能不升反降(下圖,橫坐標是維數(shù),縱坐標是分類器的表現(xiàn))。
對于分析價格序列來說,如何給數(shù)據(jù)降維自然是重中之重。粗糙路徑的截斷簽名通過有限個具備明確幾何意義的實數(shù),有效的捕捉了原始序列的信息、降低了特征的維數(shù),這是它對于后續(xù)機器學習建模的最大價值。
參考文獻
Levin, D., T. Lyons, and H. Ni (2016). Learning from the past, predicting the statistics for the future, learning an evolving system.?Working paper.
Lyons, T. (1998). Differential equations driven by rough signals.?Revista Matemática Iberoamericana 14(2), 215 – 310.
免責聲明:入市有風險,投資需謹慎。在任何情況下,本文的內(nèi)容、信息及數(shù)據(jù)或所表述的意見并不構成對任何人的投資建議。在任何情況下,本文作者及所屬機構不對任何人因使用本文的任何內(nèi)容所引致的任何損失負任何責任。除特別說明外,文中圖表均直接或間接來自于相應論文,僅為介紹之用,版權歸原作者和期刊所有。