寫給你的金融時間序列分析:基礎(chǔ)篇
發(fā)布時間:2017-05-17 | 來源: 川總寫量化
作者:石川
摘要:本文為系列第一篇:介紹金融時間序列的特性和進行時間序列分析的目的;解釋時間序列分析中的核心概念:自相關(guān)性。
1 引言
時間序列分析(time series analysis)是量化投資中的一門基本技術(shù)。時間序列是指在一定時間內(nèi)按時間順序測量的某個變量的取值序列。比如變量是股票價格,那么它隨時間的變化就是一個時間序列;同樣的,如果變量是股票的收益率,則它隨時間的變化也是一個時間序列。時間序列分析就是使用統(tǒng)計的手段對這個序列的過去進行分析,以此對該變量的變化特性建模、并對未來進行預測。
時間序列分析試圖通過研究過去來預測未來。
時間序列分析在工程學、經(jīng)濟學、氣象學、金融學等眾多領(lǐng)域有著廣泛的應(yīng)用。在金融學領(lǐng)域,介紹時間序列分析的優(yōu)秀書籍層出不窮。其中最家喻戶曉之一的要數(shù)美國芝加哥大學商學院 Ruey S. Tsay 教授撰寫的金融時間序列分析——Analysis of Financial Time Series(下圖,該書也同時有中文版)。
金融時間序列分析要求使用者具備一定的高等數(shù)學知識。特別是其中一些高級的模型,如分析波動率的 ARCH/GARCH 模型、極值理論、連續(xù)隨機過程、狀態(tài)空間模型等都對使用者的數(shù)學水平有著極高的要求。因此,在很多人眼中,金融時間序列分析無疑帶著厚厚的面紗,令人望而卻步。然而,如果學習的目的是為了解金融時間序列的特點、熟悉金融時間序列分析的目的、并使用線性但非常實用的模型(比如 ARMA 模型)對金融時間序列進行預測并以此制定量化策略,那么只要具備簡單的統(tǒng)計學基礎(chǔ),就完全能夠?qū)崿F(xiàn)這些目標。
出于這個目的,從本周開始,量化核武研究這個專題下將推出四篇文章,深入淺出的介紹金融時間序列分析的相關(guān)知識。該系列不會涉及上面提到的那些高級模型;相反的,本系列以對股票收益率建模并構(gòu)建投資策略為目標,按部就班的把實現(xiàn)這個目標所需要的每一塊“積木”清晰地呈獻給讀者。這四篇文章的結(jié)構(gòu)為:
基礎(chǔ)篇(本文):介紹金融時間序列的特性和進行金融時間序列分析的目的;解釋時間序列分析中的核心概念:序列相關(guān)性(又稱自相關(guān)性)。
?
初級篇:說明時間序列建模的過程;介紹時間序列分析中的最基本模型:白噪聲和隨機游走。
進階篇:介紹時間序列分析中常用的線性模型:AR、MA、ARMA 等。
應(yīng)用篇:利用 ARMA 對上證指數(shù)收益率序列建模,并以此產(chǎn)生交易信號、構(gòu)建投資策略,以此展示時間序列分析在量化投資領(lǐng)域的應(yīng)用。
本系列文章會避免過多羅列晦澀難懂的大數(shù)學(但會涉及必要的數(shù)學知識),希望帶你走入金融時間序列分析的大門,為你今后學習更高級的模型奠定一些基礎(chǔ)。這是寫給你的金融時間序列分析。
2 金融時間序列分析
為了避免下文中涉及的概念過于抽象,我們假設(shè)本文討論的金融時間序列為投資品的收益率序列。
金融時間序列分析考慮的是金融變量(比如投資品收益率)隨時間演變的理論和實踐。任何金融時間序列都包含不確定因素,因此統(tǒng)計學的理論和方法在金融時間序列分析中至關(guān)重要。金融資產(chǎn)的時間序列常被看作是未知隨機變量序列隨時間變化的一個實現(xiàn)。通常假設(shè)該隨機變量序列僅在時間軸上的離散點有定義,則該隨機變量序列就是一個離散隨機過程。比如股票的日收益率就是離散的時間序列。在量化投資領(lǐng)域,我們的目標是通過統(tǒng)計手段對投資品的收益率這個時間序列建模,以此推斷序列中不同交易日的收益率之間有無任何特征,以此來預測未來的收益率并產(chǎn)生交易信號。
一個時間序列可能存在的特征包括以下幾種:
趨勢:趨勢是時間序列在某一方向上持續(xù)運動(比如牛市時股市每天都在上漲,股票收益率持續(xù)為正;熊市時股市每天都在下跌,股票收益率持續(xù)為負)。趨勢經(jīng)常出現(xiàn)在金融時間序列中,特別是大宗商品價格;許多商品交易顧問(CTA)基金在他們的交易算法中都使用了復雜的趨勢識別模型。
季節(jié)變化:許多時間序列中包含季節(jié)變化。在金融領(lǐng)域,我們經(jīng)??吹缴唐穬r格的季節(jié)性變化,特別是那些與生長季節(jié)或溫度變化有關(guān)的商品,比如天然氣。
序列相關(guān)性:金融時間序列的一個最重要特征是序列相關(guān)性(serial correlation),又稱為自相關(guān)性(autocorrelation)。以投資品的收益率序列為例,我們會經(jīng)常觀察到一段時間內(nèi)的收益率之間存在正相關(guān)或者負相關(guān)。此外,波動聚類(volatility clustering)也是一種序列相關(guān)性,它意味著高波動的階段往往伴隨著高波動的階段出現(xiàn)、低波動的階段往往伴隨著低波動的階段出現(xiàn),這在量化投資中尤為重要。比如下圖為 2001 年到 2017 年上證指數(shù)日收益率的標準差,從中可以清晰的看到波動聚類。
隨機噪聲:它是時間序列中除去趨勢、季節(jié)變化和自相關(guān)性之后的剩余隨機擾動。由于時間序列存在不確定性,隨機噪聲總是夾雜在時間序列中,致使時間序列表現(xiàn)出某種震蕩式的無規(guī)律運動。
量化投資的交易者的目標是利用統(tǒng)計建模來識別金融時間序列中潛在的趨勢、季節(jié)變化和序列相關(guān)性。利用一個好的模型,金融時間序列分析的主要應(yīng)用包括:
預測未來:為了成功交易,我們需要在統(tǒng)計上“準確”預測未來的投資品價格或者收益率。
?
序列模擬:一旦發(fā)現(xiàn)了金融時間序列的統(tǒng)計特征,我們可以使用它們來模擬時間序列并進行場景分析。這對于估計交易次數(shù)、期望交易成本、期望收益率至關(guān)重要,從而最終定量的計算一個策略或者投資組合的風險分布和盈利水平。
上文說到,金融時間序列的關(guān)系中,最重要的當屬自相關(guān)性。這是因為我們很容易從一個時間序列中識別出趨勢以及季節(jié)變換。當除去這些關(guān)系后,剩下的時間序列往往看來十分隨機。然而對于金融時間序列,比如投資品的收益率,看似隨機的時間序列中往往存在著驚人的自相關(guān)。對自相關(guān)建模并加以利用能夠大幅提高交易信號的準確性。配對交易的均值回復策略就是這么一個例子。均值回復策略利用一對投資品價差序列的負相關(guān)性進行投資,產(chǎn)生做多或者做空的交易信號,實現(xiàn)盈利。
金融時間序列分析的核心就是挖掘該時間序列中的自相關(guān)性。
本文的下面幾節(jié)就來介紹如何計算時間序列的自相關(guān)性。為此,首先來看兩個基礎(chǔ)概念:協(xié)方差和相關(guān)系數(shù)。之后會談及時間序列的平穩(wěn)性,它是時間序列分析的一個必要前提。最后介紹時間序列的自相關(guān)性。
3 協(xié)方差和相關(guān)系數(shù)
本節(jié)介紹概率論中的基礎(chǔ)概念:協(xié)方差和相關(guān)系數(shù)。熟悉它們的讀者可跳過。假設(shè)兩個隨機變量 X 和 Y 滿足未知的概率分布(可以是同分布也可以是不同的分布)。E[] 為求解數(shù)學期望的運算符。X 和 Y 的總體協(xié)方差(population covariance)為:
其中,μ_X 和 μ_Y 分別為 X 和 Y 的總體均值(population mean)。
協(xié)方差告訴我們兩個隨機變量是如何一起移動的。
在實際中,由于總體的概率分布未知,我們只能通過 X 和 Y 的觀測值來計算樣本均值(sample mean)。假設(shè)我們各有 X 和 Y 的觀測值 n 個,則它們的樣本協(xié)方差(sample covariance)為:
其中,\bar X 和 \bar Y 為 X 和 Y 的樣本均值。上面公式中右側(cè)之所以除以 n - 1 而非 n 的原因是,這么做可以保證樣本協(xié)方差是(未知)總體協(xié)方差的一個無偏估計(unbiased estimator)。假設(shè)我們隨機生成兩個隨機變量 X 和 Y 的序列,它們的散點圖如下。
按照上面的公式,X 和 Y 的樣本協(xié)方差為 893.215203。它有什么意義呢?在回答這個問題之前,讓我們再來看另外兩個變量,我們稱之為 X100 和 Y100。它們分別定義為 X100 = 100 * X 和 Y100 = 100 * Y。可見,它們僅僅是 X 和 Y 各乘以 100 得到的。X100 和 Y100 的樣本協(xié)方差為 8932152.03,這是 X 和 Y 的協(xié)方差的 10000 倍。然而,如果僅僅因此就得出 X100 和 Y100 的相關(guān)性高于 X 和 Y 的相關(guān)性就大錯特錯了。事實上,由于 X100 和 Y100 是由 X 和 Y 分別乘以 100 得到的,因此它們之間的相關(guān)性顯然和 X 與 Y 的相關(guān)性相同。
上面這個例子說明使用協(xié)方差衡量變量相關(guān)性的致命缺點:協(xié)方差是有量綱的,因此它的大小受隨機變量本身波動范圍的影響。在上個例子中,當兩個隨機變量的波動范圍擴大 100 倍后,它們的協(xié)方差擴大了 10000 倍。因此,人們希望使用某個和協(xié)方差有關(guān),但是又是無量綱的測量來描述兩個隨機變量的相關(guān)性。最簡單的做法就是用變量自身的波動對協(xié)方差進行標準化。相關(guān)系數(shù)(correlation 或者 correlation coefficient)便由此得來。
令 ρ 表示 X 和 Y 的總體相關(guān)系數(shù)(population correlation),它的定義為:
其中 σ_X 和 σ_Y 分別為 X 和 Y 的總體標準差(population standard deviation)。通過使用 X 和 Y 的標準差對它們的協(xié)方差歸一化,ρ 的取值范圍在 -1 到 +1 之間,即 [-1, +1]:
ρ(X, Y) = 1 表示 X 和 Y 之間存在確切的線性正相關(guān);
ρ(X, Y) = 0 表示 X 和 Y 之間不存在任何線性相關(guān)性;
ρ(X, Y) = -1 表示 X 和 Y 之間存在確切的線性負相關(guān)。
值得一提的是,相關(guān)系數(shù)僅僅刻畫 X 和 Y 之間的線性相關(guān)性;它不描述它們之間的(任何)非線性關(guān)系。在實際中,由于總體的概率分布未知,我們只能通過 X 和 Y 的觀測值來計算 X 和 Y 的樣本相關(guān)系數(shù)(sample correlation):
其中,sd(X) 和 sd(Y) 分別為 X 和 Y 的樣本標準差(sample standard deviation)。在上面的例子中,無論考慮 X 和 Y 還是 X100 和 Y100(即無論如何縮放 X 和 Y),它們的相關(guān)系數(shù)都是 0.894655,這和我們的預期相符。由于這個數(shù)值非常接近 1,它意味著 X 和 Y 之間存在很強的線性正相關(guān)。
4 平穩(wěn)性
平穩(wěn)性(stationarity)是時間序列分析的基礎(chǔ)。
為了通俗的理解平穩(wěn)性,來看下面這個類比(這是我能想到的最好的例子)。假如某股票的日收益率由轉(zhuǎn)輪盤賭決定:轉(zhuǎn)到不同數(shù)字就對應(yīng)不同的收益率。在每個時刻 t,我們都轉(zhuǎn)同一個輪盤賭并確定收益率 r_t。只要這個輪盤不變,那么對于所有的 t,r_t 的概率分布都是一樣的、不隨時間變化。這樣的時間序列 {r_t} 就是(嚴格)平穩(wěn)的。如果從某個時刻 t’ 開始,輪盤發(fā)生了變化(比如輪盤上面的數(shù)字變多了),那么顯然從 t ≥ t’ 開始,r_t 的分布就便隨之發(fā)生變化,因此時間序列 {r_t}?就不是平穩(wěn)的。
在數(shù)學上,時間序列的嚴平穩(wěn)(strictly stationary)有著更精確的定義:它要求時間序列中任意給定長度的兩段子序列都滿足相同的聯(lián)合分布。這是一個很強的條件,在實際中幾乎不可能被滿足。因此我們還有弱平穩(wěn)(weakly stationary)的定義,它要求時間序列滿足均值平穩(wěn)性(stationary in mean)和二階平穩(wěn)性(secondary order stationary)。
如果一個時間序列 {r_t}?滿足以下兩個條件,則它是弱平穩(wěn)的:
1. 對于所有的時刻 t,有 E[r_t] = μ,其中 μ 是一個常數(shù)。
2. 對于所有的時刻 t 和任意的間隔 k,r_t 和 r_(t-k) 的協(xié)方差 σ(r_t, r_(t-k)) = γ_k,其中 γ_k 與時間 t 無關(guān),它僅僅依賴于間隔 k。特別的,當 k = 0 時,這個特性意味著 σ(r_t, r_t) —— r_t 的方差——不隨時間變化,等于一個與時間 t 無關(guān)的常數(shù) γ_0,這稱為方差平穩(wěn)性(stationary in variance)。
弱平穩(wěn)假設(shè)對于分析投資品收益率至關(guān)重要。
為了解釋這一點,來看一個例子。假設(shè)我們想知道 2017 年 5 月 16 日這天上證指數(shù)收益率的均值是多少,而我們的猜想是它來自一個未知的分布。也許你會馬上說“查一下 Wind 不就知道了?上證指數(shù)那天的收益率是 0.74%”。注意,0.74% 這個數(shù)值僅僅是那天上證指數(shù)未知收益率分布的一個實現(xiàn)(realization)!它不是均值,因此從時間序列分析的角度來說僅僅知道 0.74% 遠遠不夠。
對于一般的未知概率分布,只要通過進行大量重復性實驗,就可以有足夠多的獨立觀測點來進行統(tǒng)計推斷(計算均值和方差這些統(tǒng)計量)。按照這個思路,我們必須把 2017 年 5 月 16 日這一天經(jīng)歷許多遍,得到許多個那天的收益率觀測值,然后用這些觀測值計算出收益率的均值。不幸的是,歷史只發(fā)生一次,時間也一去不復返,我們只能實實在在的經(jīng)歷一遍 2017 年 5 月 16 日,只能得到一個收益率的觀測點,即 0.74%。因此這個方法對于金融數(shù)據(jù)是行不通的。
然而,如果我們假設(shè)上證指數(shù)的收益率序列滿足弱平穩(wěn),就柳暗花明了。根據(jù)弱平穩(wěn)假設(shè),上證指數(shù)的日收益率序列 {r_t}?的均值是一個與時間無關(guān)的常數(shù),即 E[r_t] = μ。這樣便可以利用一段時間的歷史數(shù)據(jù)來計算出日收益率的均值。比如我們可以對上證指數(shù)在 2017 年交易日的日收益率序列取平均,把它作為對總體均值 μ 的一個估計。根據(jù)弱平穩(wěn)性,該平均值也正是 2017 年 5 月 16 日的收益率均值。
同樣的道理,在弱平穩(wěn)的假設(shè)下,可以根據(jù)歷史數(shù)據(jù)方便的對時間序列的諸多統(tǒng)計量進行推斷。在金融文獻中,也通常假定投資品收益率序列是弱平穩(wěn)的。只要有足夠多的歷史數(shù)據(jù),這個假定可以用實證方法驗證。比如,我們可以把數(shù)據(jù)分成若干個子集,并分別計算每個子集的統(tǒng)計量,然后通過統(tǒng)計的手段檢驗這些來自不同子集的統(tǒng)計量的一致性。
需要說明的是,即便是弱平穩(wěn)性,有時金融數(shù)據(jù)也無法滿足。回想第二節(jié)中那個上證指數(shù)日收益率標準差的圖,它清晰的說明,在 2001 到 2017 年之間,標準差是隨時間變化的。這意味著在這段時間內(nèi),收益率序列不滿足二階平穩(wěn)性。對于此,我們可以通過更復雜的非線性模型對波動率建模(比如 GARCH),又或者可以把時間段細分為更短的區(qū)間,使得在每個小區(qū)間內(nèi)的收益率序列盡量滿足弱平穩(wěn)性。
有了上一節(jié)和本節(jié)的內(nèi)容做鋪墊,下面我們就可以聊聊時間序列的自相關(guān)性了。
5 自相關(guān)性和自相關(guān)函數(shù)
假設(shè)我們有弱平穩(wěn)的投資品收益率序列 {r_t}。自相關(guān)性考察的是 t 時刻的收益率 r_t 和距當前任意間隔 k 時刻的收益率 r_(t-k) 之間的線性相依關(guān)系(k 的取值是所有 ≥ 0 的整數(shù))。由于 r_t 和 r_(t-k) 來自同一個時間序列,因此我們將第三節(jié)中的相關(guān)系數(shù)的概念應(yīng)用到 r_t 和 r_(t-k) 上,便推廣出自相關(guān)系數(shù)(autocorrelation)。
定義:r_t 和 r_(t-k) 的相關(guān)系數(shù)稱為 r_t 的間隔為 k 的自相關(guān)系數(shù)。
在弱平穩(wěn)假設(shè)下,這個間隔為 k 的自相關(guān)系數(shù)與時間 t 無關(guān),而僅僅與間隔 k 有關(guān),由 ρ_k 表示。由第三節(jié)中介紹的相關(guān)系數(shù)的定義可知:
上面的推導中用到了弱平穩(wěn)的性質(zhì),即協(xié)方差和方差平穩(wěn)性(換句話說,二階平穩(wěn)性)。從這個定義不難看出,當 k = 0 時有:
這表示 r_t 的間隔為 0 的自相關(guān)系數(shù)恒定為 1。此外,ρ_k 還有如下的性質(zhì):
和第三節(jié)一樣,上面定義的 ρ_k 是總體的統(tǒng)計特性。實際中,我們?nèi)匀恢荒芡ㄟ^有限的樣本數(shù)據(jù)來計算樣本的統(tǒng)計特性。令 ζ_k 為與 ρ_k 對應(yīng)的樣本統(tǒng)計量,則有:
上式中,c_k 是 r_t 的間隔為 k 的樣本自協(xié)方差(sample autocovariance of lag k);ζ_k 為 r_t 的間隔為 k 的樣本自相關(guān)系數(shù)(sample autocorrelation of lag k)。如果把 ζ_k 看作是 k 的方程,則它通常被稱為樣本自相關(guān)方程(sample autocorrelation function;同樣的,ρ_k 為總體自相關(guān)方程),它刻畫了時間序列的重要特性。利用相關(guān)圖(correlogram)可以清晰地看到 ζ_k 是如何隨間隔 k 變化的。下圖為兩個假想時間序列的相關(guān)圖。它們呈現(xiàn)出完全不同結(jié)構(gòu)的自相關(guān)性。事實上,第一個相關(guān)圖的時間序列存在明顯的趨勢;而第二個相關(guān)圖的時間序列存在明顯的周期性。這兩個例子說明相關(guān)圖可以告訴我們很多時間序列的內(nèi)在特性。
金融時間序列的相關(guān)圖雖然遠沒有這兩個假象序列的相關(guān)圖這么有結(jié)構(gòu),但相關(guān)圖在我們對時間序列建模時至關(guān)重要。之前已經(jīng)說過,金融時間序列,特別是收益率序列,最重要的特性是一些不容易被發(fā)現(xiàn)的自相關(guān)性。(通常股票的收益率序列沒有季節(jié)性或者明顯的趨勢性;即便是弱趨勢也可以由自相關(guān)性反應(yīng)。)因此,拿來一個收益率序列,只要畫出相關(guān)圖,就可以檢測該序列在任何間隔 k 有無統(tǒng)計上顯著的自相關(guān)性。
對金融時間序列建模,最重要的就是挖掘出該序列中的不同間隔 k 的自相關(guān)性。相關(guān)圖可以幫助我們判斷模型是否合適。這是因為金融時間序列的特征中往往包括相關(guān)性和隨機噪聲。如果模型很好的捕捉了自相關(guān)性,那么原始時間序列與模型擬合的時間序列之間的殘差應(yīng)該近似的等于隨機噪聲。殘差序列自然也是一個時間序列,因此可以對它畫出相關(guān)圖。一個標準隨機噪聲的自相關(guān)滿足 ρ_0 = 1 以及 ρ_k = 0, k = 1, 2, 3, …,即對于任意不為 0 的間隔,隨機噪聲的自相關(guān)均為 0。下圖為一個隨機噪聲的相關(guān)圖(我們是用標準正態(tài)分布構(gòu)造了有 500 個點的隨機噪聲序列):
關(guān)于這個圖:
1. 顯然,間隔為 0 的自相關(guān)系數(shù)為 1;
2. 對于任意的 k ≥ 1,藍色的陰影區(qū)域為 95% 的置信區(qū)間。因此,自相關(guān)系數(shù)只要沒有超過藍色陰影區(qū)域,我們就無法在 5% 的顯著性水平下拒絕原假設(shè)(原假設(shè)為間隔為 k 的自相關(guān)系數(shù)為 0)。上圖的結(jié)果說明當 k 不為 0 時,隨機噪聲的自相關(guān)系數(shù)為 0。
因此,在評價對金融時間序列的建模是否合適時,我們首先找到原始時間序列和它的擬合序列之間的殘差序列;然后只要畫出這個殘差序列的相關(guān)圖就可以看到它是否含有任何模型未考慮的額外自相關(guān)性:
如果殘差的相關(guān)圖和上面這個圖相似,則可以認為殘差是一個隨機噪聲,而模型已經(jīng)很好的捕捉了原始時間序列中的自相關(guān)性;
如果殘差的相關(guān)圖體現(xiàn)了額外的自相關(guān)性,它們將為我們改進已有的模型提供依據(jù),因為這些額外的自相關(guān)說明已有模型沒有考慮原始時間序列在某些特定間隔上的自相關(guān)。
6 下文預告
作為金融時間序列分析系列的開篇,本文介紹金融時間序列的特性和進行金融時間序列分析的目的;并解釋時間序列分析中的核心概念:自相關(guān)性。對金融時間序列建模的核心就是捕捉該序列中不同間隔上的自相關(guān)性。相關(guān)圖可以清晰地刻畫任何一個時間序列在不同間隔的自相關(guān)性。
在下一篇中,我們將會從最簡單的白噪聲和隨機游走出發(fā),說明它們無法有效刻畫投資品收益率序列中體現(xiàn)出來的自相關(guān)性。這會促使我們提出更高級的模型,包括 AR,MA,以及 ARMA。這些模型背后的理論是什么?如何正確的挑選模型的參數(shù)以構(gòu)建最適當?shù)哪P停窟@些將會在本系列后面幾篇文章中探討。
免責聲明:入市有風險,投資需謹慎。在任何情況下,本文的內(nèi)容、信息及數(shù)據(jù)或所表述的意見并不構(gòu)成對任何人的投資建議。在任何情況下,本文作者及所屬機構(gòu)不對任何人因使用本文的任何內(nèi)容所引致的任何損失負任何責任。除特別說明外,文中圖表均直接或間接來自于相應(yīng)論文,僅為介紹之用,版權(quán)歸原作者和期刊所有。