王麗娜 李欣欣


摘 要:股票投資常常伴隨著風險發生,越來越多的投資者期望尋求更加科學的投資方法。隨著人工智能和大數據的興起,用機器學習探究股票市場的變化規律越來越流行。本文采用機器學習的三種算法,線性神經網絡模型(Linear Model)、多層感知機神經網絡模型(MLP)和支持向量機回歸模型(SVM)分別對1990年至2019年的上證指數sh000001價格進行研究。在1%誤差容忍度下,驗證了三種模型對股價均較好的預測效果,為廣大投資者提供投資策略支持。
關鍵詞:上證指數價格;機器學習;神經網絡;支持向量機
中圖分類號:F23???? 文獻標識碼:A????? doi:10.19311/j.cnki.1672-3198.2021.17.044
1 研究背景
隨著我國股市的不斷發展和完善,越來越多的機構和個人參與到股票市場。上市公司希望從股票市場上融到資金,而投資者也期望從投資的股票中獲得收益。但股票投資也經常伴隨著風險,如果盲目進行投資,只會給投資者帶來損失,科學合理地分析股票走勢并選擇有效的投資策略越來越受到人們的關注。
正是在這種市場需求下,股票市場的各類預測問題就成為一個研究熱點。很多研究學者積極投身股票預測的研究,并取得的一定的研究成果。傳統的股票預測研究有很多技術已經比較成熟,如技術分析方法和基本面分析方法,曾勁松(2005)指出在弱有效市場下,技術分析可以幫助投資者獲得超額收益。扈香梅(2014)指出,技術分析可以在短期內小波動范圍為投資者提供最佳買賣股票的時機。也有一些學者提出了更加嚴謹的金融時間序列分析方法如向量自回歸模型、移動平均模型和自回歸移動平均模型等。閻大穎(2003)運用向量自回歸模型,檢驗了國內外股票市場價格指數長期走勢的時序相關性。王成璋等(2011)在書中詳細介紹了自回歸移動平均模型的使用及適用范圍。Bollerslev(1986)在Engle的研究基礎上豐富了ARCH模型,提出廣義自回歸條件異方差模型。張貴生等(2016)指出融合了梯度因子信息的G-ARMA-GARCH模型對股票價格預測的準確度顯著提高并且具有較好的穩定性。
隨著計算機技術飛速發展,機器學習逐漸進入人們視野,將機器學習與股票的大數據結合引起了學者的廣泛關注。目前,比較常見的股票市場預測算法大多為監督學習算法,如決策樹、隨機森林、神經網絡和支持向量機等算法。張晨希等(2006)主要采用支持向量機的機器學習方法來預測股票市場股價走勢,提高了股票分辨效率。陳俏(2015)采用小波神經網絡分析出股票不同時間序列的頻率變化規律。彭燕等(2019)基于長短期記憶網絡對股價進行預測,拓寬了人們對股票投資策略的認知。也有一些學者采用多種機器學習方法和金融模型結合的方法,有效彌補了單個算法的不足,可以更精準地預測股價的未來走向。傅航聰(2017)綜合時間序列算法、K近鄰算法以及支持向量機算法的長處,整合提出了一種綜合預測算法,整體效果也比較穩定。崔文喆等(2019)采用GARCH模型和BP神經網絡模型預測多只股票的走勢,BP神經網絡模型的預測效果均優于GARCH模型,且總體差異具有高度統計學意義?;跀祿臋C器學習試圖從數據樣本中尋找規律,并利用這些規律對新數據或無規則的數據進行預測,這已學界得到了廣泛認可。
2 模型設定
本文采用線性神經網絡、非線性神經網絡和支持向量機回歸三種模型進行預測。在線性神經網絡模型中,其激活函數是線性函數。假設輸入是一個n維向量X=[x1,x2,…,xn],從輸入到神經元的權值為ωi,則該神經元的輸出為:
v=Σxiωi+b(1)
本文函數g采用線性函數,神經網絡的輸出就是:
y=g(Σxiωi+b)=Σxiωi+b(2)
在非線性神經網絡模型中,激活函數對輸入的信號進行了非線性變換,假設輸入信號用x0表示,突觸強度用權重w0表示,神經元中的信號處理在模型中是矩陣乘法。參數w0是可以通過學習得到的,它對輸入信號產生了影響。每個輸入信號與相應的權重相乘之后再相加,之后再經過激活函數σ處理,得到輸出結果。本文選擇基本激活函數sigmoid函數,將輸入的信號經過運算,輸出一個(0,1)區間內的值。用公式表示這一過程為:
y=σ(Σiwixi+b)(3)
此時,單個的神經元模型可以看作一個二元分類器,將輸入樣本分成兩類,單個神經元可以將輸入進行判定,輸出值接近于1為一類,輸出值接近0為另一類,為后續傳導做準備。
本文設定兩層神經網絡機制,假設有三個函數f(1)和f(2),復合函數f(x)=f(2)(f(1)(x))。這種組合方式也是神經網絡中的典型方式。f(1)表示第一層,f(2)是第二層,也是隱藏層。除此之外,模型中還有輸入層和輸出層。在神經網絡的訓練過程,是使訓練集f(x)函數逼近實際的f*(x)函數的過程。通過訓練樣本反復訓練,神經網絡逐漸掌握了訓練的方向,進而優化參數,可以預測股票價格。
在支持向量機回歸模型中,本文選用線性SVM算法。對于線性函數f(x),有
f(x)=ωx+b(4)
為了讓激活函數與原函數逼近,此處對損失函數利用風險最小化求解,從而原問題變為:
min.12||ω||2+C∑li=1(ξi+ξi*)(5)
其中,||ω||2用來控制回歸模型的近似性與復雜性之間的平衡。常量C是懲罰因子,C值越大,經驗誤差在風險函數中所起的作用就越大。ξi和ξi*是松弛變量。同時在模型給定約束條件下利用二次規劃方法解決優化問題,本文利用拉格朗日乘子法將該問題轉化為其對偶形式求解。
3 數據實驗及結論
本文通過Tushare數據庫獲取了從1990-1-1到2019-1-1的上證指數數據,調用亞馬遜的深度學習庫(MXNet)構建線性神經網絡和MLP神經網絡模型,又利用機器學習里的Scikit-learn模塊構建SVM模型。在對模型進行訓練之前,因為原始數據往往會出現不一致性、不完整性、重復性和稀疏性等問題,本文首先需要對數據進行預處理,數據預處理主要由數據清洗、數據集成、數據變換和數據規約組成。預處理后,本文還對數據進行歸一化,使系統數值的絕對值變成某種相對關系,從而簡化計算,避免量綱的不一致性。
在建立線性神經網絡模型時,分析歷史數據,預測n+1的上證指數。首先,根據文件名讀取數據,并根據時間參數切割數據,最終把數據分為70%的訓練數據集和30%測試數據集。其次,求出上證指數5天、10天、15天、30天的移動平均,并添加到訓練集和測試集中。然后,把輸入的數據,轉入MXNet神經網絡模型。最后,定義訓練函數,計算每一輪損失值,不斷優化調整神經網絡模型內部各個參數的權重。其中,步長定義為8。在進行200此迭代之后,loss損失值小于千分之五,已經非常小,到最后基本保持不變。用訓練好的模型,對測試集數據進行預測。預測數據與實際數據的誤差寬容度,默認為5%,如果兩者誤差小于5%,認為是正確數據。這樣得出準確度是99.71%,如果設置寬容度是1%,則預測準確度是79.33%。
MLP神經網絡模型由一個輸入層,一個輸出層和多個隱藏層組成,在MLP中的所有神經元都類似,每個神經元由幾個輸入(連接前一層)和輸出(連接后一層)神經元。本文采用的MLP神經網絡模型采用了一個隱藏層,隱藏層神經元的數量為32。與線性神經網絡模型類似,結合具體的金融數據,對上證指數的未來值進行預測分析。除了模型設定以外,其余數據處理和預測方法都與線性神經網絡模型類似,為此不再重復。步長定義為8,優化迭代次數定義為500。從損失值可以看出,最后loss值小于萬分之八,已經非常小,并且變化不大。利用訓練好的模型對測試集數據進行預測,得到誤差寬容度分別為5%和1%時的預測準確度分別為99.66%和82.72%。相對于線性神經網絡,MLP神經網絡擬合效果更好。
最后本文采用機器學習模型支持向量機(SVM)進行價格預測。數據預處理與神經網絡模型類似,模型構建采用Scikit-learn庫,利用訓練好的模型對測試集數據進行預測,得到誤差寬容度分別為5%和1%時的預測準確度分別為99.66%和83.7%。與前兩個模型相比,支持向量機(SVM)模型效果更好。
綜上所述,從實驗結果來看,對于上證指數1990年-2019年的日度數據,在誤差容忍度為5%的情況下,三種模型區別不大。但是在誤差容忍度為1%的情況下,線性神經網絡模型效果最差,它只有一個輸入層,一個輸出層,比較簡單,而且輸出和輸入是簡單的線性關系,表達能力有限,因此效果相對較差。MLP比SVM預測結果略差。MLP是多層神經網絡,神經網絡的層數和神經元的個數都不太好確定,并且也受到優化算法的影響,其結果變動較大,難以確定最佳的網絡,不過其效果與SVM接近,通過設置更好的層數和神經元個數,其效果也可能會更好??傊?,在本文的實驗中,SVM回歸模型取得了最佳效果,MLP和線性神經網絡模型相對較差。但是由于神經網絡模型設計上的復雜度,未來通過設計良好的網絡結構和精細的優化方法可能會使效果進一步提升。
參考文獻
[1]曾勁松.技術分析與中國股票市場有效性[J].財經問題研究,2005,(08):27-30.
[2]扈香梅.淺談基本面分析和技術分析在股票市場的應用[J].新西部(理論版),2014,(05):62+64.
[3]閻大穎.實證分析中國股票市場內部及與國際市場之間價格長期走勢的因果關系[J].南開經濟研究,2003,(03):63-66+76.
[4]BOX G E P,JENKINS G M,REINSEL G C.時間序列分析:預測與控制[M].王成璋,尤梅芳,郝楊,譯.北京:機械工業出版社,2011.
[5]ENGLE R F.Autoregressive conditional heteroscedasticity with estimates of the variance of united kingdom inflation[J].Econometrica,1982,50(4):987-1007.
[6]張貴生,張信東.基于梯度因子的ARMA-GARCH股票價格預測模型研究[J].山西大學學報(哲學社會科學版),2016,39(1):115-122.
[7]張晨希,張燕平,張迎春,等.基于支持向量機的股票預測[J].計算機技術與發展,2006,(06):35-37.
[8]陳俏,梁利利.小波分析在股票指數分析中的作用[J].金融市場,2015,(6):45-47.
[9]彭燕,劉宇紅,張榮芬,等.基于LSTM的股票價格預測建模與分析[J].計算機工程與應用,2019,55(11):209-212.
[10]傅航聰,張偉.機器學習算法在股票走勢預測中的應用[J].軟件導刊,2017,16(10):31-34+46.
[11]崔文喆,李寶毅,于德勝,等.基于GARCH模型和BP神經網絡模型的股票價格預測實證分析[J].天津師范大學學報(自然科學版),2019,39(05):30-34.