摘要
量化實(shí)證研究 丨本文在 A 股上復(fù)現(xiàn) Harvey and Liu (2018) 提出的方法,使用正交化和自助法尋找顯著的因子。
一、引言
Harvey and Liu (2018) 提出的基于回歸的因子有效性檢驗(yàn)方法。該方法避免了因 multiple testing 造成的運(yùn)氣成分、從而鑒別出能顯著解釋資產(chǎn)截面預(yù)期收益率差異的因子??紤]到《出色不如走運(yùn) (II)》涉及的內(nèi)容理論有余、實(shí)證不足,本文以中證 500 指數(shù)成分股為例,做一些實(shí)證分析,同時(shí)也指出在大 A 股中應(yīng)用 Harvey and Liu (2018) 時(shí)遇到的一些坑。
首先簡單回歸一下 Harvey and Liu (2018) 提出的方法。
當(dāng)大量因子同時(shí)被用做 empirical asset pricing 分析時(shí),它們之中效果最顯著的因子中一定包含了運(yùn)氣的成分。Harvey and Liu (2018) 巧妙之處在于通過正交化和自助法(Bootstrap)得到了僅靠運(yùn)氣能夠得到的顯著性的經(jīng)驗(yàn)分布;如果當(dāng)排除了運(yùn)氣造成的顯著性之后某個(gè)因子依然顯著,那它就是真正有效的因子。下圖高度概括了該方法的邏輯(正交化和 Bootstrap 是核心)。

值得一提的是,Harvey and Liu (2018) 提出的方法既可以用針對(duì) empirical asset pricing 找出顯著因子;也可以用于更一般的 predictive regression —— 即考察解釋變量 X 能否預(yù)測被解釋變量 Y。面對(duì)不同的問題,正交化和 Bootstrap 的核心思想是一致的,但在具體處理方法上存在差異。
以下行文將假設(shè)讀者了解 Harvey and Liu (2018)。但是,我會(huì)針對(duì) empirical asset pricing 問題,說明使用正交化和 Bootstrap 時(shí)的各種細(xì)節(jié)。這篇實(shí)證的目的更多的是介紹在 A 股上如何復(fù)現(xiàn) Harvey and Liu (2018)。相反的,由于實(shí)證中的因子以及用來檢驗(yàn)這些因子的一組資產(chǎn),均無法避免的存在主觀成分(本文最后一節(jié)會(huì)再聊聊這點(diǎn)),因此實(shí)證結(jié)果僅是示例性的。
二、Block Bootstrap
先來說說 Bootstrap。本來 Bootstrap 無需多言(需要背景知識(shí)的朋友請點(diǎn)這里),但是數(shù)據(jù)的特殊性決定了 Bootstrap 的特殊性。
在 Harvey and Liu (2018) 的方法中,需要進(jìn)行 Bootstrap 的數(shù)據(jù)是資產(chǎn)的收益率和正交化后的因子收益率時(shí)間序列。由于時(shí)間序列存在自相關(guān)性,因此在重采樣的時(shí)候應(yīng)使用 Block Bootstrap。顧名思義,Block Bootstrap 就是每次從序列中有放回的抽取一個(gè)由連續(xù) n 個(gè)相鄰數(shù)據(jù)點(diǎn)構(gòu)成的 block(大小由 block size 決定)。主流的 Block Bootstrap 算法包括以下三種:
Moving Block Bootstrap(Kunsch 1989, Liu and Singh 1992);
Circular Block Bootstrap(Politis and Romano 1992);
Stationary Bootstrap(Politis and Romano 1994)。
下圖說明了 Moving Block Bootstrap(MBB)的原理。假設(shè)原始數(shù)據(jù)由 1 – 9 組成,且令 block size = 3。MBB 依次以序列中的每個(gè)數(shù)字為起點(diǎn)構(gòu)建長度為 3 的 blocks(本例中一共 7 個(gè)),然后從這 7 個(gè) blocks 中有放回的隨機(jī)抽取,直至構(gòu)成和原始序列長度一樣的 bootstrapped sample。

從上圖的原理可知,MBB 最大的問題是對(duì)于原始序列首尾兩端樣本采樣不足。為了規(guī)避這個(gè)問題,Circular Block Bootstrap(CBB)被提出。顧名思義,它是將原始數(shù)據(jù)的首尾相連,構(gòu)成一個(gè)圓圈(Circular 一詞的出處),然后再按照給定的 block size 進(jìn)行重采樣,避免首尾兩端采樣不足。
最后一種方法是 Stationary Bootstrap(SB),它和前兩者最大的區(qū)別是使用非固定的 block size。SB 中的 block size 滿足幾何分布;作為輸入而給定的 block size 是它的期望。該方法得到的 bootstrapped 樣本可以更好的滿足平穩(wěn)性的要求,因此當(dāng)原始時(shí)間序列難以滿足平穩(wěn)性時(shí)有更好的效果。
本文的實(shí)證采用 stationary bootstrap,并在第四節(jié)說明原因。
三、因子模型和投資組合
Harvey and Liu (2018) 的目的是找到能夠真正解釋資產(chǎn)截面預(yù)期收益率差異的顯著因子。因此在實(shí)證中,我們需要選定多因子模型,以及用來檢驗(yàn)這些因子的一組資產(chǎn)。
在因子方面,實(shí)證中選擇 Fama and French (2015) 五因子以及 Carhart (1997) 的動(dòng)量因子,一共六個(gè)因子:MKT、HML、SMB、RMW、CMA 和 UMD。構(gòu)建這些因子的標(biāo)的均為中證 500 的成分股;實(shí)證區(qū)間為 2008 年 10 月到 2019 年 2 月。每個(gè)月最后一個(gè)交易日排除停牌的股票,使用剩余成分股構(gòu)建多空投資組合(多、空兩邊均等權(quán)配置),以此計(jì)算每個(gè)因子下個(gè)月的收益率,全部數(shù)據(jù)均來自 JoinQuant。具體的,這些因子定義如下:
MKT:中證 500 指數(shù)的收益率,為了簡化沒有考慮其相對(duì)無風(fēng)險(xiǎn)利率的超額收益;
HML:做多 Book-to-Price 較高的 150 支、做空 Book-to-Price 最低的 150 支;
SMB:做多流通市值小的一半、做空流通市值大的一半;
RMW:使用營業(yè)利潤 TTM 與總市值之比為排序指標(biāo)、從大到小排序,做多排名靠前的 150 支、做空排名靠后的 150 支;
CMA:使用總資產(chǎn)增長率為排序指標(biāo)、從小到大排序,做多排名靠前的 150 支、做空排名靠后的 150 支;
UMD:使用 T - 12 到 T - 2 月之間(即過去 12 個(gè)月到上一個(gè)月)的累積收益率為排序指標(biāo),從大到小排序,做多排名靠前的 150 支、做空排名靠后的 150 支。
這六個(gè)因子在實(shí)證區(qū)間內(nèi)的累積凈值如下圖所示。

下面再來看看用來檢驗(yàn)因子的一組資產(chǎn)。由于多因子模型是用來給個(gè)股的超額收益定價(jià)的,因此最純粹的實(shí)證是使用個(gè)股??紤]到本文更多的是為了說明如何復(fù)現(xiàn) Harvey and Liu (2018)、實(shí)證結(jié)果僅是示例性的,因此我們也像 Harvey and Liu (2018) 一樣,考慮使用 BP 和流通市值 double sort 得到的投資組合作為資產(chǎn)。
具體的,將中證 500 成分股按照 BP 和流通市值的大小各分成五檔,并按照個(gè)股在兩個(gè)指標(biāo)上的檔位取值將它們歸類于 5 × 5 = 25 個(gè)投資組合中的某一個(gè),由此構(gòu)建 25 個(gè)純多頭投資組合。這 25 個(gè)投資組合在實(shí)證區(qū)間內(nèi)的累積凈值如下圖所示。

下面用這 25 個(gè)投資組合檢驗(yàn)上述六個(gè)因子。
四、挑選有效因子
在檢驗(yàn)有效因子時(shí),Harvey and Liu (2018) 的思路是反復(fù)使用正交化 + 自助法,逐一找到顯著的因子,直到所有剩余因子中沒有任何顯著的。下面就來進(jìn)行這個(gè)過程。
在第一輪中,這六個(gè)因子是否顯著都是未知的。首先對(duì)它們進(jìn)行正交化處理。正交化的目的是排除因子對(duì)資產(chǎn)截面預(yù)期收益差異的解釋能力;正交化的手段是對(duì)因子收益率序列在時(shí)序上去均值(demean)。
時(shí)序上 demean 不改變這些因子對(duì)于資產(chǎn)收益率波動(dòng)的解釋力度(時(shí)序回歸的 R-squared 不變),但由于 demean 之后因子收益率期望為零,使用 demean 因子對(duì)資產(chǎn)進(jìn)行時(shí)序回歸得到的截距恰好等于資產(chǎn)本身的時(shí)序均值,說明 demean 因子在截面上不再具備解釋能力。這六個(gè)因子 demean 之后的時(shí)序如下圖所示。

由于 A 股上旗幟鮮明的牛熊市,demean 之后的 MKT 因子(以及其他一些因子)難以滿足平穩(wěn)性,如不加以處理,將會(huì)影響 Harvey and Liu (2018) 的使用。該方法的本質(zhì)是 demean 之后的因子無法解釋資產(chǎn)預(yù)期收益率的截面差異(能解釋的都是運(yùn)氣),因此在 bootstrap 時(shí)應(yīng)保證 bootstrapped 樣本中這些 demean 之后的因子的收益率依然為零。
如果使用 MBB,由于對(duì)原始序列兩端采樣不足,則會(huì)使 bootstrapped 樣本中 demean 后因子的收益率均值對(duì)于實(shí)證窗口的選擇異常敏感。例如上圖中,原始序列兩端 demean 之后的 MKT 收益率一個(gè)很小、一個(gè)巨大,如果采樣不足會(huì)影響 bootstrapped 樣本。為此,在實(shí)證中選擇將原始序列首尾相連的 Stationary Bootstrap。這是在 A 股中復(fù)現(xiàn) Harvey and Liu (2018) 時(shí)的第一個(gè)坑。
下面再來說說第二個(gè)。
我在一開始選擇的實(shí)證窗口是 2010 年 1 月到 2019 年 2 月,而非從 2008 年 10 月開始。然而,由于中證 500 指數(shù)在這段時(shí)間內(nèi)漲上去又跌回來,導(dǎo)致 MKT 因子的收益率期望接近零。這就意味著,哪怕不 demean,由于 E[MKT] ≈ 0,MKT 因子對(duì)于資產(chǎn)截面收益率的解釋力度也十分有限。
對(duì)于一個(gè)真正有效的因子,demean 的目的是排除它的截面解釋能力,把它暫時(shí)視作一個(gè)隨機(jī)因子(隨機(jī)因子的期望收益為零),從而僅考察由于多個(gè)因子 multiple testing 中的運(yùn)氣成分能造成的解釋力度。不幸的是,如果選擇從 2010 年 1 月開始的實(shí)證區(qū)間,我們這位 MKT 因子都不需要 demean 就 E[MKT] ≈ 0 了,剩下再怎么檢驗(yàn),它也難言有效,從而造成錯(cuò)誤的結(jié)論。這就是第二個(gè)坑。
OK,坑挖完了也填完了,下面繼續(xù)實(shí)證。
分別使用這六個(gè)因子和 25 個(gè)投資組合收益率做時(shí)序回歸。對(duì)于每個(gè)因子,得到 25 個(gè)回歸截距,它們是這些投資組合在使用該因子時(shí)的定價(jià)錯(cuò)誤。使用這 25 個(gè)截距絕對(duì)值的中位數(shù)作為該因子解釋這些投資組合的能力。定價(jià)錯(cuò)誤低意味著解釋力度高,因此該中位數(shù)越小說明因子越有效。
此外,為了計(jì)算僅憑運(yùn)氣能夠獲得的顯著性,將原始 25 個(gè)投資組合的收益率序列和 demean 之后六個(gè)因子的收益率序列放在一起(T × 31 階矩陣),令 block size = 4,進(jìn)行 1000 次 stationary bootstrap,得到 1000 個(gè) bootstrapped 樣本。對(duì)于每個(gè)樣本,分別使用每個(gè) demean 因子對(duì)這 25 個(gè)投資組合進(jìn)行時(shí)序回歸、得到 6 個(gè)截距絕對(duì)值中位數(shù),將這 6 個(gè)中位數(shù)中的最小值作為 test statistic,它就是在這個(gè) bootstrapped 樣本中,僅靠運(yùn)氣能夠獲得的最低定價(jià)錯(cuò)誤。
從 1000 個(gè) bootstrapped 樣本中得到 1000 個(gè) test statistic,便構(gòu)成了它的分布,這就是僅靠運(yùn)氣能夠得到的定價(jià)錯(cuò)誤分布。使用該分布 5% 分位數(shù)作為閾值,如果原始因子獲得的定價(jià)錯(cuò)誤小于該閾值,我們就說該因子在 5% 的顯著性水平下有效。
在第一輪中,這六個(gè)因子對(duì) 25 個(gè)投資組合定價(jià)錯(cuò)誤絕對(duì)值的中位數(shù)、以及使用 1000 次 stationary bootstrap 獲得的 test statistic 閾值如下表所示。不難看出,MKT 的解釋力度較高且小于閾值,因此 MKT 被選為第一個(gè)有效的因子。第一輪正交化 + 自助法結(jié)束。

下面來看第二輪(后面的以此類推)。
在第二輪中,已選出的 MKT 將會(huì)出現(xiàn)在時(shí)序回歸方程的右側(cè),這么做是為了考察剩余待檢驗(yàn)因子對(duì)于解釋資產(chǎn)預(yù)期收益截面差異的增量貢獻(xiàn)。首先,對(duì)于 SMB、HML、RMW、CMA、UMD 的每一個(gè),將它們和已經(jīng)選定的 MKT 一起(如果是第 n 輪正交化 + 自助法,則使用前 n – 1 輪中選出的 n – 1 個(gè)因子),對(duì)那 25 個(gè)投資組合進(jìn)行時(shí)序回歸,得到的截距項(xiàng)絕對(duì)值的中位數(shù)作為這五個(gè)因子的解釋力度。
接下來,使用 MKT(again,如果是第 n 輪正交化 + 自助法,則使用前 n – 1 輪中選出的全部因子)對(duì)待檢驗(yàn)因子正交化。具體做法為,將待檢驗(yàn)因子依次放在回歸方程左側(cè),將已經(jīng)選出的因子放在回歸方程的右側(cè),時(shí)序回歸得到截距項(xiàng);使用原始待檢驗(yàn)因子減去截距項(xiàng)(也是一種 demean 處理),得到的就是其正交化之后的因子。該方法保證了使用 demean 的待檢驗(yàn)因子和已選出因子一起對(duì)資產(chǎn)時(shí)序回歸時(shí)得到的截距和僅使用已選出因子對(duì)資產(chǎn)時(shí)序回歸時(shí)得到的截距相同,從而說明 demean 后的待檢驗(yàn)因子無增量貢獻(xiàn)。
將正交化后的五個(gè)因子和原始 MKT 因子一起,和 25 個(gè)投資組合收益率序列放在一起,構(gòu)成一個(gè) T × 31 階矩陣。對(duì)其并進(jìn)行 1000 次 stationary bootstrap 的到 1000 個(gè) bootstrapped 樣本。對(duì)于每一個(gè)樣本,逐一使用 demean 后的因子,將它和已選出的因子一起(這里是 MKT),對(duì)這 25 個(gè)投資組合回歸,得到截距絕對(duì)值中位數(shù);然后從這五個(gè)因子中挑出中位數(shù)最低的,它就是該 bootstrapped 樣本的 test statistic。這 1000 個(gè) bootstrapped 樣本的 test statistic 取值便構(gòu)成了它的分布。
下表是第二輪中這五個(gè)因子的解釋能力以及 test statistic 的 5% 分位數(shù)閾值。其中,SMB 的解釋力度較高且小于閾值,因此 SMB 被選為第二個(gè)有效因子。第二輪正交化 + 自助法結(jié)束。

按上述說明,反復(fù)使用正交化 + 自助法,直至沒有顯著的因子。在第三輪中的結(jié)果如下,RMW 因子被選出。

第四輪的結(jié)果如下,剩余三個(gè)因子的解釋力度均無法超過 test statistic 閾值,因此全部被拒絕、檢驗(yàn)結(jié)束。最終選出的因子為:MKT + SMB + RMW。

以上就是對(duì) Harvey and Liu (2018) 的實(shí)證研究。
五、結(jié)語
從我的實(shí)證體會(huì)來說,最難的不是方法本身,而是如何盡可能客觀的選擇多因子模型以及用來檢驗(yàn)該模型的資產(chǎn)。
在 empirical asset pricing 的研究中,最著名的文章當(dāng)屬 Fama 和 French 的一系列文章。無疑,這和他們開創(chuàng)性的研究密不可分,但不容忽視的一點(diǎn)是,人家 marketing 做的好!Ken French 在其網(wǎng)站上定期更新因子收益率序列供所有人免費(fèi)下載。這些高質(zhì)量且被市場廣泛認(rèn)可的數(shù)據(jù)為美股研究的蓬勃發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。

反觀 A 股,很難找到大家都認(rèn)可的標(biāo)準(zhǔn)化因子收益率數(shù)據(jù),這造成不同人對(duì)于哪怕是對(duì)同一因子的研究結(jié)果都有可能大相徑庭。(就我有限的所知,中央財(cái)經(jīng)大學(xué)維護(hù)了針對(duì)全 A 股的 Fama-French 五因子 + Carhart 動(dòng)量因子數(shù)據(jù)。)究其原因是因?yàn)樘幚硪蜃訑?shù)據(jù)背后的細(xì)節(jié)太過紛繁 —— 按什么頻率調(diào)倉;具體使用什么指標(biāo)(比如當(dāng)期還是 TTM);依何種權(quán)重配置多空組合;如何處理 ST、漲跌停、停牌、退市等股票。
但即便有各種困難,為了在 A 股上得到更加客觀、公允的實(shí)證分析結(jié)果(無論某個(gè)因子是有效還是無效都是有價(jià)值的發(fā)現(xiàn)),構(gòu)建標(biāo)準(zhǔn)化因子數(shù)據(jù)的努力都必不可少。(最近,我在構(gòu)思寫一篇比較學(xué)術(shù)界主流多因子模型在 A 股上的效果分析文章,但是第一步就是要獲得客觀、標(biāo)準(zhǔn)的因子收益率。)希望未來能有更多的你、我(特別是市面上的各種量化平臺(tái))能為此努力,這將是造福量化多因子研究的大功績。
參考文獻(xiàn)
Carhart, M. M. (1997). On Persistence in Mutual Fund Performance. Journal of Finance, Vol. 52(1), 57 – 82.
Fama, E. F. and K. R. French (2015). A Five-Factor Asset Pricing Model. Journal of Financial Economics, Vol. 116(1), 1 – 22.
Harvey, C. R. and Y. Liu (2018). Lucky Factors. Working paper, available atSSRN:
https://ssrn.com/abstract=2528780.
Kunsch, H. R. (1989). The jackknife and the bootstrap for general stationary observations.The Annals of Statistics, Vol. 17(3), 1217 – 1241.
Liu, R. Y. and K. Singh (1992). Moving blocks jackknife and bootstrap capture weak dependence. In Exploring the Limits of Bootstrap (R. Lepage and L. Billard, eds.), 225 – 248. Wiley, New York.
Politis, D. N. and J. P. Romano (1992). A circular block resampling procedure for stationary data. In Exploring the Limits of Bootstrap (R. Lepage and L. Billard, eds.), 263 – 270. Wiley, New York.
Politis, D. N. and J. P. Romano (1994). The stationary bootstrap. Journal of the American Statistical Association, Vol. 89(428), 1303 – 1313.
量化金融分析師(簡稱AQF ,Analyst of Quantitative Finance)由量化金融標(biāo)準(zhǔn)委員會(huì)(Standard Committee of Quantitative Finance,SCQF)主考并頒證,是代表量化金融領(lǐng)域的專業(yè)水平證書。 >>>點(diǎn)擊咨詢AQF證書含金量
.png)
課程適合人群:
金融工程/數(shù)學(xué)專業(yè)背景的同學(xué)/工作人士,希望進(jìn)一步學(xué)習(xí)Python編程以及在量化投資的實(shí)戰(zhàn)應(yīng)用;
非金融工程專業(yè)背景的同學(xué)/工作人士,希望迅速成為寬客;
金融相關(guān)人員,希望學(xué)習(xí)如何系統(tǒng)的做量化策略;
個(gè)人投資者,希望系統(tǒng)學(xué)習(xí)掌握量化投資相關(guān)的實(shí)務(wù)技能,從模型開發(fā),回測,策略改進(jìn),搭建穩(wěn)定的量化交易系統(tǒng)。
(點(diǎn)擊上圖了解課程詳情)
量化金融分析師AQF核心課程體系:
1、《量化投資基礎(chǔ)》
主要涵蓋了量化投資領(lǐng)域的必備知識(shí),包括:基本面分析、技術(shù)分析、數(shù)量分析、固定收益、資產(chǎn)組合管理、權(quán)益、另類投資等內(nèi)容。
2、《Python語言編程基礎(chǔ)》
包含了Python環(huán)境搭建、基礎(chǔ)語法、變量類型、基本函數(shù)、基本語句、第三方庫、金融財(cái)務(wù)實(shí)例等內(nèi)容。旨在為金融財(cái)經(jīng)人提供最需要的編程方法。
3、《基于Python的經(jīng)典量化投資策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龜交易模型、Logistics模型、配對(duì)交易模型、波動(dòng)擴(kuò)張模型、Alpha模型、機(jī)器學(xué)習(xí)(隨機(jī)森林模型、主成分分析)、深度學(xué)習(xí)(人工神經(jīng)網(wǎng)絡(luò))等內(nèi)容。
4、《量化交易系統(tǒng)設(shè)計(jì)》
旨在學(xué)習(xí)量化交易系統(tǒng)的具體知識(shí),包括過濾器,進(jìn)入信號(hào),退出信號(hào),倉位管理等詳細(xì)內(nèi)容,并指導(dǎo)學(xué)員設(shè)計(jì)涵蓋個(gè)人交易哲學(xué)的量化交易系統(tǒng)。
5、《量化實(shí)盤交易》
旨在為解決實(shí)際量化交易策略搭建過程中的一些問題提供較優(yōu)解決方案。 >>>點(diǎn)擊咨詢AQF相關(guān)問題
掌握Python及量化投資技能,我們能做什么?
1、熟悉中國主要金融市場及交易產(chǎn)品的交易機(jī)制;
2、熟知國內(nèi)外期貨交易、股市交易的異同點(diǎn)和內(nèi)在運(yùn)行機(jī)制;
3、掌握經(jīng)典量化交易策略細(xì)節(jié)及其背后的交易哲學(xué);
4、掌握金融、編程和建模知識(shí)基礎(chǔ),擁有量化交易實(shí)盤操作能力;
5、具備獨(dú)立自主地研發(fā)新量化交易策略的能力;
6、掌握量化交易模型設(shè)計(jì)的基本框架,以及風(fēng)險(xiǎn)管理和資產(chǎn)組合理論的實(shí)際運(yùn)用;
7、掌握從策略思想——策略編寫——策略實(shí)現(xiàn)餓完整量化投資決策過程;具備量化投資實(shí)戰(zhàn)交易能力。
.png)
金程推薦: AQF培訓(xùn) AQF培訓(xùn)機(jī)構(gòu) AQF是什么意思
咨詢電話:400-700-9596
AQF考友群:760229148
金融寬客交流群:801860357
微信公眾號(hào):量化金融分析師
聲明丨作者:石川,北京量信投資管理有限公司創(chuàng)始合伙人,清華大學(xué)學(xué)士、碩士,麻省理工學(xué)院博士。知乎專欄:https://zhuanlan.zhihu.com/mitcshi。未經(jīng)授權(quán),嚴(yán)禁轉(zhuǎn)載。


.png)


