您當前的位置:首頁 > 寵物

【討論組】多因子模型和barra模型

作者:由 張天平 發表于 寵物時間:2020-04-06

多因子模型有非常多種形式,今天介紹兩種:fundamental factor model和economical factor model。雖然這兩種model形式上都是linear regression,但是本質上有很大區別。我們可以把factor models寫成如下形式:

r_i=\alpha_i+\beta_{i1}f_1+\cdots+\beta_{ik}f_k+\epsilon_i \\

其中

r_i

是第

i

支股票的return,

\beta

是factor exposure,

f

是factor premium,

\epsilon_i

滿足

E[\epsilon_i]=0

。 對於fundamental factor model來說,factor exposure是已知的,factor premium是未知的(需要透過迴歸確定)。舉個例子,最近銀行行業行情較好,那麼工商銀行在銀行這個因子上的exposure是1,同時銀行這個因子帶來的收益(premium)可以用迴歸來得到。想要獲得超額收益就需要承擔風險,而風險可以表示為

risk=nondiversifiable\  risk + diversifiable\ risk \\

其中diversifiable risk可以透過diversification來消除。

對於economical factor model來說,factor exposure是未知的,factor premium是容易計算的。舉個例子,比如股票size的factor premium,就是先根據股票的size把股票池分成若干組,每一組作為一個portfolio,然後根據long-short portfolio(比如long size最大的那一組,short size最小的那一組)的收益作為factor premium。這裡的factor exposure可以根據pooled cross-sectional regression確定。cross-sectional regression就是一個時間節點的所有股票資料做一次regression,pooled就是多個時間節點的所有股票資料一起拿來做一次regression。

在前面兩次討論會,我們提到了CAPM模型,其中估計covariance matrix是重要的一步。用傳統方法估計covariance matrix並不容易。假設我們需要估計3000支股票之間的covariance matrix,並且我們擁有100個return的資料點(每個return是用20天的資料計算的,這樣就要2000個交易日的資料),那麼我們的樣本矩陣為

X\in \mathcal{R}^{3000\times100}

,估計的covariance matrix為

\Sigma=X^TX

。不合理之處在於:1。 covariance matrix的一般是滿秩的,但是這裡估計的秩上限就是100; 2。 我們需要估計的引數遠超過樣本的數量。所以很難用傳統的方法準確估計covariance matrix,常見的方法是用barra模型進行估計。

barra模型是業界應用非常廣泛的一個fundamental factor model,它本身做得非常細緻,有一本比較詳盡的handbook【引用】,對於風險的管控非常的到位,對於要操盤大量資金的投資經理來說非常有用。接下來我們來學習barra模型。

barra首先進行了一個factor return estimation:

【討論組】多因子模型和barra模型

我們可以透過factor covariance matrix和specific risk對covariance matrix進行估計:

【討論組】多因子模型和barra模型

接下來問題就來到了如何估計factor covariance matrix以及specific risk的估計。對於factor covariance matrix的估計,最簡單的方法就是用過去的factor returns的樣本進行估計。用這種方法進行估計需要基於一個假設,那就是factors之間的相關性是不變的。然而有證據表明,factor returns之間的相關性是不斷變化的。因此,我們在估計的過程中,對於近期的樣本點需要分配更大的權重。

我們用exponential weighting來做這件事。假設60個月前的樣本只能分配到近期樣本一半的權重,令

T

為當前時刻的時間點,

t=1,2,3,...,T-1,T

為過去任意時刻的時間點,以及

\delta=.5^{(1/60)}

。對於

t

時刻的樣本,分配到的權重為

\delta^{T-t}

,這樣,60個月前的樣本分配到一半的權重,120個月前的樣本分配到四分之一的權重。60也可以被稱為“半衰期”。在這個例子中,60是隨機取的,你可以透過實驗來選定合適的“半衰期”。

除了上述步驟,barra還介紹了一種方法,利用計算市場波動率(market volatility)來對factor covariance matrix進行精調使其更加準確。有大量的證據表明,市場波動率是可以進行預測的,我們通常會利用GARCH的變種對其進行預測:

【討論組】多因子模型和barra模型

上述就是GARCH(1,1)模型。然而,GARCH(1,1)模型不能捕捉到一種市場裡常見的現象,那就是高波動率之後通常會在一段時間內出現正常值以下的returns。因此,我們可以利用extended GARCH來對市場波動率進行建模:

【討論組】多因子模型和barra模型

在計算出市場波動率之後,我們可以對factor covariance matrix進行調整,使得利用factor covariance matrix計算出的market portfolio的波動率和利用GARCH模型計算出的市場波動率一致。

接下來,我們的任務變成了如何計算specific risk。回顧一下,我們的模型是:

【討論組】多因子模型和barra模型

因此我們需要計算

Std(\widetilde{u}_i)

,在barra中,specific risk被分解為兩部分的乘積:

【討論組】多因子模型和barra模型

首先,我們對

S_t

進行建模:

【討論組】多因子模型和barra模型

【討論組】多因子模型和barra模型

這個簡單的模型可以捕捉mean-reversion,也可以捕捉到trends,以及市場上漲時的低average specific risk和市場下跌時的高average specific risk。

接下來,我們對

V_{it}

進行建模,並利用pooled cross-sectional regression對引數進行估計:

【討論組】多因子模型和barra模型

最終的specific risk的預測可以寫成如下形式:

【討論組】多因子模型和barra模型

其中scaling coefficient是為了矯正

\hat{S}_t

的偏差,計算方法如下:根據capitalization的分位數把securities分組,對於每一組,我們用上一步的specific risk的值和這一步的specific risk的預測值來計算bias,然後另平均bias為0來計算scaling coefficient的值。

參考文獻

[1] Qian E E, Hua R H, Sorensen E H。 Quantitative equity portfolio management: modern techniques and applications[M]。 CRC Press, 2007。

[2]

http://www。

alacra。com/alacra/help/

barra_handbook_US。pdf

標簽: factor  covariance  Matrix  risk  specific