【因子投資】以機器學習驗證 3因子模型: Lasso Regression

以機器學習中的Lasso Regression驗證3因子模型的有效性和時效性

Hayden海頓君
data-driven-investment
6 min readMar 6, 2020

--

原創不易,若轉載請先告知,本人保有法律追訴權

警語:本文為學術目的探討,不表示任何實質投資建議,本部落格也不為投資損益負責,投資人須自負盈虧。

Abstract

本文由Fama and MacBeth (1973) 所提出的時序rolling OLS回歸估計出發,觀察出因子具有時序上的變異性(variance of time),因此假設因子具有其生命週期。驗證方式則以機器學習中的Lasso Regression為主,先檢驗各因子於整個抽樣期間(cross sectional)的重要程度,然後推廣至每個於子抽樣區間(sub-cross sectional)的重要程度,最終得出因子的生命週期有兩個特徵:

  • 因子對於報酬率的影響係數(direction):即因子於各抽樣子區間影響係數的值並不穩定,但長期來看會回歸Fama三因子模型所估計出的平均值。
  • 因子對於報酬率的影響程度(importance):即因子於各抽樣子區間的重要程度並不相同。SMB是長期因子,EXMRKT則是短期因子,而MMT和HML則是屬於中期因子。

French&Fama 3 factor model

三因子模型是因子投資的代表作,也是後續BarraRiskModel的基礎,因此得獎實在是名符其實。然而,隨著近年來因子挖掘的風氣興盛,越來越多的因子被挖掘,也有許多因子被證實為無效因子,因此人們開始討論是否此領域已經走向data mining式挖掘的路線。敝人於本著作中提出另一觀點:並非因子失去效力,而是每個因子具有其生命週期。

敝人於【因子投資】3 因子資產定價模型python實作 一文中有詳細介紹三因子模型,其中step1可以得到抽樣期間各股收益率的因子暴露,這也是接著我們後續建模的主要input,先將其展示如下:

Time Series

在給定的期間中,該因子的影響為何呢(direction)?

三因子模型接下來為先將收益率Y於時間序列上取均值後,藉由cross-sectional回歸估計出個股預期收益率對應於各因子的差異。其透過假設殘差自身於時間序列上的相關(auto-correlation)為i.i.d.常態來消除其影響,參數估計如下:

然而,此法對於殘差於整個抽樣期間的相關性(cross-sectional correlation)無能為力,因此Fama and MacBeth (1973)透過在模型中多考慮一個變量來解這個問題:時間。

他們的手法為先估計T期移動窗口的係數,接著再將其取時間序列上的均值。由於每個係數來自不同期間,因而消除了殘差於整個抽樣期間的相關性,因此估計出來的beta係數只剩下時間序列上的相關性,只要透過取時序均值即可消除。

也就是說,現在我們想要知道各因子暴露於每個給定的橫斷面時間上對於超額收益的影響為何?要回答這個問題,可以利用60天移動窗口做rolling OLS估計,估計出來後發現每個因子所對應到的beta係數於每個時期並不唯一,甚至有所有因子的係數都為負的時期。

Fama and MacBeth (1973)接著將估計出的各期間beta係數取均值,藉此消除估計出來的係數於時間序列上的相關性。然而,此法無異於否定了因子具有其生命週期的想法,如果因子其實具備時間序列上的相關性呢?

Fama的三因子模型由於假設因子無時間序列上的相關性,因此才透過先取時序均值後回歸的手法估計係數,然而其仍對殘差於橫斷面的相關無能為力。Fama and MacBeth (1973)延續其假設透過先時序回歸後取時序均值的手法消除了因子於時間序列上的相關性。但是,觀察上圖後可以發現,每個因子好似有各自的生命週期:Fama估計出來為正的momentum其實有一半的時間影響為負,原本為負的小市值因子SMB居然有一段時間為正的。

因此,我在此推翻其假設,直接認定因子具有其生命週期,接著問一個新的問題:在給定的期間中,哪一個因子的影響更為顯著呢?

Machine Learning

Lasso Regression

要回答這個問題,可以使用Lasso Regression,因為其帶有懲罰項的特點,不但能夠解決特徵間的共線性,更能夠找到更為顯著的變量,若想知道更多關於Lasso的介紹,可以到這篇文章。於下圖中可以看到,整個抽樣期間影響最大的分別為

MarketCap (SMB)>Momentum (MMT)>BookValue (HML)>ExcessMarket (EXMRKT)

Rolling Lasso

接著,我們用30天移動窗口的方式計算rolling Lasso,再將每個子期間所估計出來的參數重要程度取平均後scaling,就可以得到給定每個期間內,該因子的重要程度:

Momentum(MMT) > BookValue(HML) > MarketCap(SMB) > ExcessMarket(EXMRKT)

由此,我們知道MMT是最為穩定,於每個期間都有幾乎最大的佔比,其次為HML淨值因子。有趣的是和長期相比後,可以發現於上圖整個樣本期間內占比最大的MarketCap (SMB)反而退居倒數,此外,ExcessMarket (EXMRKT)變大許多。因此,我想我們可以大膽猜測:MarketCap (SMB) 因子屬於長期因子,於短期看不到成效,而ExcessMarket (EXMRKT) 則是屬於短期因子,在長期看來其重要性下降,至於 MMT和HML則是屬於中期因子,表現穩定長短期間接見效。

Conclusion

多考量了時間變量後,我發現因子具有生命週期,可見兩項特性:

  • 因子對於報酬率的影響係數(direction):即因子於各抽樣子區間影響係數的值並不穩定,但長期來看會回歸Fama三因子模型所估計出的平均值。
  • 因子對於報酬率的影響程度(importance):即因子於各抽樣子區間的重要程度並不相同。SMB是長期因子,EXMRKT則是短期因子,而MMT和HML則是屬於中期因子。

--

--