文獻(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)的重要問題。投資者希望通過分析股票的相關(guān)數(shù)據(jù),根據(jù)內(nèi)在的關(guān)系建立一個(gè)投資策略,使得在長(zhǎng)期能夠獲得超額收益。如何從眾多不同行業(yè)、不同規(guī)模的股票中挑選出具有投資價(jià)值的股票,是很困難的。多因子選股模型是投資領(lǐng)域研究的常用模型。資本市場(chǎng)十分復(fù)雜,為了更好地解釋股票價(jià)格的波動(dòng),以往的研究往往引入大量的因子來實(shí)現(xiàn)模型的復(fù)雜性和精確性,本文則主要優(yōu)化模型的預(yù)測(cè)能力。
2008年,李云飛在使用支持向量機(jī)來構(gòu)建選股模型研究中發(fā)現(xiàn),盡管選出的股票組成能夠超過指數(shù)回報(bào)率,但也發(fā)現(xiàn)組合中存在不少缺乏潛力的股票[1]。為了克服這一問題,一些新的方法被引入模型中,主要是數(shù)據(jù)預(yù)處理(預(yù)測(cè)前)和股票組合調(diào)整(預(yù)測(cè)后)兩個(gè)方向。對(duì)于數(shù)據(jù)預(yù)處理,2009年,蔡健林通過小波SSNF算法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理[2];2011年,徐國祥和楊振建引入主成分分析和遺傳算法構(gòu)建模型[3]。對(duì)于股票組合調(diào)整,2017年,周漸結(jié)合在線學(xué)習(xí)、動(dòng)態(tài)調(diào)整持倉和因子輪動(dòng)來優(yōu)化模型[4];2018年,田浩使用馬科維茨的均值方差模型進(jìn)行風(fēng)險(xiǎn)評(píng)估,來決定投資組合中的權(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)來構(gòu)建模型,有效降低因子數(shù)量的同時(shí)保證模型的精準(zhǔn)性。建立量化選股的多因子模型后,使用機(jī)器學(xué)習(xí)中的支持向量機(jī)算法(Support Vector Machine,SVM)進(jìn)行選股。本文中使用排序法來對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,使用支持向量機(jī)中數(shù)據(jù)到分離超平面的距離來對(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]指出國內(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)情況也十分必要。通過盈利、運(yùn)營、市場(chǎng)三方面的考慮,股票價(jià)格從外在到內(nèi)在,從直接到間接的影響因子都被考慮進(jìn)多因子模型之中。
在以往研究中,使用回歸方法必須要考察因子間的相關(guān)性,避免多重共線性。使用支持向量機(jī)模型很好地回避了這一問題,只需要考慮因子的顯著性和代表性。以往實(shí)證中還發(fā)現(xiàn):?jiǎn)我蜃幽P椭杏行Ы忉尮蓛r(jià)的因子,在雙因子模型、多因子模型中未必有效。因而,多因子模型中,因子的組合必須要考慮彼此的組合效果,而非單純考慮單因子模型中效果最佳的。參考文獻(xiàn)[10]的研究,選出各方面的代表性指標(biāo)作為因子。
本次選取的因子如表1所示。
1.2 支持向量機(jī)原理
對(duì)于線性可分問題,設(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ū)深悩颖菊_分開,也就是要滿足以下條件:
對(duì)于非線性問題,可以通過引入核函數(shù)將非線性轉(zhuǎn)換化為某個(gè)高維空間中的線性問題,然后在高維特征空間構(gòu)造最優(yōu)分類超平面。簡(jiǎn)而言之,支持向量機(jī)就是通過某種事先確定的非線性映射(核函數(shù)),將輸入特征向量映射到一個(gè)高維特征空間中,然后在這個(gè)特征空間中按照線性算法構(gòu)造最優(yōu)分類超平面。將目標(biāo)函數(shù)和分類決策函數(shù)中的實(shí)例內(nèi)積xi xj用核函數(shù)K(xi,xj)=來代替。選擇不同內(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ù)量過多也難以實(shí)際操作。由于國內(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%,這是最為理想的情況。通過支持向量機(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ù)來源及預(yù)處理
實(shí)證數(shù)據(jù)為中證500指數(shù)及其成分股,從2016年1月1日~2018年3月31日,共9個(gè)季度,所有數(shù)據(jù)均來自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)情況的因子也存在較大差異,如牛市中市值較大、熊市較小。常見的標(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ù)過少,使用“滑窗”方法,使用3個(gè)季度數(shù)據(jù)用于訓(xùn)練模型,預(yù)測(cè)下一季度股票的類別。需要注意的是,由于國內(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ì)用來觀察模型的分類預(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),這部分股票收益仍有很大概率能夠超過平均水平。
在預(yù)測(cè)出投資組合的股票后,在季度的第一個(gè)交易日以收盤價(jià)買入等權(quán)重股票(每支股票買入相同金額),在季度最后一個(gè)交易日以收盤價(jià)賣出全部股票。再預(yù)測(cè)下個(gè)季度股票組合進(jìn)行以上重復(fù)操作。將該策略簡(jiǎn)稱為SVM策略,即收益表現(xiàn)完全依靠模型的選股效果。下面的回測(cè)結(jié)果未考慮交易費(fèi)用。
圖7中,選出的股票組合在測(cè)試時(shí)間段內(nèi),獲得的收益超過同期的中證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)的變化。
出于這一問題的考慮,在選股之后使用擇時(shí)策略可以減少市場(chǎng)引起的收益波動(dòng)。將這一策略拓展為“財(cái)務(wù)指標(biāo)數(shù)據(jù)——基本面分析選股——技術(shù)指標(biāo)數(shù)據(jù)——技術(shù)分析擇時(shí)——交易”。均線策略和通道突破策略是捕獲市場(chǎng)變化的常用策略。下面使用它們來獲取交易的買賣信號(hào),選股情況不變,仍使用之前的股票組合。
均線策略(Moving Average,MA)是獲取趨勢(shì)的普遍方法。使用中證500指數(shù)的5日和30日均線構(gòu)成一個(gè)雙均線策略,當(dāng)5日均線向上突破30日均線作為買入信號(hào),5日均線線下穿過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的收益情況來看,回撤的幅度得到了顯著的降低,收益率并沒有原有策略高。特別是通道突破策略的收益率大幅落后原有策略,研究其買賣信號(hào)可以看到,有大量的時(shí)間段是處于空倉狀態(tài)。這是導(dǎo)致收益率偏低的主要原因,也使得資金利用率不高。
均線策略也極大地降低了回撤的幅度,但獲得的收益相對(duì)接近原有策略,遠(yuǎn)高于通道突破策略。但由于均線的滯后性,導(dǎo)致仍有幾段較大的回撤,特別是2018年3月份的回撤,均線策略在此處效果不夠顯著??紤]均線策略的效果和自身的滯后性,需要對(duì)均線策略進(jìn)行在優(yōu)化。解決滯后問題,使用高頻數(shù)據(jù)來重構(gòu)均線策略,進(jìn)而降低滯后影響,更有效地選擇交易時(shí)機(jī)。下面使用中證500指數(shù)的半小時(shí)價(jià)格數(shù)據(jù)來構(gòu)建均線策略,捕獲交易時(shí)機(jī)。
從圖9和表5的收益情況來看,高頻均線策略(HFMA)的收益情況略低于均線策略,最大回測(cè)相當(dāng),波動(dòng)率更小。收益的差異主要在2018年一季度導(dǎo)致的,這期間的股票組合與中證500指數(shù)有一定的差異。因而,交易時(shí)機(jī)進(jìn)一步精準(zhǔn),收益卻沒有進(jìn)一步提高。
3 結(jié)論
本文使用財(cái)務(wù)數(shù)據(jù)構(gòu)建了一個(gè)多因子模型來進(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)超過同期中證500指數(shù)的-5.16%累計(jì)收益,但組合的收益有較大波動(dòng)和較大回撤。引入技術(shù)分析進(jìn)行擇時(shí),使用常見的捕獲趨勢(shì)方法(均線策略、通道突破策略)來進(jìn)行擇時(shí),均有效地降低波動(dòng)率和回測(cè),累計(jì)收益率分別為63.88%和23.73%。均線策略有著更好的收益表現(xiàn),但本身存在較大滯后性的缺陷。使用高頻的數(shù)據(jù)來構(gòu)建均線策略,波動(dòng)率進(jìn)一步降低,累計(jì)收益率為53.18%,總體收益表現(xiàn)仍相當(dāng)不錯(cuò)。
參考文獻(xiàn)
[1] 李云飛.基于人工智能方法的股票價(jià)值投資研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2008.
[2] 蔡健林.中國A股市場(chǎng)選股模型研究[D].上海:上海交通大學(xué),2010.
[3] 徐國祥,楊振建.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à)能力嗎?——來自中國股市的實(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)宇,孫建明
(中國計(jì)量大學(xué) 經(jīng)濟(jì)與管理學(xué)院,浙江 杭州310018)