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