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