目錄
- 1 為什么是機器學習?
- 2 方法總覽
- 2.1 用驗證(Validation)進行樣本劃分和調參
- 2.2 各種機器學習演算法
- 2.3 模型表現評價
- 2.4 變數的重要性和邊際關系
- 3 實證效果
- 3.1 資料
- 3.2 模型比較
- 3.3 哪些變數重要?
- 3.4 組合預測
- 參考文獻
2020年的Review of Financial Studies刊出了一篇名為“Empirical Asset Pricing via Machine Learning”的文章,作者中有兩位是在Booth的華人顧詩顥、修大成,另一位則是在耶魯和 AQR任職的 Bryan Kelly,
該文對使用機器學習做實證資產定價的經典問題(即測度資產的風險溢價)進行了可比較的分析,表明使用機器學習的投資者可獲得巨大的經濟收益,甚至可比現有文獻中基于回歸的策略表現高出一倍,該文確定出最佳的模型(樹和神經網路),并追蹤到它們預測的增量收益來自于預測因子的互動,這恰恰是其他方法所錯失的部分,所有的方法找出的最佳預測信號集是一致的,其中包含了動量、流動性、波動性的相關變數,
將機器學習應用于金融市場,在業界早已不是什么新鮮事,在量化投資領域中更是一個老生常談的問題,它的有效性和可靠性也一直存在不少爭論,而在金融學術界,之前只有寥寥數篇文章涉及到一部分機器學習中的方法,常態化地使用機器學習則是在最近才出現的苗頭,從學術角度來說,該文是比較有代表性的一篇,基本上把機器學習能玩的東西全都玩了一遍,
1 為什么是機器學習?
首先,是實證資產定價領域本身的特點,讓人將它和機器學習進行聯想:
- 現代實證資產定價研究有兩個主題,一是描述和理解不同資產的期望收益率的差異,另一個是研究總體股權風險溢價的動態特性,而測度一項資產的風險溢價,本質上是一個預測問題——風險溢價就是未來實作的超額收益率的條件期望;
- 對風險溢價來說,備選的變數集合非常大;
- 高維預測因子進入風險溢價的函式形式是不確定的,
其次,機器學習本身的特點,又使得它適用于這種不確定函式形式的問題:
- 多樣性,它有各種不同的演算法,可以搜索很大的函式空間;
- 它的各種演算法可以對復雜的非線性關系進行近似;
- 它有引數懲罰和模型選擇標準,哪怕函式形式非常廣泛,也可以避免過擬合偏差和錯誤發現,
正是上述種種特性,讓人覺得將實證資產定價與機器學習相結合是一件很自然的事情,
2 方法總覽
為避免過多的公式堆積,本節僅僅對該文所用的方法做個概述,
一項資產的超額收益可表述成一個加性的預測誤差模型(additive prediction error model):
\[r_{i,t+1}=E_t(r_{i,t+1})+\epsilon_{i,t+1} \]
其中
\[E_t(r_{i,t+1})=g^\star(z_{i,t}) \]
也就是說,我們的目的是,分離出一個 \(E_t(r_{i,t+1})\) 的表示形式,它是預測因子的函式,并對 \(r_{i,t+1}\) 有最大的樣本外解釋力,其中預測因子是高維的 \(z_{i,t}\),函式形式可以是靈活的條件期望收益率函式 \(g^\star(\cdot)\),在這里假設函式形式與 \(i\) 和 \(t\) 均無關,
2.1 用驗證(Validation)進行樣本劃分和調參
該文將資料集劃分成 3 個不相鄰的時間區間:
- 訓練集,用于訓練資料;
- 驗證集,用于選擇超引數;
- 測驗集,用于評估模型的預測表現,
對于本文 60 年的資料集,在開始時,先將前 18 年作為訓練集,中間 12 年作為驗證集,后面 30 年作為測驗集,當用訓練集和驗證集完成一次模型估計后,對后續那年的測驗集資料作出預測,并評估表現,然后將訓練集向后增加一年,把驗證集視窗往后挪一年并依舊保持 12 年的長度,再次進行模型估計后,再對接下來的一年的測驗集資料作出預測并評估,如此往復,
2.2 各種機器學習演算法
第一個演算法是線性模型,它與計量經濟學中的線性回歸非常類似,也同樣可用最小化誤差的平方和(在機器學習中也叫目標函式或損失函式)求解引數,
由于該文所用資料是面板資料,不同年份的股票數不一樣,因此可在每個誤差平方項的權重上做一些調整,比如可以將每個樣本的誤差平方項的權重設為該年股票數的倒數,這樣就可以使每一年在損失函式中的權重相等,也可以將每個樣本的誤差平方項的權重設為正比于該股票在該年的市值,這樣可使預測的準確性向大市值股票傾斜,
另外,由于誤差的平方是一個二次函式,它的凸性使得當誤差較大時它的平方和例外大,這會影響基于 OLS 的預測的穩定性,為解決這個問題,可使用Huber 穩健的目標函式,也即當誤差大于一個閾值時,讓它從平方形式變成一次形式,
當預測因子過多時,傳統的線性模型會出現對噪聲過擬合,而收益率預測問題的信噪比極低,這就導致它的表現會非常差,此時可通過加入懲罰項來避免過擬合,按線性模型中加入的懲罰項形式不同,可分為 LASSO、Ridge 等,該文使用的是 LASSO 和 Ridge 的結合,即彈性網路(elastic net)模型,
此外,該文還使用了兩種降維模型:主成分回歸(PCR)和偏最小二乘(PLS):
- PCR 的思想是先用一系列低維的“成分”來表示高維的預測因子,在這程序中盡可能不損失原來的資訊,找出的第一個“成分”就叫主成分(PC),再用得到的一系列成分對目標變數做回歸,PCR 僅僅是在預測因子一側做變換,要求盡可能多地保留預測因子的資訊,沒有考慮要預測的目標變數,因此也沒有考慮找出的“成分”的預測能力,
- PLS 則考慮了預測因子的預測能力,它先用每個預測因子對目標變數做單變數預測回歸,再以得到的系數為權重,將所有的預測變數做加權平均,得到第一個成分,再接著,把預測因子和目標變數都對之前得到的成分做正交化,再不斷重復之前的程序,最終也得到一系列成分,
以上的模型都是引數模型,下面是一些非參模型,
廣義線性模型(Generalized linear model),就是用樣條函式對預測因子作展開,該文使用最小平方形式的目標函式,對加和不加 Huber 穩健修正都進行了嘗試,對于懲罰函式則選擇了“Group LASSO”的形式,
該文還使用了提升的(Boosted)回歸樹和隨機森林模型,它們的基礎都是樹模型,樹模型的思想就是根據資料不斷地進行分支,在做出新的分支時盡可能地提高每個分支的“純度”,

樹模型的靈活度非常高,很容易發生過擬合,在樹模型的基礎上,可以用“集成(ensemble)”方法提高穩健性,有兩種常用的“集成”方法:
- Boosting 法,將很多“極其簡單”的樹加總在一起,該文用的是比較流行的梯度提升回歸樹(GBRT);
- Bagging 法,對資料集不斷進行 Boostrap 抽樣,針對每次抽樣出的資料子集訓練一棵樹,最后將所有的樹綜合在一起,這就是隨機森林(random forest),
最后是神經網路模型,它的基本結構如圖所示:

該文使用了含 1-5 層隱含層的全連接網路結構,其中 NN1 的隱含層有 32 個節點,NN2 分別有 32、16 個節點,以此類推,NN5 有 32、16、8、4、2 個節點,
由于神經網路的高度非線性和非凸性,需使用隨機梯度下降演算法(SGD)進行訓練,此外,該文加入了 l1 正則項的同時,還用了 4 種其他手段進行正則化:learning rate shrinkage,early stopping,batch normalization,以及 ensembles,
2.3 模型表現評價
該文通過計算樣本外\(R^2\) 評價模型:
\[R^2_{OOS}=1-\dfrac{\sum_{(i,t)\in\mathcal{T}_3}(r_{i,t+1}-\hat{r}_{i,t+1})^2}{\sum_{(i,t)\in\mathcal{T}_3} r^2_{i,t+1}} \]
和計量經濟學中傳統的 \(R^2\) 的不同之處有兩點,一是計算時只考慮測驗集 \(\mathcal{T}_3\) 中的點,二是分母沒有做去均值(demeaning)的操作,第二點是因為對于預測未來股票的超額收益率來說,與其用歷史均值去猜測它未來的收益率,還不如直接用 0 來猜,歷史均值的噪聲太大了,導致如果用它作為基準,標準太松,因此該文在分母中不做 demeaning,這相當于用 0 代替了均值,這樣分母更小,\(R^2_{OOS}\) 也更低,標準變得更加嚴格了,
另外,該文對 Diebold-Mariano(1995)檢驗做了改進,得出修正的DM 檢驗統計量,
2.4 變數的重要性和邊際關系
該文用兩種方式評價變數的重要性:
- 當保持其余所有變數不變,將某個變數的所有的值都設為 0 時,看整個預測 \(R^2\) 的下降程度;
- 計算對某個輸入變數的偏導數平方和(sum of squared partial derivatives,SSD),詳見 Dimopoulos,Bourret 和 Lek(1995),
另外,該文還追蹤了每個變數和期望收益率的邊際關系,對于一階的關系,可以可視化地呈現出來,
3 實證效果
3.1 資料
從 CRSP 資料庫中拿出在 NYSE、AMEX 和 NASDAQ 上市的股票,從 1957 年 3 月到 2016 年 12 月的資料,拿出 94 個公司層面特征,74 個行業虛擬變數,8 個宏觀預測因子,將 94 個公司層面特征和 8 個宏觀預測因子分別做互動項,最終有 \(94\times (1+8)+74=920\) 個變數,
3.2 模型比較
下圖展示了各模型的月度 \(R^2_{OOS}\),并分別在全樣本市值最大/最小的 1000 個股票中進行檢驗:

對于整個訓練程序,一些模型的復雜度變化如下圖:

以年為時間跨度,再次比較各模型的 \(R^2_{OOS}\):

Diebold-Mariano 檢驗統計量:

其中正的數值表示列的模型優于行的模型,黑體表示在 5%的顯著性水平上顯著,同時,該表還展示了Bonferroni multiple comparison的結果,星號表示在 5%顯著性水平上顯著,
3.3 哪些變數重要?
分別將每個變數在所有出現的地方都設為 0,計算 \(R^2\) 的減少,變數的重要性情況如下:


另一種測度是SSD,該文發現結果與 \(R^2\) 減少測度相關性極高,在不同模型中,兩種測度的 Pearson 相關系數在 84.0%到 97.7%之間,
下圖是宏觀變數的基于 \(R^2\) 減少的重要度:

可以看出在所有模型中總賬面市值比(aggregate book-to-market ratio)都非常重要,而市場波動率都不太重要,
將所有特征都變換到(-1,1)區間中,只變動 1 個變數,而固定其他變數都為 0,可以得到不同變數對期望超額收益率的邊際影響,結果如下:

樹模型和神經網路模型的優異表現,很可能來自它們捕捉復雜的預測因子的互動作用的能力,下圖是在 NN3 模型中,同時變動一對預測因子而固定其他預測因子為 0,檢驗幾對預測因子的互動作用對期望收益率的影響:


3.4 組合預測
以上都是機器學習對個股的收益率預測,如果將不同股票組成一個投資組合,機器學習能否準確預測組合的收益率?
該文檢驗了機器學習對 30 個不同的投資組合收益率的預測能力,其中 6 個組合是 S&P 500 組合,以及 Fama French 的規模、價值、盈利、投資、動量組合,這些都構建成零投資的多空組合,對于后面的 4 個組合,再使用市值分別對它們做 \(2\times 3\) 劃分,構建純多頭組合,最后共形成 30 個投資組合,對于每個投資組合,都用 CRSP 市值加權,
這些投資組合的月度預測 \(R^2\) 如下:

Campbell 和 Thompson(2008)指出,\(R^2\) 的哪怕是很小的提升,對于均值-方差型投資者也可以獲得很大的效用收益,利用預測的資訊,主動型投資者可獲得比買入并持有型投資者更高的夏普比率,使用他們在同一篇文章中提出的市場擇時交易策略,可以看不同的機器學習模型可獲得的夏普比率:

能否直接用機器學習選擇股票,構建投資組合,而非對一個既定的投資組合進行預測?本文構造了這樣的策略:在每個月末,對每個股票在下個月的收益率作出預測,基于預測對股票排序并分為 10 分位,使用市值加權構造零投資多空組合,即做多預測收益率最高的分位,做空預測收益率最低的分位,在每個月都進行上述操作,
采用不同的機器學習模型,每個分位的多頭收益率情況如下:

每種機器學習模型構造的零投資多空組合的最大回撤、最大單月回撤、換手率、平均月收益率、用 FF5 因子和動量因子做風險調整后的 \(\alpha\)、\(\alpha\) 的 t 統計量、FF5 因子和動量因子可解釋的 \(R^2\)、資訊比率(IR)情況如下:

將各多空組合的累積收益率可視化:

此外,還可以將不同機器學習模型綜合使用,有兩種方法:
- 將 11 種機器學習模型的多空組合等權重加權;
- 輪換機器學習模型,在每年都利用在驗證集資料上的預測 \(R^2\),找出最佳的機器學習模型,用它進行下一年的投資,一年后繼續重復該程序,再選擇一次最佳的機器學習模型,
參考文獻
- Gu, Shihao, Bryan Kelly, and Dacheng Xiu. 2020. "Empirical asset pricing via machine learning." Review of Financial Studies 33(5): 2223-2273.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2248.html
標籤:其他
