寫給你的金融時間序列分析:初級篇

寫給你的金融時間序列分析:初級篇

來自專欄川流不息10 人贊了文章

1 前文回顧

前文——《寫給你的金融時間序列分析:基礎篇》——介紹了金融時間序列的核心特性:自相關性;說明金融時間序列分析的核心正是挖掘該時間序列中的自相關性。一個優秀的模型應該能夠有效的刻畫原始時間序列中不同間隔的自相關性;而衡量一個模型是否適合原始時間序列的標準正是考察原始值和擬合值之間的殘差序列是否近似的為白雜訊。

本篇是系列的第二篇,初級篇。白雜訊正是本文的內容之一,它是時間序列分析中最基本的模型。在它的基礎上延伸出的另一個基本模型便是隨機遊走。通常,白雜訊和隨機遊走被認為是用來分別描述投資品收益率和價格的最簡單模型。我們稍後會看到,對於收益率來說(特別是股指的收益率),白雜訊模型並不有效。

2 時間序列建模

本質上說講,時間序列模型是一個可以「解釋」時間序列中的自相關性的數學模型。

能夠解釋時間序列的自相關性在量化投資領域意義重大:

我們假設金融時間序列(比如投資品的收益率)存在未知的自相關性(當然也伴隨著雜訊),而這種自相關性體現了該時間序列某種內在的特性(比如趨勢、或者均值回復),而這種內在特性是可以延續的(至少在未來短時間內)。因此,我們希望通過對歷史數據的擬合找到一個合適的模型,使得它能最大程度的解釋該時間序列表現出來的自相關性。基於未來會重複歷史的假設,我們在統計上預期這種自相關性存在於未來的序列中,由於這個模型考慮了這種自相關性,因此它將會幫助我們來預測未來。

時間序列分析為我們研究投資品收益率的行為提供了有力的統計學框架。

在投資中,對收益率的預測顯然是非常有用的。如果我們能夠預測投資品的漲跌,那麼就能基於此構建一個交易策略;如果我們能夠預測收益率的波動率,那麼就可以進行風險管理(因此我們對時間序列的二階統計量——如方差——同樣感興趣)。

假設原始時間序列為 {y_t},模型擬合出來的序列為 {p_t},則殘差序列 {e_t} 定義為原始序列和擬合序列的差值:

e_t=y_t-p_t

如果模型很好的捕捉了原始時間序列的自相關性,那麼殘差序列 {e_t} 應該近似的為白雜訊,對任何非零間隔 k ,該殘差序列的自相關係數 
ho_k 都應該在統計意義上不顯著的偏離 0 當然,這僅僅是我們說該模型是個優秀模型的充分條件,因為一個好模型最關鍵的還是能產生賺錢的交易信號。因此,模型的檢驗最終還要看它在樣本外預測的準確性。

時間序列建模的過程可以總結如下:

對於一個時間序列,我們總是希望首先畫出它的相關圖來看看它存在什麼樣的自相關性。基於對其自相關性的認知,第二步則是選擇合適的模型,比如 AR、MA 或者 ARMA 模型,甚至於更高級對波動率建模的 GARCH 模型等。選定模型後,接下來便需要優化模型的參數,以使其儘可能解釋時間序列的自相關性。在這一步,我們通過對殘差進行自相關性分析來判斷模型是否合適。在這方面,Ljung–Box 檢驗是一個很好的方法,它同時檢驗給殘差序列各間隔的自相關係數是否顯著的不為 0。在選定模型參數之後,仍需定量評價該模型在樣本外預測的準確性。畢竟,對於樣本內的數據,錯誤的過擬合總會得到「優秀」的模型,但它們往往對樣本外數據的預測效果很差。因此,只有樣本外預測的準確性才能客觀的評價模型的好壞。如果模型的準確性較差,這說明該模型存在缺陷,無法充分捕捉原序列的自相關性。這時必須考慮更換模型。這就構成了上述步驟的反饋迴路,直到最終找到一個既能解釋原時間序列自相關性,又能在樣本外有不錯的準確性的模型。之後,該模型將被用來產生交易型號並構建量化投資策略。

接下來我們就來介紹一個最簡單的時間序列模型:白雜訊。

3 白雜訊

本文第一節指出,對於收益率來說,白雜訊(white noise)並不是一個十分有效的模型。那麼為什麼我們還要研究它呢?這是因為它有一個重要的特性,即序列不相關:一個白雜訊序列中的每一個點都獨立的來自某個未知的分布,它們滿足獨立同分布(independent and identically distributed)

一個(離散)白雜訊的定義如下:

考慮時間序列 {w_t:t = 1, cdots, n}。如果該序列的成分 w_t 滿足均值為 0 ,方差 sigma^2,且對於任意的 k ≥ 1,自相關係數 
ho_k 均為 0 ,則稱該時間序列為一個離散的白雜訊。

上面的定義並沒有假設 w_t 來自正態分布。事實上,白雜訊對分布沒有要求。w_t 來自正態分布時,該序列又稱為高斯白雜訊(Gaussian white noise)。

根據白雜訊的定義,一個白雜訊序列顯然滿足平穩性要求。它的均值和二階統計量為:

egin{array}{rll} mu_w&=&0\\ 
ho_k&=&left{ egin{array}{rll} 1&mbox{if}&k=0\ 0&mbox{if}&k
e 0 end{array} 
ight. end{array}

我們已經多次強調,當一個模型很好的捕捉了原始時間序列的自相關性,它的殘差序列就應該沒有任何(統計意義上顯著的)自相關性了。換句話說,一個優秀模型的殘差序列應該(近似)為一個白雜訊。因此,使用白雜訊序列的性質可以幫助我們確認我們的殘差序列中沒有任何相關性了,一旦殘差序列沒有相關性便意味著模型是原始時間序列的一個良好的擬合。

在白雜訊模型中,唯一的參數就是方差 sigma^2。這個參數可以通過歷史數據估計得到。在本系列的第一篇文章中,我們曾給出了一個白雜訊序列的相關圖(如下),該序列由標準正態分布生成(因此為高斯白雜訊),共 500 個觀測值。可以看到,對圖中顯示的間隔 k 的取值,對所有 k ≥ 1 均有自相關係數在統計上等於 0

4 隨機遊走

將白雜訊模型進行一步延伸,便得到隨機遊走(random walk)模型,它的定義如下:

對於時間序列 {x_t},如果它滿足 x_t=x_{t-1}+w_t,其中 w_t 是一個均值為 0 、方差為 sigma^2 的白雜訊,則序列 {x_t} 為一個隨機遊走。

由定義可知,在任意 t 時刻的 x_t 都是不超過 t 時刻的所有歷史白雜訊序列的總和,即:

x_t=w_t+w_{t-1}+w_{t-2}+cdots+w_{0}

隨機遊走的序列均值和方差為:

egin{array}{rll} mu_{x_t}&=&0\\ mbox{Var}(x_t)&=&mbox{Var}(w_t)+mbox{Var}(w_{t-1})+cdots+mbox{Var}(w_0)\ &=&t	imesmbox{Var}(w_t)\ &=&tsigma^2 end{array}

雖然均值不隨時間 t 改變,但是由於方差是 t 的函數,因此隨機遊走不滿足穩定性。隨著 t 的增加, x_t 的方差增大,說明其波動性不斷增加。對於任意給定的 k ,通過以下推導給得出隨機遊走的自協方差:

egin{array}{rll} mbox{Cov}(x_t,x_{t+k})&=&mbox{Cov}(x_t,x_t+w_{t+1}+cdots+w_k)\ &=&displaystylembox{Cov}(x_t,x_t)+sum_{i=t+1}^kmbox{Cov}(x_t,w_i)\ &=&mbox{Cov}(x_t,x_t)+0\ &=&tsigma^2 end{array}

上述推導中使用了獨立隨機變數的方差可加性。有了自協方差和方差,便可以方便的求出隨機遊走的自相關函數:

egin{array}{rll} 
ho_k(t)&=&displaystylefrac{mbox{Cov}(x_t,x_{t+k})}{sqrt{mbox{Var}(x_t)}sqrt{mbox{Var}(x_{t+k})}}\ &=&displaystylefrac{tsigma^2}{sqrt{tsigma^2}sqrt{(t+k)sigma^2}}\ &=&displaystylefrac{1}{sqrt{1+k/t}} end{array}

顯然,自相關係數既是時間 t 又是間隔 k 的函數。 
ho 的表達式說明,對於一個足夠長的隨機遊走時間序列( t 很大),當考察的自相關間隔 k 很小時,自相關係數近似為 1 這是隨機遊走的一個非常重要的特性,不熟悉它往往容易造成不必要的錯誤。

舉個例子。我們通常假設股價的對數收益率符合正態分布,因此股價對數是一個布朗運動(隨機遊走的一種特殊形式)。如果當前的(對數)股價是 x_t,由隨機遊走的特性可知, t+1 時刻的股價的條件期望為 mbox{E}[x_{t+1} | x_t] = x_t,即我們對下一時點的股價的最好的猜測就是當前的價格。隨機遊走是一個鞅(martingale)。

假如我們有一個預測股價的模型,而該模型就是用 t 時刻的股價作為對 t+1 時刻的股價的預測,則該模型的預測值和實際值之間的相關係數就等於股價序列的間隔為 1 的自相關係數。如果股價近似的為隨機遊走,那麼由它的性質可知,間隔為 1 的自相關係數非常接近 1 。因此我們的股價預測模型——用今天的價格作為明天的價格的預測——的預測值和實際值之間的相關係數也非常接近 1 。這會給我們造成錯覺:這個模型相當準確。不幸的是,這個模型猜測的收益率在任何時刻都為 0 ,因此它對於我們構建交易信號毫無作用。

我看到過無數的學術論文(大多是碩士論文)中,針對投資品價格本身構建自回歸模型。獨立變數就包括歷史價格,用它們和其他一些基本面或宏觀經濟數據來預測下一個交易日的股價。從上面的分析可知,這樣的模型將會「精準的毫無用處」,因為回歸模型中歷史價格的係數之和將會非常接近 1

任何價格序列的自回歸模型都是耍流氓。

利用本文第三節例子中的白雜訊序列,便可以構建一個人工隨機遊走序列的例子。它的軌跡如下圖所示。

不出意外,當間隔 k 相對於時間序列的長度很小時,它的自相關係數(下圖)非常接近 1 ,這源自隨機遊走的性質。不要忘了,隨機遊走是對股價的對數建模。因此,這種自相關性對於基於收益率預測的投資策略並沒有幫助。

事實上,如果(對數)股價嚴格的符合隨機遊走,那麼該時間序列的方差將會隨時間線性增長。這說明,長期來看它將呈現出巨大的波動。下圖為來自同一個分布的 15 條隨機遊走的軌跡。隨著時間的推進,這些軌跡上對應觀測值的波動越來越大,充分的展現出隨機性。

5 用白雜訊對收益率建模

如果股票的對數收益率為白雜訊,那麼它的自相關係數應該在任何非零的間隔上都在統計意義上等於零。下面我們就來看看真實的股票收益率是否滿足這一點。為此,考慮一支個股(萬科)和一個股指(上證指數)。

以日頻為例,通過交易日的復盤後收盤價可以算出對數收益率:

r_t=ln x_t-ln x_{t-1}

首先來看看萬科,當考察期為過去 10 年時,萬科的對數收益率的相關圖為:

上圖指出,在間隔為 24 時,該收益率序列表現出了統計意義上顯著的相關性。當然,由於圖中的藍色區域僅僅是 95\% 的置信區間,因此僅僅根據隨機性也很可能出現在一個或者兩個間隔上的自相關係數處於置信區間之外的情況。因此,根據上面的結果,我們並不能一定就說白雜訊不是萬科收益率的一個適當的模型。

如果我們把考察的窗口縮短到過去 5 年,則萬科的對數日收益率序列的相關圖變為:

k = 1,2,3,4 以及 14 的時候,自相關係數都超過了置信區間,即在 5\% 的顯著性水平下不為零。我們無法再無視這樣的結果而把它們都歸結於隨機性。該相關圖清晰地說明白雜訊不能有效的解釋收益率序列中的自相關性。

對於上證指數,這種結論則更加明顯。無論是考察 10 年還是 5 年的窗口,上證指數的對數收益率均在不同的間隔上表現出了顯著的自相關(下圖),且它比個股的自相關性更加顯著。

這個結果說明上證指數的對數收益率序列無法用白雜訊來建模。更有意思的是,當 k 較小或者較大時,上證指數的收益率均表現出了自相關性,這說明它既有短記憶又有長記憶。

6 下文預告

本文的分析引出如下的結論:

無論對於個股或是指數,它們的收益率序列中都存在某種自相關性,不滿足白雜訊模型。

因此,我們必須考慮更加高級的時間序列模型來對自相關性建模。在這方面,自回歸模型(AR)和滑動平均模型(MA),以及它們二者的組合 —— 自回歸滑動平均模型(ARMA) —— 都是非常有力的工具。它們將是本系列下一篇的內容。

原創不易,請保護版權。如需轉載,請聯繫獲得授權,並註明出處,謝謝。已委託「維權騎士」(維權騎士_免費版權監測/版權保護/版權分發) 為進行維權行動。


推薦閱讀:

海龜交易-唐奇安通道法回測結果
鋼板厚不一定強度大,車輕反而更安全!詳解汽車輕量化技術
【沒事測一測】Gamma Scalping應用
Python 做證券指數三種策略分析 - 最高收益,最大規模,最小風險
壘土投資沈天瑞博士:量化不論出身,興趣是最好的老師

TAG:數據挖掘 | 時間序列分析 | 量化 |