BAR講堂|如何優雅地在BAR中實現因子合成

在現代投資方法中,因子一直扮演著非常重要的作用,無論出於風險管理還是收益拆解的目的,也無論處於股票篩選還是標的跟蹤的階段,因子都是其中不可或缺的部分乃至直接的研究物件。我們在之前的連載中,也介紹了許多在既有研究和實踐中被證實十分有效的因子,這也為我們進一步地透過倍發科技投資研究系統(Betalpha BAR)挖掘因子背後的資訊奠定了基礎。

對於因子來說,無論我們是用它們尋找Alpha還是解釋收益,實際上都是在利用因子蘊含的資訊,為我們的投資行為進行服務。但在實踐過程中,由於市場資訊的混亂龐雜,如何更有效地提取有價值的訊號,剔除那些無效或者重複的含義,對於投資者而言都有著非常重要的意義。

通常來說,由於金融學含義、分析機制背後潛在的關聯性,不同的因子之間總是存在著相關關係,這給我們帶來了一個好訊息和一個壞訊息,好訊息是我們可以利用這樣的相關性更全面地分析這類因子之間的關係,這也是大類因子分析的來源,壞訊息則是不同因子之間的資訊重疊,可能會干擾我們的判斷,比如PE和PB雖然在財務上有著不同的含義,但是兩個因子都會反映市場對價格的估計水平,如果我們同時使用這兩個資訊選股,雖然能更完善地對低價或者高價股進行判斷,但兩個指標的高重合度也會讓我們損失不少獨立的分析維度。

而這恰好是因子合成分析所關心和致力於解決的問題。我們試圖用合成的方法,更有效地提取因子背後共同的資訊,這樣無疑降低了我們分析的難度和維度,也避免了無效資訊的干擾,所以人們也形象地稱之為因子的精煉或者提純,許多時候我們進行

風格因子

分析的目標也正是在於此。

畢竟連超級賽亞人都是要透過合體來變強的,嗯。

BAR講堂|如何優雅地在BAR中實現因子合成

比較嚴格的因子合成方式,是利用統計學中的主成分分析(PCA),把多指標轉化為較少的指標(實際上是找方差的貢獻度),我們往往會發現,原資料的總方差總是高度集中在幾個成分中,此時這幾個透過統計合成的高貢獻度因子就承載了許多共同的資訊。比如在BAR中,我們就可以直接使用倍發統計模型,利用主成分分析的方法來對組合進行分析,比如下面這個圖中,就可以很清楚地發現,投資組合的風險主要由兩個統計因子解釋,我們針對這兩個因子,就可以很好地最佳化投資策略。

BAR講堂|如何優雅地在BAR中實現因子合成

資料來源:倍發科技投資研究系統(Betalpha BAR)

但是主成分分析方法提取的資訊在經濟意義上的欠缺,會給許多投資者帶來理念上的困擾,一些批評者甚至懷疑這樣的方法只會有回測上的良好效果,因為這些訊號可能更多地出於資料探勘,而非金融分析。因此,人們在實踐中就提出了一系列因子合成的方法,試圖在保證因子可解釋性的同時,也能進一步地提純因子資訊。

首先我們選出了市值、流通市值、分析師數目和30日換手率四個因子,這四個因子從具體財務含義上來說,考慮了不同的側面,有的偏重考量規模,有的偏重分析交易情況,但總體來說它們都可以衡量股票在市場中的交易流動性,在倍髮指標體系中,我們也能看到它們都分類為流動性因子。我們在BAR中對中證800中的這四個因子進行2013年以來的等權重回測(月度換倉),可以發現,總體來說,因子值較高分組的股票也有較高的收益率,我們使用F1-F5多空對沖的方法計算了四個因子年化收益率,具體表現如表。需要強調的是,由於小市值和低流動性效應的存在,我們將市值和流動性市值因子對數化後求倒數,換手率因子也取倒數處理,而分析師數目因子也進行了對數化處理,回測時使用的業績基準為滬深300指數:

BAR講堂|如何優雅地在BAR中實現因子合成

△因子表現情況

資料來源:倍發科技投資研究系統(Betalpha BAR)

那麼我們如果想從整體上評估流動性因子的選股能力,應該怎麼辦呢?方法當然不是把因子簡單相加,我們需要對因子進行處理,下面我們介紹兩種常見的處理方法。

第一種方法是

因子加權合成

。這種方法需要兩個步驟,第一個步驟是因子的標準化,第二個步驟則是賦權。首先我們

在BAR中,用zscore函式,將上述四個因子進行標準化,使其評價標準統一,也避免極端值的過度干擾,然後賦予不同的權重再相加。

而這裡的主要問題在於,權重的設定。最為簡單的方法當然是直接讓四個因子等權重,但是這樣做無疑默認了四個因子在資訊中的貢獻度是相等的,顯然這不太符合情理,因此人們還會選取另外兩個方法,一個是IC加權,另一個是IC_IR加權,即分別使用IC均值、IC均值與標準差的比來作為權數,如果因子對未來預測的能力極其穩定度更高,那麼顯然因子在組合時應該被賦予的權重也越高。

基於這樣的思路,我們在BAR中進行了三種加權方式的嘗試(各因子權數之和保證為1),結果如下:

BAR講堂|如何優雅地在BAR中實現因子合成

△加權合成方法下的因子表現

資料來源:倍發科技投資研究系統(Betalpha BAR)

從結果來看,三種加權方式都有不錯的表現,對沖年化雖然低於30日換手率因子,但是年資訊比和最大回撤水平都有非常顯著的改善,IC均值而言,依然也對未來收益有不錯的預測能力,從這個層面來說,我們用四個因子合成的流動性因子,對於基於流動性的選股而言有著不錯的指導意義。

而另一種方法則需要用到

中性化

的思路。這裡我們進行如下處理:對於總市值和總流通市值兩個因子,我們直接計算這兩個因子在各自行業的標準化值,而對分析師數目和30日換手率兩個因子,我們採取下面的迴歸方式進行中性化:

BAR講堂|如何優雅地在BAR中實現因子合成

公式中的industry是行業啞變數,最後一項為殘差,我們將市值和行業部分對原始因子的影響剔除,將殘差值作為新的30日換手率和分析師數目因子來進行研究,這樣就實現了中性化。當然我們依然需要將因子進行zscore的標準化處理。接下來我們依然需要將四個因子進行加權相加,構造大類因子,加權方法如方法一所示,我們將三種加權方法的結果展示如下:

BAR講堂|如何優雅地在BAR中實現因子合成

△中性化合成方法下的因子表現

資料來源:倍發科技投資研究系統(Betalpha BAR)

從結果來看,中性化的合成方式對於提高流動性因子的預測能力有更大的幫助(IC均值顯著提升)。而從兩種方法來看,IC_IR的權重設定方法對於提高收益、控制回撤和提高預測能力來說,都表現得更好。

透過同類型的因子合成,我們可以分析投資組合偏重的風格,而如果我們不拘泥於因子型別,而只考慮因子績效的話,理論上也可以用上述兩種方法對無數個因子進行合成。一些投資者在使用這個方法時,往往首先透過單因子模型選出對收益解釋能力較好的因子,再利用這些因子進行合成,這對降低投研的分析維度,有著很積極的意義。

本文所用到的BAR語句

1/ln(Market_Value_All),總市值對數化後的倒數,即小市值因子,並命名為marketvalue;

1/ln(Market_Value_Floated_All),總流通市值對數化後的倒數,即小流通市值因子,並命名為floating

1/Turnover_30D,過去30日換手率的倒數,即低換手率因子,並命名為turn_low;

ln(EPS_Coverage),對分析師關注數因子進行對數化,並命名為lncover;

zscore_s(Market_Value,csi800)+zscore_s(floating,csi800)+zscore_s(turn_low,csi800)+zscore_s(lncover,csi800),等權構造下因子合成,zscore_s表示對資料進行標準化,csi800為所選股池;

0。47*zscore_s(Market_Value,csi800)+0。34*zscore_s(floating,csi800)+0。14*zscore_s(turn_low,csi800)+0。05*zscore_s(lncover,csi800),IC加權構造下因子合成,其中權數IC來自因子單獨迴歸的結果,權數之和為1;

0。4*zscore_s(Market_Value,csi800)+0。3*zscore_s(floating,csi800)+0。23*zscore_s(turn_low,csi800)+0。07*zscore_s(lncover,csi800),IC_IR加權構造下因子合成,其中權數IC_IR來自因子單獨迴歸的結果,權數之和為1;

zscore_s_by(marketvalue,csi800,sw_sector),按行業對小市值因子進行標準化,命名為zscoremarket;

zscore_s_by(floating,csi800,sw_sector),按行業對小流通市值因子進行標準化,命名為zscofloating;

residual_s_by(lncover,ln(Market_Value_All),csi800,sw_sector),令市值對分析師關注數進行行業中性迴歸的殘差,即剔除市值和行業影響後的分析師關注數資訊,命名為resi_cover;

residual_s_by(turn_low,marketvalue,csi800,sw_sector),令市值對低換手率進行行業中性迴歸的殘差,即剔除市值和行業影響後的換手率資訊,命名為resi_turn;

zscoremarket+zscorefloating+zscore_s(resi_cover,csi800)+zscore_s(resi_turn,csi800),等權構造下的中性化因子;

0。33*zscoremarket+0。22*zscorefloating+0。21*zscore_s(resi_cover,csi800)+0。24*zscore_s(resi_turn,csi800),IC權重構造下的中性化因子,其中IC權重來自因子單獨迴歸的結果,權數之和為1;

0。18*zscoremarket+0。13*zscorefloating+0。44*zscore_s(resi_cover,csi800)+0。25*zscore_s(resi_turn,csi800),IC_IR加權構造下中性化因子,其中權數IC_IR來自因子單獨迴歸的結果,權數之和為1

【文字首載於微信公眾號“有金有險”】

倍發科技投資研究系統(Betalpha BAR 1.0):

點選試用

風險管理工具 / 量化投資知識 / 金融大講堂 微信公眾號:

betalpha2015

(或直接輸入“

有金有險

”)