多因子模型歸因分析
目錄
簡介
多因子模型歸因方法
基于凈值的歸因方法
基于持倉的歸因方法
簡介
本文主要詳細介紹怎么使用多因子模型對組合資產(chǎn)進行歸因分析年柠,歸因分析的內(nèi)容為收益歸因和風險歸因。
多因子模型歸因方法
上圖列出了由馬克維茨均值方差理論引出的三條路,其一為資產(chǎn)配置乎折,我們本文不涉及涧衙,其二為資本資產(chǎn)定價(CAMP)的一條路日矫,其三為套利定價理論(APT)的第三條路档痪。第二條路和第三條路為本文討論重點。
第二條和第三條路都是屬于多因子分析的范疇探越,第二條路是知道因子收益的時間序列狡赐,通過時間序列上的回歸去求因子暴露,為的是解釋個券收益的組成部分钦幔。第三條路是知道截面因子暴露去回歸截面上的因子收益枕屉,為的是挖掘有效因子,找到這個因子帶來的超額收益鲤氢。
使用多因子模型進行投資組合的歸因分析搀擂,也主要包括基于凈值的歸因方法和基于持倉的歸因方法兩大類西潘。基于凈值的歸因方法是走的第二條路哨颂,比較簡單喷市。基于持倉的歸因方法走的是第三條路咆蒿,比較復雜东抹。
兩者的區(qū)別主要表現(xiàn)在三個方面:
1蚂子、基于凈值的歸因方法是時間序列回歸沃测,基于持倉的歸因方法是截面回歸;
2食茎、基于凈值的歸因方法主要來自CAMP(資本資產(chǎn)定價)模型蒂破,基于持倉的歸因方法主要來自APT(套利定價)理論。
3别渔、基于凈值的歸因方法要求比較簡單附迷,數(shù)據(jù)較少且較容易獲取,僅需要組合的凈值數(shù)據(jù)以及因子收益序列即可進行分析哎媚。而基于持倉的歸因方法需要知道具體的組合權(quán)重喇伯、個股因子暴露等數(shù)據(jù),來確定組合的因子暴露拨与。
下面詳細介紹兩大類方法稻据。
在介紹兩個方法前,我們下面給出項目的框架如下圖:
基于凈值的歸因方法
基于凈值的歸因方法买喧,邏輯上很簡單捻悯,它來自資本資產(chǎn)定價模型,用所有因子收益的時間序列去回歸組合收益的時間序列淤毛。這樣做的目的是今缚,是把組合的收益分解在各個特定的因子上,認為組合或者個股的收益都可以被給定的特定因子收益加個股特質(zhì)收益來解釋低淡,解釋不了的部分直接扔給殘差姓言。這里要特別注意,此時特定因子收益在一個時間截面上是一個常數(shù)蔗蹋,對多所有股票都一樣事期,這與另一種方法基于持倉的歸因方法有本質(zhì)的區(qū)別。
基于這種方法纸颜,人們開發(fā)出的模型很多兽泣,如下:
1、Fama-French三因子模型
2胁孙、Carhart四因子
在 FF 三因子模型的基礎上唠倦,引入動量因子 UMD (高收益率股票組合與低收益率股票組合 收益率之差)
3称鳞、Fama五因子模型如下:
我們這里以Fama五因子模型為例,詳細介紹這種方法的實現(xiàn)稠鼻。
Fama五因子模型如下:
因為本文主要是項目實施前的參考文檔冈止,所以在此不介紹Fama五因子模型怎么得來的。只需要知道Fama五因子模型是上面公式候齿。
其中熙暴,
表示資產(chǎn) i 在時間 t 的收益率,
表示時間 t 的無風險收益率慌盯,
表示時間 t 的市場收益率周霉,
即為時間 t 的風險溢價,
為時間 t 的市值因子的模擬組合收 益率(Small minus Big)亚皂,
為時間 t 的賬面市值比因子的模擬組合收益率(High minus Low)俱箱,
為時間 t 的盈利因子的模擬組合收益率(Robust minus Weak),
為時間 t 的投資因子的模擬組合收益率(Conservative minus Aggressive)灭必,
為經(jīng)過正交化 調(diào)整的估值因子模擬組合收益率狞谱,其余各變量含義與三因子模型相同。
均為回歸待擬合系數(shù)播歼,??_{????} 為殘差項伶跷。
有了模型,下面我們具體去實現(xiàn)荚恶。
Fama五因子模型歸因分析
我們遵循機器學習項目的步驟撩穿,將Fama五因子模型歸因分析的實現(xiàn),歸結(jié)為以下流程谒撼。
數(shù)據(jù)準備>>數(shù)據(jù)預處理>>構(gòu)造Fama五因子>>數(shù)據(jù)分析>>回歸分析>>歸因分析
數(shù)據(jù)準備
(1) 股票池:全A股食寡,在每個時刻t均剔除ST、PT股票廓潜,剔除停牌及上市未滿一個月的股票抵皱,剔除 BP 值為負的股票;
(2) 時間參數(shù):2010年1月至2018年1月;
(3) 因子對應指標:
a) 市場因子指標:上證 指數(shù);
b) 規(guī)模因子指標:總市值 = 每股股價 × 發(fā)行總股數(shù);
c) 估值因子指標:賬面市值比 BP,即市凈率的倒數(shù);
d) 盈利因子指標:扣除非經(jīng)常性損益辩蛋、攤薄的 ROE;
e) 投資因子指標:當期總資產(chǎn)相對上期總資產(chǎn)變化率;
f) 無風險利率設為零童太,個股收益率用 Wind 后復權(quán)收盤價核算;
g) 以自然月為頻率菇夸,計算因子值并重新分層計算對應五因子收益率变汪。
數(shù)據(jù)預處理
1袱耽、所有數(shù)據(jù)按同一時間,同一股票對齊,注意這里的財報指標相關的時間要使用財報公布時間不能使用財報報告期绞愚。
2叙甸、第一步產(chǎn)生的NA值,用前一個值去填充(因為這里回歸的方式是時間序列回歸)位衩。
構(gòu)造Fama五因子
Fama 和 French(2015)原始的方法裆蒸,是沿著某兩個因子維度將股票分成 2x3=6 個組合(圖表 2,3)糖驴。在這 2 個因子維度中僚祷,其中一個固定為規(guī)模,按照中位數(shù)分為兩層贮缕, 另外一個為 BP辙谜、盈利或者投資因子,按照 30%跷睦,70%分位數(shù)分成 3 層(圖表 3)筷弦。這樣肋演, 我們將得到 3 個 2x3 的股票資產(chǎn)組合(規(guī)模與 BP 兩維度分組抑诸、規(guī)模與盈利兩維度分組、 規(guī)模與投資兩維度分組)爹殊。
因子的構(gòu)造方法以及計算細節(jié)見下面表 1 和 2蜕乡。在圖表 2 中,我 們用 2 個字母來標記股票的分組梗夸,第一個字母表示規(guī)模大(B)或小(S)层玲,第二個字母在 BP 分層中,表示 BP 高(H)反症、中(N)辛块、低(L);在盈利分組中表示強(R)、中(N)铅碍、弱(W);在投資 分組中润绵,表示投資保守(C)、中(N)或者強(A)胞谈。
表1
表2
最后我們得到除了市場因子以外的 4 個因子 收益率為:
(1) SMB (small minus big):小市值組股票減大市值組股票平均月收益率;
(2) HML(highminuslowBP):高BP組股票減低BP組股票平均月收益率;
(3) RMW(Robustminusweakprofit):高ROE組的股票減低ROE組股票平均月收益率;
(4) CMA(conservativeminusaggressiveinv):總資產(chǎn)增長率低組股票減總資產(chǎn)增長率高組股票平均月收益率尘盼。
數(shù)據(jù)分析
數(shù)據(jù)分析部分主要分析五因子組成數(shù)據(jù)的特性。其主要分析四部分內(nèi)容:
1烦绳、五因子的均值卿捎,方差等summary統(tǒng)計。這樣能說明那個因子在市場的收益中起到作用径密。
2午阵、求均值是否顯著異于零的假設檢驗對應的 t 統(tǒng)計量。目的是檢驗哪一個因子最能帶來超額的收益享扔。
3底桂、五因子累計收益分析括细,一般是規(guī)定一個日期為起始日期,形成五因子的累積凈值曲線戚啥,目的是用來分析五因子在歷史上和現(xiàn)在的表現(xiàn)奋单,和預估未來的表現(xiàn)。后面歸因分析中會用到這里的累積猫十。
4览濒、五因子間的相關性分析。其目的是提出多吃公線性拖云,用作下一步回歸用贷笛。
這里可以剔除多重共線性,也可以不剔除宙项,因為Fama在原始論文中就發(fā)現(xiàn)了了五因子中存在多重公線性乏苦,但是Fama并沒有處理這個問題。所以這里也可以不處理尤筐。
去除多重共線性的方法為:
分別用4個因子對另一個因子進行線性回歸汇荐,可以找到共線性因子,找到共線性因子后盆繁。
用四個因子去回歸這個共線性的因子掀淘,生成的殘差,作為這個因子的新值油昂,這樣既做可以去掉共線性革娄,也因為是線性變化,不改變因子的方向冕碟。這種去除共線性的方法拦惋,使用與所有的多因子模型。包括APT多因子模型安寺。
回歸分析
我們有了Fama五因子厕妖,將組合的收益時間序列作為因變量,直接進行回歸我衬,即可求出模型:
在求出模型的同時叹放,求出回歸的可決系數(shù),檢驗模型的因子解釋的有效性挠羔。
收益歸因分析
我們由五因子的累積凈值走勢圖井仰,可以分析出歷史和當前那個因子起到主要作用,通過上面方差的回歸系數(shù)破加,我們可以發(fā)現(xiàn)我們組合的收益來源俱恶,如果組合的主要收益來源和當前五因子收益表現(xiàn)最好的不一致,就要考慮進行調(diào)倉,高配表現(xiàn)好的因子合是。這就是基于凈值的收益歸因了罪。
風險歸因分析
既然這里目標變量是組合的收益率,那么有上面模型聪全,我們可以由因子的風險矩陣求出組合的總風險泊藕,且每一個因子的風險貢獻都可以求出,道理和風險預算模型一致难礼。這就是基于凈值的風險歸因娃圆。
Fama多因子選股
額外的,在這個模型可以用來選股蛾茉,我們選擇很小的股票和資產(chǎn)讼呢,因為這種股票和資產(chǎn)收益和風險可以被五因子所解釋,風險小谦炬,大的說明還有很多不能被五因子解釋的部分悦屏,風險也大。
所以键思,我們使用Fama多因子選股的時候础爬,只需用五因子回歸市場上每一個股票,對生成的殘差有小到大排序稚机,選擇殘差小的股票幕帆。
基于持倉的歸因方法
基于持倉的歸因方法获搏,邏輯上比基于凈值的歸因方法要復雜的多赖条,它來自套利定價模型(APT),用所有所有股票截面的因子的暴露序列去回歸所有股票的收益序列常熙。這種做法的目的是找到個股收益和因子收益之間的關系纬乍,尋找有效因子,通過有效因子來選擇好的股票裸卫。
這種做法把重點放在了因子挖掘和最后資產(chǎn)的打分模型的選擇上仿贬。
最后的模型打分,最后主要開發(fā)出來以下模型:
分層打分法墓贿、簡單線性回歸茧泪、隨機森林、邏輯回歸聋袋、支持向量機回歸队伟。
本文以簡單線性回歸為例,詳細介紹這種方法歸因分析的實現(xiàn)幽勒。
線性回歸多因子模型歸因分析
我們還是遵循機器學習的項目流程嗜侮,來進行實現(xiàn):
數(shù)據(jù)準備>>數(shù)據(jù)預處理>>單因子有效性檢驗>>數(shù)據(jù)分析>>回歸分析>>歸因分析
數(shù)據(jù)準備:
(1) 股票池:全A股,在每個時刻t均剔除ST、PT股票锈颗,剔除停牌及上市未滿一個月的股票顷霹,剔除 BP 值為負的股票;
(2) 時間參數(shù):2010年1月至2018年1月;
(3) 因子對應指標:
a) 市場因子指標:上證 指數(shù);
b) 行業(yè)因子指標:申萬一級行業(yè)指數(shù)。
c) 風格因子指標:市值size击吱,PE淋淀,EBITA.(這里以這三個因子為例,APT框架的優(yōu)勢就是因子可以隨便加)
數(shù)據(jù)預處理
1覆醇、所有數(shù)據(jù)按同一時間绅喉,同一股票對齊,注意這里的財報指標相關的時間要使用財報公布時間不能使用財報報告期叫乌。雖然這種方法是截面回歸柴罐,但是要研究每個因子的有效性,所以必須列出各個因子的歷史時間序列數(shù)據(jù)憨奸。
2革屠、第一步產(chǎn)生的NA值,用截面該因子的均值填充排宰。(這與上面的做法不一樣)似芝。
3、若因子NA比率超過30%板甘,則舍棄該因子党瓮。
4、對每個因子的暴露(就是因子值)分布分析盐类,剔除3-sigma以外的公司寞奸。(最后回歸用,因為回歸對極值敏感)
5在跳、z-score標準化所有因子枪萄。(最后回歸用,去量綱)
因子中性化處理
通常我們總認為行業(yè)和市值兩個因子對股票的收益影響較大猫妙,所以在單獨分析其他因子時瓷翻,要把這兩個因子暴露引起的收益剔除掉,也就是所謂的因子中性化割坠。經(jīng)常使用的方法是齐帚,用因子暴露作為因變量,用行業(yè)因子和市值因子去回歸因子暴露彼哼,得到的殘差就是中性化后的因子对妄。
在這個過程中,因為行業(yè)是類別變量沪羔,不能直接進行回歸饥伊,要引入啞變量的方式進行回歸象浑。
注意:因子暴露此時已經(jīng)變成中心化的,所以一下處理全在中性化因子的基礎上琅豆。
單因子有效性檢驗
整個模型最麻煩的一步愉豺,也是最瑣碎的一步。
在剔除了極端公司和填充了因子NA值后茫因,我們對每個單因子進行有效性檢驗蚪拦。做法有以下幾種:
1、IC值檢驗
2冻押、RIC值檢驗
3驰贷、IR檢驗
4、方差分析(ANOVA)給出p-value
5洛巢、隨機森林
IC值檢驗
這里我們要先再確認下因子收益和因子暴露的概念:
因子暴露是因子具體的值括袒,例如60000.sh(浦發(fā)銀行)的PE(因子)值為5.62.納悶普法銀行在因子PE上的暴露就是5.62。
因子收益是用截面因子暴露去回歸個股收益時產(chǎn)生的各項因子的回歸系數(shù)稿茉。
為什么這樣定義锹锰,其實原因來自上面的基于CAMP模型多因子分析。
我們有各個因子的暴露值后漓库,可以對各個因子進行單因子檢驗恃慧,我們求當期(t期)的因子暴露值和下一期(t+1期)的個股收益的相關性數(shù),得到當期(t期)的該因子的IC值:
其中:
這樣求出來的IC值的絕對值越大越好怠蹂,求出所有因子歷史一段時間的IC值走勢。因子IC的絕對值長時間處于很大的值训唱,說明這個因子長期有效性很強褥蚯,若偶爾絕對值很大,說明因子偶爾有效况增,也要保留,我們剔除那些IC長期很小的因子训挡。認為這些因子有效性不強澳骤。
RIC值檢驗
RIC的用法與IC的用法完全一致,只有RIC的定義不一樣澜薄,我們求當期(t期)的因子暴露值和下一期(t+1期)的個股收益的秩相關性數(shù),得到當期(t期)的該因子的RIC值:
其中:
RIC使用方式和IC一致为肮。
IR檢驗
從上面使用IC和RIC時,不是很方便肤京,我們要看IC和RIC長期表現(xiàn)颊艳,這種表現(xiàn)是定性看的茅特,我們需要構(gòu)造一個量,定量的去衡量因子的長期表現(xiàn)棋枕。我們很簡單的一個想法是:用IC的均值來衡量IC的長期表現(xiàn)好壞白修,用IC的標準差來衡量表現(xiàn)的穩(wěn)定性。
于是我們綜合兩個在一起重斑,構(gòu)造IR如下:
這里的符號IR與信息比率是一樣的兵睛,因為兩者是一個東西,可以通過數(shù)學推導得到窥浪。
我們選取IR高的因子祖很,丟棄IR低的因子。
方差分析(ANOVA)給出p-value
方差分析是用來分析多組數(shù)據(jù)之間均值是否一樣的統(tǒng)計分析方法漾脂,當檢驗的p值大與0.05是假颇,說明多組之前的均值沒有差異,當p值小于0骨稿,05 時拆融,說明各組之間存在差異。對于選因子來說啊终,我們希望每組之前有差異镜豹。所以p-value需要小于0.05.
P值的計算方式很復雜,其思想是用組內(nèi)方差處于組間方差構(gòu)造統(tǒng)計量蓝牲,進行F檢驗趟脂。可直接調(diào)用python方差分析函數(shù)例衍。
數(shù)據(jù)分析
本步主要查看上一步選出的各個因子之間相關系數(shù),為解決下面回歸中的兩兩共線性問題昔期,我們要合并部分因子,我們設置閥值0.6.認為相關系數(shù)在0.6 以上的因子看作同一組因子佛玄。
對同一組的因子硼一,我們采用IC_IR加權(quán)的方式合并這些因子,將其合成一個因子梦抢。
其具體加權(quán)方式為:般贼。
這樣我們就得到了組合因子。但是這一步雖然剔除了兩兩間的共線性奥吩,但是未能剔除多重共線性哼蛆。
回歸分析
本步對上面篩選出的因子,以個股收益為因變量驚喜建模霞赫,常用模型為多元線性回歸腮介,獲得如下回歸方程:
其中:是股票n在因子k 上的暴露。為因子k的因子收益端衰,為股票n的殘差收益叠洗,既股票特有收益率甘改。
由這個回歸方程,用最小二乘發(fā)灭抑,我們可以得到因子k的收益十艾。
收益歸因分析
進一步的,若現(xiàn)有一組合P名挥,則這個組合P的收益率為:
其中:為組合P中股票n的權(quán)重疟羹。
所以組合在因子k上的暴露設為為:
所以此時,我們知道了組合的因子暴露禀倔,各因子的收益榄融,所以可以得到組合里面?zhèn)€因子的收益貢獻:
所以,此時的多因子模型收益歸因歸因救湖。
風險歸因分析
這里的風險歸因分析和Barra一模一樣:
由上面回歸模型得到(將其向量化表示):
其中:r為股票的收益向量愧杯,X因子的暴露矩陣,f為股票的因子收益向量鞋既,u為股票的特質(zhì)收益力九。
則我們的組合P的波動率為:
其中:為所有因子收益學列的協(xié)方差矩陣,??為股票特質(zhì)收益序列的協(xié)方差矩陣邑闺。w為持倉權(quán)重跌前。具體推導詳見馬克維茨均值方差理論。
有了組合的風險(既波動率)陡舅,就可以得到以下三個量:
組合的系統(tǒng)風險:
組合的特質(zhì)風險:
因子??對總風險的貢獻比例為(推導詳見風險預算):
以上就是多因子模型在風險歸因上的應用抵乓。
傳統(tǒng)多因子選股
傳統(tǒng)的這一版多因子,另一大作用是用來選股的靶衍,我們得到以下回歸方程的時候灾炭。
最簡單的,可以把最新一期的因子帶入到回歸方程颅眶,計算出的個股的的未來收益蜈出,將其線性映射到1到100,可以直接作為分數(shù)涛酗,我們選擇分數(shù)高的股票即可铡原。一般都是直接做前10%,做空后10%獲得超額收益。