(東華大學(xué)旭日工商管理學(xué)院 上海 200050)
在預(yù)測金融時(shí)間序列的問題中,關(guān)于股票價(jià)格指數(shù)的預(yù)測得到了諸多學(xué)者的關(guān)注。股票指數(shù)不僅反映整個(gè)市場的價(jià)格趨勢和變動(dòng)情況,還能反映國民經(jīng)濟(jì)整體發(fā)展形勢,同時(shí)也對投資者投資決策具有重要的參考價(jià)值,是靈敏反映市場社會(huì)、政治、經(jīng)濟(jì)變化情況的晴雨表。因此,預(yù)測股票指數(shù)具有重要意義。但由于市場受到諸多因素的影響,股指的不確定性增加,預(yù)測股票指數(shù)走勢成為最具挑戰(zhàn)性的金融時(shí)間序列預(yù)測問題之一。
與傳統(tǒng)的統(tǒng)計(jì)方法相比,機(jī)器學(xué)習(xí)在分類和預(yù)測等問題上的優(yōu)勢日益凸顯。將機(jī)器學(xué)習(xí)方法應(yīng)用在股票價(jià)格的預(yù)測上逐漸成為國內(nèi)外學(xué)者研究的熱點(diǎn)。Yakup Kara(2011)[1]等基于人工神經(jīng)網(wǎng)絡(luò)(ANN)和支持向量機(jī)(SVM)預(yù)測了指數(shù)的走勢,他們選擇多項(xiàng)技術(shù)指標(biāo)作為模型的輸入,對模型進(jìn)行調(diào)參后,ANN模型與SVM模型的準(zhǔn)確率均超過了70%,且ANN模型的平均預(yù)測能力明顯優(yōu)于SVM模型。Jigar Patel等(2015)[2]討論了預(yù)測印度股票市場單個(gè)股票和股指的走勢問題,他們研究比較了ANN、SVM、隨機(jī)森林與樸素貝葉斯這4種預(yù)測模型,結(jié)果發(fā)現(xiàn),當(dāng)輸入指標(biāo)為連續(xù)值時(shí),隨機(jī)森林在整體性能上優(yōu)于其他3種預(yù)測模型。不僅如此,他們還發(fā)現(xiàn),當(dāng)輸入指標(biāo)為趨勢確定性數(shù)據(jù)時(shí),所有模型的預(yù)測準(zhǔn)確率都得到了改善。冉楊帆等(2018)[3]則結(jié)合了情感分析與機(jī)器學(xué)習(xí)方法,以股票的輿論新聞數(shù)據(jù)為基礎(chǔ),運(yùn)用BP神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)回歸(SVR)兩種方法,對20只股票的價(jià)格進(jìn)行了預(yù)測,結(jié)果表明,SVR模型的預(yù)測正確率更高。王芊(2019)[4]基于機(jī)器學(xué)習(xí)預(yù)測并分析了股票收益率變化方向,綜合考慮了技術(shù)指標(biāo)、基本面指標(biāo)和輿情指標(biāo),研究發(fā)現(xiàn)極度梯度提升樹XGBoost算法的準(zhǔn)確率比隨機(jī)森林、支持向量機(jī)等多種前沿機(jī)器學(xué)習(xí)方法高。
由于研究者選擇的輸入變量、輸出變量及應(yīng)用的股票市場有所不同,各機(jī)器學(xué)習(xí)方法的預(yù)測表現(xiàn)也有所差異。但總體來說,相對于傳統(tǒng)的統(tǒng)計(jì)方法,越來越多的學(xué)者更傾向于選擇機(jī)器學(xué)習(xí)方法來預(yù)測股市走勢問題。本文借鑒國內(nèi)外學(xué)者的研究,以滬深300指數(shù)為市場代表,建立10個(gè)技術(shù)面指標(biāo),通過支持向量機(jī)、隨機(jī)森林、XGBoost預(yù)測股指的價(jià)格變動(dòng)方向,并對比分析各模型的準(zhǔn)確率。
滬深300指數(shù)集合了滬深兩個(gè)市場流動(dòng)性最強(qiáng)、規(guī)模最大的300只股票,是A股最具代表性的核心指數(shù)。本文以滬深300指數(shù)為代表來預(yù)測股市的漲跌。選取2006年1月至2019年8月共計(jì)3 323個(gè)交易日的開盤價(jià)(Ot)、最低價(jià)(Lt)、最高價(jià)(Ht)、收盤價(jià)Ct以及成交量(Volt)指標(biāo),以此為基礎(chǔ)建立如表1所示的10個(gè)技術(shù)指標(biāo)。
表1 技術(shù)指標(biāo)建立
由于每個(gè)技術(shù)指標(biāo)具有不同的量綱與數(shù)量級,本文將做標(biāo)準(zhǔn)化處理后作為模型的特征輸入。輸出特征為下一日股指的價(jià)格變動(dòng)方向,將其轉(zhuǎn)化為一個(gè)二分類問題,分類結(jié)果為“上漲”和“下跌”。
為輸出變量,class=1代表上漲,class=0代表下跌或不變。
相對于傳統(tǒng)的邏輯回歸、決策樹簡單的機(jī)器學(xué)習(xí)方法,支持向量機(jī)、隨機(jī)森林以及新穎的XGBoost等機(jī)器學(xué)習(xí)方法因?yàn)榉诸愋阅芎?、?zhǔn)確率高等優(yōu)勢得到學(xué)者的廣泛應(yīng)用。本文試圖通過建立支持向量機(jī)、隨機(jī)森林和XGBoost模型預(yù)測滬深300指數(shù)價(jià)格變化方向,并對比不同機(jī)器學(xué)習(xí)方法的準(zhǔn)確率。本文選取兩分類模型中常用評價(jià)指標(biāo)(見表2)以及ROC曲線來度量各模型的分類性能。評價(jià)指標(biāo)計(jì)算方式依賴混淆矩陣見表3。而ROC曲線向上離對角線越遠(yuǎn),曲線下的面積AUC值就越大,則說明模型的分類性能越好。
表2 模型評價(jià)指標(biāo)
表3 混淆矩陣
本文研究的樣本區(qū)間包括2006年1月至2019年8月共計(jì)3 323個(gè)交易日的數(shù)據(jù),該區(qū)間包含了股市2007年與2015年兩次大起大落時(shí)期,這對測試模型的穩(wěn)健性具有重要意義。為測試模型準(zhǔn)確性,本文將樣本數(shù)據(jù)分為訓(xùn)練集和測試集,其中訓(xùn)練集占70%,測試集占30%。對10個(gè)技術(shù)指標(biāo)做標(biāo)準(zhǔn)化處理后,分別使用支持向量機(jī)、隨機(jī)森林和XGBoost模型對訓(xùn)練集監(jiān)督訓(xùn)練,并對測試集的進(jìn)行預(yù)測,以檢驗(yàn)?zāi)P偷臏?zhǔn)確性。
SVM是比較常用的分類算法,其核心是采用線性分類器,當(dāng)數(shù)據(jù)在當(dāng)前維度下不可分割時(shí),可以映射至更高的維度上。因此它在識(shí)別高維數(shù)據(jù)時(shí)要優(yōu)于其他機(jī)器學(xué)習(xí)模型。本文經(jīng)過多次參數(shù)調(diào)整,當(dāng)懲罰項(xiàng)C取3時(shí),模型的分類性能較好。利用訓(xùn)練好的SVM模型在測試集上預(yù)測,輸出的混淆矩陣見表4,ROC曲線見圖1。
表4 SVM測試集混淆矩陣
圖1 SVM測試集ROC曲線
由表4可知,SVM模型預(yù)測下一交易日股指價(jià)格上漲且實(shí)際也上漲的有344次,預(yù)測為股指價(jià)格下跌且實(shí)際也下跌的有199次,得到模型的準(zhǔn)確率為0.544 6。圖1展示了SVM模型測試集的ROC曲線,該模型的AUC值為0.545,曲線偏離對角線有一定距離,模型分類性能一般。
隨機(jī)森林實(shí)質(zhì)是對決策樹算法的改進(jìn),將多個(gè)決策樹合并在一起,每棵樹建立依賴獨(dú)立抽取的樣本。由于單棵樹的分類能力可能很小,但在隨機(jī)產(chǎn)生大量的決策樹后,一個(gè)測試樣本可以通過每一棵樹的分類結(jié)果經(jīng)統(tǒng)計(jì)后選擇最可能的分類。經(jīng)過多次實(shí)驗(yàn),本文最終設(shè)置森林中樹的棵數(shù)為300棵。利用訓(xùn)練好的隨機(jī)森林模型在測試集上預(yù)測,輸出的混淆矩陣見表5,輸出的ROC曲線見圖2。
表5 隨機(jī)森林測試集混淆矩陣
圖2 隨機(jī)森林測試集ROC曲線
由表5可知,隨機(jī)森林預(yù)測為1且實(shí)際也為1的次數(shù)有336次,預(yù)測為1實(shí)際為零的次數(shù)有204次,實(shí)際為零預(yù)測為1的次數(shù)有236次,預(yù)測為零實(shí)際也為零的次數(shù)有222次。最終可得隨機(jī)森林模型的準(zhǔn)確率為0.559 7。圖2展示了隨機(jī)森林模型的ROC曲線,其AUC值為0.554,ROC曲線偏離對角線有一定距離,模型分類效果相比支持向量機(jī)有了提升。
XGBoost,極端梯度提升,是GBDT的一個(gè)變種,GBDT在優(yōu)化時(shí)只用到一階導(dǎo)數(shù),而XGBoost則對代價(jià)函數(shù)做了二階泰勒展開,同時(shí)使用了一階導(dǎo)數(shù)和二階導(dǎo)數(shù),并且在損失函數(shù)中引入了正則化項(xiàng),用于控制模型的復(fù)雜度,防止模型過擬合。經(jīng)過多次實(shí)驗(yàn),當(dāng)收縮步長設(shè)置為0.25,迭代次數(shù)為25次,樹的最大深度設(shè)置為10時(shí),模型得到了較好的分類效果。將學(xué)習(xí)好的模型用于測試集,輸出的混淆矩陣見表6,得到的ROC曲線見圖3。
表6 XGBoost測試集混淆矩陣
圖3 XGBoost測試集ROC曲線
由表6可知,XGBoost預(yù)測下一交易日股指價(jià)格上漲且實(shí)際情況也為上漲的次數(shù)有339次,預(yù)測下一交易日股指下跌實(shí)際情況上漲的有201次,預(yù)測為上漲實(shí)際為下跌的有232次,預(yù)測為下跌實(shí)際也下跌的有225次。最終可得XGBoost模型的準(zhǔn)確率為0.565 7。圖3展示了XGBoost模型的ROC曲線,其AUC值為0.560,ROC曲線偏離對角線有一定距離,XGBoost模型分類性能相對較好。
在二分類條件下比較各算法的預(yù)測準(zhǔn)確率,即把下一交易日滬深300指數(shù)價(jià)格上升的樣本設(shè)置標(biāo)簽為1,價(jià)格下降的樣本設(shè)置標(biāo)簽為零。利用支持向量機(jī)、隨機(jī)森林、XGBoost三種機(jī)器學(xué)習(xí)方法預(yù)測的結(jié)果見表7。
由表7可見,SVM預(yù)測準(zhǔn)確率為0.544 6,隨機(jī)森林預(yù)測準(zhǔn)確率為0.5597,XGBoost預(yù)測準(zhǔn)確率為0.565 7,XGBoost相對SVM提高了3.87%,相對隨機(jī)森林提高了1.08%;SVM的AUC值為0.545,隨機(jī)森林的AUC值為0.554,XGBoost的AUC值為0.560,XGBoost相對SVM提高了2.75%,相對隨機(jī)森林提高了1.08%;其他指標(biāo)也具有相似的情況。隨著模型準(zhǔn)確度的提高,模型的AUC值越來越大,模型分類性也越來越好。由此可見,XGBoost的預(yù)測精度相對SVM和隨機(jī)森林都有了較大幅度的提升,其中相對SVM的提升幅度更為明顯。
機(jī)器學(xué)習(xí)是人工智能及模式識(shí)別領(lǐng)域的共同研究熱點(diǎn),最前沿的研究領(lǐng)域之一。如何將其應(yīng)用于金融領(lǐng)域,是近年來學(xué)者和投資者廣泛關(guān)注、積極探索的問題。本文通過支持向量機(jī)、隨機(jī)森林和XGBoost模型預(yù)測滬深300指數(shù)價(jià)格變動(dòng)方向,并且通過準(zhǔn)確率、AUC值等系統(tǒng)比較了該三種模型的分類性能,得出如下結(jié)論。第一,從數(shù)據(jù)本身看,滬深300指數(shù)具有反映滬深市場整體形勢的能力,能夠較好地反映市場價(jià)格的變化方向。本文以其每日開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)、成交量為基礎(chǔ)建立10個(gè)技術(shù)面指標(biāo)作為SVM、隨機(jī)森林和XGBoost的特征輸入,可以較好地預(yù)測下一交易日的變動(dòng)方向。其中SVM的預(yù)測準(zhǔn)確率為0.544 6,隨機(jī)森林的準(zhǔn)確率為0.559 7,XGBoost的準(zhǔn)確率為0.565 7,在一定程度上證明了機(jī)器學(xué)習(xí)方法在金融資產(chǎn)價(jià)格預(yù)測領(lǐng)域的有效性。第二,從使用的機(jī)器學(xué)習(xí)方法看,XGBoost模型預(yù)測準(zhǔn)確率相對SVM提高了3.87%,相對隨機(jī)森林提高了1.08%,說明了XGBoost的分類性能優(yōu)于SVM和隨機(jī)森林。此外,XGBoost方法新穎,用于預(yù)測金融資產(chǎn)價(jià)格的研究相對較少,本文將其用于預(yù)測滬深300指數(shù)的價(jià)格變動(dòng)方向,在一定程度上證明了該方法的可行性,將其用于更多的領(lǐng)域是今后的研究方向。