文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190304
中文引用格式: 張偉楠,魯統(tǒng)宇,孫建明. 支持向量機在多因子選股的預測優(yōu)化[J].電子技術應用,2019,45(9):22-27.
英文引用格式: Zhang Weinan,Lu Tongyu,Sun Jianming. An SVM improvement prediction in multifactor model for stocks selection[J]. Application of Electronic Technique,2019,45(9):22-27.
0 引言
哪些因子決定了股票的收益,是股票市場的重要問題。投資者希望通過分析股票的相關數據,根據內在的關系建立一個投資策略,使得在長期能夠獲得超額收益。如何從眾多不同行業(yè)、不同規(guī)模的股票中挑選出具有投資價值的股票,是很困難的。多因子選股模型是投資領域研究的常用模型。資本市場十分復雜,為了更好地解釋股票價格的波動,以往的研究往往引入大量的因子來實現模型的復雜性和精確性,本文則主要優(yōu)化模型的預測能力。
2008年,李云飛在使用支持向量機來構建選股模型研究中發(fā)現,盡管選出的股票組成能夠超過指數回報率,但也發(fā)現組合中存在不少缺乏潛力的股票[1]。為了克服這一問題,一些新的方法被引入模型中,主要是數據預處理(預測前)和股票組合調整(預測后)兩個方向。對于數據預處理,2009年,蔡健林通過小波SSNF算法對數據進行預處理[2];2011年,徐國祥和楊振建引入主成分分析和遺傳算法構建模型[3]。對于股票組合調整,2017年,周漸結合在線學習、動態(tài)調整持倉和因子輪動來優(yōu)化模型[4];2018年,田浩使用馬科維茨的均值方差模型進行風險評估,來決定投資組合中的權重[5]。在支持向量機的預測優(yōu)化方面,2017年,武海燕和李衛(wèi)平采用本征分解方法對核矩陣進行降維處理和隨機抽樣訓練樣本,提高SVM分類器的運算效率[6];2018年,朱菲和金煒東利用Platt概率模型將不同核函數SVM分類器的硬輸出轉化為概率輸出[7]。
本研究主要使用股票的財務指標,使用股票各個方面的代表性指標來構建模型,有效降低因子數量的同時保證模型的精準性。建立量化選股的多因子模型后,使用機器學習中的支持向量機算法(Support Vector Machine,SVM)進行選股。本文中使用排序法來對數據進行預處理,使用支持向量機中數據到分離超平面的距離來對支持向量機的預測進行優(yōu)化。其內在含義十分明確,實證的結果表現良好;結合技術分析進行擇時,還能進一步優(yōu)化收益表現。
1 預測原理
1.1 因子選擇
文獻[8]指出國內股票的收益情況與盈利情況有很強的關聯。這是傳統(tǒng)股票投資考慮的主要因素,但盈利有滯后性和不確定性,所以還要考慮公司盈利的內在機制,即公司的運行情況。股票投資中股價的漲跌受市場情況影響,股價價格回到內在價值水平往往受市場情況的影響。文獻[9]指出股票在市場上的交易表現情況也十分必要。通過盈利、運營、市場三方面的考慮,股票價格從外在到內在,從直接到間接的影響因子都被考慮進多因子模型之中。
在以往研究中,使用回歸方法必須要考察因子間的相關性,避免多重共線性。使用支持向量機模型很好地回避了這一問題,只需要考慮因子的顯著性和代表性。以往實證中還發(fā)現:單因子模型中有效解釋股價的因子,在雙因子模型、多因子模型中未必有效。因而,多因子模型中,因子的組合必須要考慮彼此的組合效果,而非單純考慮單因子模型中效果最佳的。參考文獻[10]的研究,選出各方面的代表性指標作為因子。
本次選取的因子如表1所示。
1.2 支持向量機原理
對于線性可分問題,設線性可分樣本集為(xi,yi), i=1,2,…,n,x∈Rd,y∈{1,-1}是類別標簽。判別函數的一般形式為g(x)=w·x+b,w和b為待求參數。w為法向量,決定了超平面的方向;b為位移項,決定超平面到原點的距離。分類平面方程為w·x+b=0 。將線性判別函數進行歸一化,使樣本集內的兩類樣本都能夠滿足條件|g(x)|=1,也就是使離分類面最近的樣本的|g(x)|=1,此時分類間隔等于2/||w||,因此使分類間隔2/||w||最大,就等價于使得||w||(或者||w||2)最小。分類超平面能夠將兩類樣本正確分開,也就是要滿足以下條件:
對于非線性問題,可以通過引入核函數將非線性轉換化為某個高維空間中的線性問題,然后在高維特征空間構造最優(yōu)分類超平面。簡而言之,支持向量機就是通過某種事先確定的非線性映射(核函數),將輸入特征向量映射到一個高維特征空間中,然后在這個特征空間中按照線性算法構造最優(yōu)分類超平面。將目標函數和分類決策函數中的實例內積xi xj用核函數K(xi,xj)=來代替。選擇不同內積核函數,就可以構造不同的支持向量機模型。將上面預處理好的數據導入支持向量機模型中進行訓練。支持向量機的參數使用超參數和交叉驗證進行確定,從而在訓練數據中得到最優(yōu)模型。
1.3 支持向量機在選股上的優(yōu)化
訓練數據中,類別“1”和類別“0”的樣本數量大致相當。在訓練好模型后,對股票池中的股票進行預測,支持向量機的預測中,兩類股票的數量也大致相當。以中證500成分股作為股票池,在支持向量機模型預測后,類別“1”的股票也有大約200支。這意味者,預測為類別“1”的股票中存在大量類別“0”的股票。這樣的股票組合收益效果不好,股票數量過多也難以實際操作。由于國內股票市場對賣空的限制,只針對類別“1”股票進行買賣操作。預測結果中,真正例(True Positive,TP)就十分重要,查準率P的情況直接表現了分類效果和投資收益。二分類混淆矩陣表如表2所示。其中,FP表示假正例(False Positive),FN表示假反例(False Negative),TN表示真反例(True Negative)。
查準率P定義為:
顯然,0≤P≤1,在P=1時所有預測為類別“1”的股票都屬于類別“1”,即組合中所有股票的收益均屬于前20%,這是最為理想的情況。通過支持向量機模型的預測,難以達到這樣的效果。需要對支持向量機中預測為類別“1”的股票進行再預測分類,減少股票組合的數量和提高查準率P,保證股票組合的實際可操作性和良好的收益情況。
針對上面的實際需要和支持向量機的特點,對支持向量機模型進行如下優(yōu)化。支持向量機模型中,使用最優(yōu)參數訓練模型之后,得到了最優(yōu)解和分離超平面。利用分離超平面,可以輕易地計算出預測數據到分離超平面的距離。對所有預測為類別“1”的股票,計算各自到分離超平面的距離,進行降序排序,取前5%股票再預測為類別“1”。支持向量機模型中距離最遠的前5%的股票,優(yōu)化支持向量機的分類預測,作為股票的投資組合。這一優(yōu)化,既靈活地調整組合的股票數量,又直接地提高查準率P。
2 實驗結果及分析
2.1 數據來源及預處理
實證數據為中證500指數及其成分股,從2016年1月1日~2018年3月31日,共9個季度,所有數據均來自Wind金融終端。所有數據均按下面的方法進行數據預處理,使用“滑窗”方法進行預測,得到的預測結果從2016年10月~2018年3月,共6個季度。
對數據檢查缺失項,由于填充難度較大、所有因子均十分重要,直接剔除含缺失項的股票。股票的因子的數值差異巨大、因子間的量綱不統(tǒng)一,必須要進行標準化處理。由于股票的行業(yè)差別巨大,財務情況的因子存在較大差異,如銀行業(yè)的負債率很高;市場環(huán)境存在差別,市場情況的因子也存在較大差異,如牛市中市值較大、熊市較小。常見的標準化方法,如z-score進行處理后,數據間仍有較大差異、季度間的可比較性較差。股票池中的股票數量固定,對單個因子在當單個季度在股票池中進行排序,再將名次除以最大名次,將因子的原始數據縮放到(0,1]之間。這樣的處理,既實現了數據的標準化,又避免數據間的較大差異,還能夠保證季度之間具有可比性。
數據標記,在模型訓練前需要對股票進行類別標記。對所有股票的季度收益率進行統(tǒng)計,收益率為前20%的股票標記為類別“1”;收益率后20%的股票標記為類別“0”。這兩類股票用于模型訓練,兩類間較大的差異有助于得到優(yōu)秀的分類模型。這樣的處理會損失60%的數據,為避免訓練數據過少,使用“滑窗”方法,使用3個季度數據用于訓練模型,預測下一季度股票的類別。需要注意的是,由于國內股票市場對賣空的限制,預測結果中只關注類別“1”股票。因此,在預測數據中,收益前20%的股票標記為類別“1”,其余股票均標記為類別“0”。分類預測結果與這一標記結果進行比對,觀察分類預測效果。
2.2 因子和模型情況
圖1中,roic和roe的相關系數較大,其他因子間的相關系數都處于較低的水平。表明,這些因子可以很好地衡量股票的基本面情況;在機器學習中,這些特征具有很好的代表性。
圖2中,使用3個季度的數據做訓練集測試模型的準確率的收斂情況。模型準確率可以得到收斂,數據規(guī)模的增加對模型的收斂準確率提高有一定的作用,最終準確率收斂于59%。
2.3 預測結果
本文中查準率P更為重要,混淆矩陣會用來觀察模型的分類預測結果。圖3~圖5中,圖(a)的混淆矩陣為優(yōu)化前使用支持向量機進行分類預測;圖(b)的混淆矩陣為使用距離指標對支持向量機分類進行優(yōu)化后的分類預測。
圖3~圖5中,優(yōu)化前的支持向量機模型能夠將大多數的類別“0”正確分類。優(yōu)化后,預測為類別“1”的組合中,屬于類別“1”的比例大大提高。2017年三季度的預測結果最為優(yōu)秀,11支股票中10支屬于類別“1”。
2.4 結果分析
如圖6所示,中證500成分股的收益情況呈正偏態(tài)分布,這使得類別“1”的收益率遠遠高于平均水平。最終的股票組合還有部分類別“0”的股票,支持向量機模型中距離分離超平面較遠,這部分股票收益仍有很大概率能夠超過平均水平。
在預測出投資組合的股票后,在季度的第一個交易日以收盤價買入等權重股票(每支股票買入相同金額),在季度最后一個交易日以收盤價賣出全部股票。再預測下個季度股票組合進行以上重復操作。將該策略簡稱為SVM策略,即收益表現完全依靠模型的選股效果。下面的回測結果未考慮交易費用。
圖7中,選出的股票組合在測試時間段內,獲得的收益超過同期的中證500指數,收益率足夠優(yōu)秀。但圖7和表3中出現了大幅度的回撤和較大波動。這在實際中會嚴重影響投資者信心,影響投資決策。本文判斷這主要是使用財務數據進行選股,數據存在一定的滯后性、模糊性,難以快速反映出市場的變化。
出于這一問題的考慮,在選股之后使用擇時策略可以減少市場引起的收益波動。將這一策略拓展為“財務指標數據——基本面分析選股——技術指標數據——技術分析擇時——交易”。均線策略和通道突破策略是捕獲市場變化的常用策略。下面使用它們來獲取交易的買賣信號,選股情況不變,仍使用之前的股票組合。
均線策略(Moving Average,MA)是獲取趨勢的普遍方法。使用中證500指數的5日和30日均線構成一個雙均線策略,當5日均線向上突破30日均線作為買入信號,5日均線線下穿過30日均線作為賣出信號。通道突破策略(Channel Breakout,CB)是另一種判斷趨勢的常用方法。中證500指數的20日最高價和最低價作為通道上限和下限。當價格突破上限時,作為買入信號;突破下限時,作為賣出信號。利用以上兩種策略作為判斷交易時機,結合之前的股票組合以后,重新測算收益情況。
從圖8和表4的收益情況來看,回撤的幅度得到了顯著的降低,收益率并沒有原有策略高。特別是通道突破策略的收益率大幅落后原有策略,研究其買賣信號可以看到,有大量的時間段是處于空倉狀態(tài)。這是導致收益率偏低的主要原因,也使得資金利用率不高。
均線策略也極大地降低了回撤的幅度,但獲得的收益相對接近原有策略,遠高于通道突破策略。但由于均線的滯后性,導致仍有幾段較大的回撤,特別是2018年3月份的回撤,均線策略在此處效果不夠顯著??紤]均線策略的效果和自身的滯后性,需要對均線策略進行在優(yōu)化。解決滯后問題,使用高頻數據來重構均線策略,進而降低滯后影響,更有效地選擇交易時機。下面使用中證500指數的半小時價格數據來構建均線策略,捕獲交易時機。
從圖9和表5的收益情況來看,高頻均線策略(HFMA)的收益情況略低于均線策略,最大回測相當,波動率更小。收益的差異主要在2018年一季度導致的,這期間的股票組合與中證500指數有一定的差異。因而,交易時機進一步精準,收益卻沒有進一步提高。
3 結論
本文使用財務數據構建了一個多因子模型來進行股票選擇。數據使用排序法進行預處理,再使用支持向量機對股票進行收益的預測分類,最后使用數據到分隔超平面的距離進行優(yōu)化預測分類。使用這一方法提高了選股的查準率,減少了投資組合的股票數量。
實證部分,以中證500指數成分股為股票池,從2016年~2018年一季度,以3個季度作為“滑窗”長度用于訓練模型,預測下一季度的股票收益類別,得到股票組合。2016年四季度~2018年一季度中,股票組合在每個季度第一個交易日買入、最后一個交易日賣出,獲得累計收益率88.96%。這遠遠超過同期中證500指數的-5.16%累計收益,但組合的收益有較大波動和較大回撤。引入技術分析進行擇時,使用常見的捕獲趨勢方法(均線策略、通道突破策略)來進行擇時,均有效地降低波動率和回測,累計收益率分別為63.88%和23.73%。均線策略有著更好的收益表現,但本身存在較大滯后性的缺陷。使用高頻的數據來構建均線策略,波動率進一步降低,累計收益率為53.18%,總體收益表現仍相當不錯。
參考文獻
[1] 李云飛.基于人工智能方法的股票價值投資研究[D].哈爾濱:哈爾濱工業(yè)大學,2008.
[2] 蔡健林.中國A股市場選股模型研究[D].上海:上海交通大學,2010.
[3] 徐國祥,楊振建.PCA-GA-SVM模型的構建及應用研究——滬深300指數預測精度實證分析[J].數量經濟與及數據經濟研究,2011(2):135-147.
[4] 周漸.基于SVM算法的多因子選股模型實證研究[D].杭州:浙江工商大學,2017.
[5] 田浩.基于XGBoost的滬深300量化投資策略研究[D].上海:上海師范大學,2018.
[6] 武海燕,李衛(wèi)平.結合本征分解和抽樣學習的快速SVM分類器[J].電子技術應用,2017,43(9):141-145.
[7] 朱菲,金煒東.一種SVM-DS決策融合方法及在高鐵故障中的應用[J].電子技術應用,2018,44(7):127-130,134.
[8] 張信東,李建瑩.盈利因子與投資因子具有定價能力嗎?——來自中國股市的實證[J].金融與經濟,2018(2):10-18.
[9] 李興玉,羅守貴.員工持股計劃增加股東財富的路徑研究與多因子投資組合策略[J].管理現代化,2017,37(5):64-66.
[10] TORTORIELLO R.量化投資策略——如何實現超額收益Alpha[M].李洪成,許文星,譯.上海:上海交通大學出版社,2013.
作者信息:
張偉楠,魯統(tǒng)宇,孫建明
(中國計量大學 經濟與管理學院,浙江 杭州310018)