趙雅博,何 華
(河北工業大學 理學院,天津 300401)
隨著我國市場經濟的快速發展和人民生活水平的日益完善,股票投資已逐步成為整個金融業乃至人們生活必不可少的組成部分。若能準確預測股價的波動,合理引導控制股票市場,將進一步推動社會經濟的發展,利用股票的歷史數據和變化規律,結合科學的方法研究未來股票市場,從而減少企業和個人的風險價值。因此,股票價格預測已成為眾多學者的研究方向。
現有研究表明,智能預測模型優于傳統模型,尤其是短期預測[1]。神經網絡作為一種有效的智能信息處理技術,可根據數據內部之間的聯系建模,具有廣泛的適應能力,學習能力和映射能力[2-3],并且三層BP神經網絡有合適的隱含層節點數,就能擬合復雜的非線性映射的問題[4],從而找到非線性的輸入和輸出之間的聯系。基于以上優點,BP神經網絡早已被用于股票價格預測的模型當中[5-10]。但是單個BP神經網絡在預測股價波動范圍時的誤差具有一定的隨機性,在高維度數據結構下,網絡每次的輸出結果不一致,甚至會出現較大的差距。為了避免出現這種現象,本文引入了Bagging集成算法[11],將多個弱預測器組合為強預測器,從而減少過擬合現象,提高預測模型的準確度。目前大多學者主要是對股票價格的點預測進行研究,而股票市場是比較繁瑣的,且影響股票的因素眾多[12],因此對股票市場進行精準預測仍然非常困難[13]。在投資理財過程中,對股票價格波動區間預測的研究很有必要,而信息粒化技術具有對大規模數據進行挖掘并根據需要有效提取有用信息的能力,并在以粒子為單位的信息處理中有突出的優勢,尤其適用于股票價格波動范圍的分析和研究。為此提出了基于模糊信息粒化和BP-Bagging的股價波動范圍的預測模型,以股票數據的80%用于訓練預測模型,20%用于預測并檢驗其預測效果,得到未來股票開盤價的波動范圍。最后通過預測未來4周的價格波動范圍,并與單BP神經網絡和SVM的預測結果進行比較,驗證了此模型的準確性和應用價值。從預測結果的準確率可以發現,隨著時間的推移,預測效果逐漸減弱,但仍可判斷股票的漲跌趨勢。因此,該模型對短時間內股票開盤價波動范圍的預測效果還是具有很大的參考價值。
本文主要是通過時間序列數據預測股票價格,對于其他因素,比如投資者心理情緒、公司突發事件、經濟周期的張縮、通貨膨脹、國際金融市場的動蕩等并未考慮,因此,根據本文預測的效果,同時結合個人、企業和國家的經濟波動,理性投資股票,才能減少投資風險,實現最大收益。
信息粒化是大數據研究的熱點之一,可有效處理大量粗糙信息。最先,Lotfi A.Zadeh(L.A.Zadeh)教授引入信息粒化這一理論[14],信息粒化就是將整體化為一個個信息粒進行研究。信息粒作為信息的表現形式,通常把一些類似的事物放在一起作為一個集體研究它們的特性,這種處理事物的方法稱為信息粒化,所研究的“集體”就是信息粒。對股票價格波動范圍的進行預測時,可以根據預測模型的特點將某一時間序列化為信息粒來實驗,經過粒化的處理得到各個信息粒的主要信息。
在對高維度數據進行處理時,往往通過建立模糊信息粒反映樣本數據的特點,信息粒一般以模糊集的方式體現,用此方法對非線性的時間序列進行模糊粒化,大致可分兩個階段:劃分窗口和模糊化。窗口的劃分是將股票的數據按時間序列劃分為多個小的子序列,每個小子序列作為操作的窗口;模糊化是采用特定的方法對每個窗口模糊化,生成模糊信息粒。窗口劃分的長度可以依據原始數據的特點來確定,而模糊化的過程是關鍵,是在粒化產生的窗口建立模糊集,使其能有效替代原始數據。
本文采用的是Witold Pedrycz的模糊粒化方法,對于單個窗口的問題,把所有的時間序列X看作一個窗口做模糊化處理,模糊化的過程是在X上建立一個模糊粒子P,使其能夠合理描述X的模糊概念G,其中G是以X為論域的模糊集合,確定了G也就確定了模糊粒子P:g--ΔxisG,x∈X,因此模糊化過程的核心是確定G的隸屬函數A的過程,即A=μG。通常情況下模糊粒子的形式有三角形、梯形、高斯形、拋物形,由于三角形模糊粒子簡單易行,根據本文數據量的大小,采用三角形,其隸屬函數為:

式中:x是論域中的變量;a、m和b是參數。a、m和b分別對應于各個窗口模糊粒化后生成的3個值:Low、R、Up。在每個模糊粒子中,Low體現了股票初始樣本波動的最小值,R體現了股票初始樣本波動的大體平均水平,Up體現了股票初始樣本波動的最大值。模糊信息粒化主要是通過整體當中各個部分之間的協作和信息共享來實現誤差最小,其特點是降低維數,收斂速度快,容易實現BP神經網絡對訓練樣本的擬合。
BP神經網絡是一種信號前向傳遞、誤差反向傳播的多層前饋神經網絡。對于時間序列預測模型來說,其實質是構造一個非線性的函數f(x)去逼近F(x)的方法,即F(xi)=f(xi+T) ,T>0,其中T為預測的時間長度,而BP神經網絡就能很好的構造出一種非線性的預測模型,網絡的輸入和輸出分別代表該函數的自變量和因變量。
BP神經網絡是由輸入層、隱含層、輸出層組成的,通常需要進行兩個階段的數據處理。首先是由神經網絡隱含層的激勵函數對輸入數據進行非線性的變換,其次網絡的輸出由函數響應值通過輸出層的組合加權得到。根據輸入輸出序列(X,Y)確定輸入層節點數N、隱含層節點數L、輸出層節點數M,這樣BP神經網絡就實現映射f:Rn→Rm。由輸入向量X,計算隱含層的輸出

式中:ωij為輸入層與隱含層的連接權重;aj為隱含層的初始閾值;f為激勵函數。同理可得網絡的預測輸出

式中:ωjk為隱含層與輸出層的連接權值;bk為輸出層的初始閾值。進而可計算網絡的預測誤差:ek=gk-Yk,其中預測誤差可在網絡訓練前提前設定參數值,在未達到誤差參數值情況下,根據BP神經網絡誤差反向傳播原理,需要不斷地更新連接權值ωij和ωjk:

式中,η為訓練時的學習速率。同時更新網絡節點的閾值aj和bk:

這樣BP神經網絡在學習過程中,通過網絡輸出得到的誤差不斷更新網絡連接的權值和閾值,樣本數據中所隱含的規律逐漸刻畫到網絡中,從而得到符合此規律的BP神經網絡預測模型,使得網絡的預測值和真實值達到一致。
從上述算法中可以看出,隨著訓練數據規模的增大,神經網絡的學習效率隨之下降,泛化能力受到限制,通過模糊信息粒化的方法可以對訓練樣本進行劃分,生成多個粒,并將該結果作為訓練樣本。直觀上就可降低樣本數據的規模,節省時間復雜度。
Bagging算法是應用最為廣泛的集成學習算法之一,基本思想是將多個不同的弱學習器通過等權平均的方法組成強預測器,以提高預測模型的準確性。其特點是可并行計算,降低弱學習算法的不穩定性,從而改善整個預測模型的泛化能力。
Bagging集成的過程是給定一個弱學習器和一個訓練集{(x1,y1),(x2,y2),…,(xn,yn)},每次從訓練集中隨機選取m(m<n)個訓練樣本,訓練結束后生成預測模型fi,再將訓練樣本放回初始訓練集中進行下一次的選取,保證每次所取的訓練樣本容量相同,這里初始訓練集中的樣本在經過多次抽取過程后有可能是不存在的。k次訓練以后可以得到一個預測模型序列:f1,f2,…,fk,最終強預測模型的結果采用算術平均的方法得到模型的輸出。BP-Bagging預測模型的流程如圖1所示。

圖1 BP-Bagging算法流程圖Fig 1 BP-Bagging algorithm flow chart
股票開盤價具有很強的波動性和不確定性,對于股票開盤價的預測不能只局限于點預測的分析,還要進行一段時期內股票價格波動范圍預測的研究。信息粒化是在數據挖掘中對大量復雜信息進行模糊處理的有效工具,可反應數據的模糊屬性。此外,BP神經網絡在處理非線性問題方面具有較好的擬合能力,但在訓練過程中會出現過擬合的現象,泛化能力有所減弱,網絡每次的輸出結果不穩定。Bagging是一種提高預測能力的集成學習算法,可對弱預測器并行擬合,適用于“不穩定”的預測方法,從而提高預測模型的準確性。考慮到單一模型的局限性,難以改善模型的預測能力,本文將BP神經網絡和Bagging算法相結合,構建BP-Bagging模型,利用不同算法的優點,形成強預測器。
經過信息粒化對原始數據的預處理,可以得到原始數據的模糊粒,降低樣本規模,減少時間的復雜度。然后將模糊信息粒化后的訓練數據進行隨機有放回的抽取,保證每次所得子樣本容量相同,得到若干個子訓練集,用于訓練不同的BP神經網絡模型,最后由Bagging組合的方法輸出最終的預測結果,以提高學習速率,增強泛化能力,避免出現過學習的現象,從而保證預測結果的準確性。為此提出了基于模糊信息粒化和BP-Bagging的股價波動范圍的預測模型,具體步驟如下。
1)提取初始訓練數據集,并確定模糊粒化窗口的長度。
2)采用三角形模糊粒子對樣本數據進行處理,分別得到粒化后的Low、R和Up的范圍值,并進一步做歸一化處理:

式中:xmin=min(x);xmax=max(x)。
3)從初始訓練集中隨機有放回的抽取相同容量的k個子訓練集。
4)生成的訓練子集用于訓練單BP神經網絡,得到k個不同的弱預測模型,分別輸出各個窗口的Low、R和Up值。在神經網絡結構中,隱含層和輸出層的傳遞函數分別為tansig和purelin,最大迭代次數設置為10 000,錯誤目標精度設置為10-6,初始權重隨機產生。在訓練過程中,達到最大迭代次數或者錯誤目標精度即終止,輸出預測結果。
5)反歸一化,并對k個弱預測輸出采用Bagging集成算法確定最終的強預測結果。
6)對區間預測的結果進行對比,驗證組合預測模型的精確性和有效性。
本文通過網易財經選取中信證券(600030)股票2007.11.17—2017.11.17日期內2 405組數據的開盤價進行分析,以前1 885 d的數據作為神經網絡的訓練集建立預測模型,1 886~2 385 d的數據作為預測,由于本文主要研究股價波動范圍的短期預測,故把最后20 d數據作為驗證集,以說明模型預測的有效性。
首先以5個交易日為模糊窗口,采用三角形隸屬函數對樣本數據進行模糊信息粒化,得到各個窗口的最小值、大體平均水平和最大值,結果如圖2所示。

圖2 開盤價模糊信息粒化后的結果Fig.2 Result of granulation of open price fuzzy information
利用此模型分別對Low、R和Up值進行回歸預測時,3個值的預測過程相似,這里僅以R值的預測結果為例,將R進行歸一化處理,結果如圖3。

圖3 粒化后的R值歸一化的圖像Fig.3 Grained R-valued normalized image
從1 885 d的訓練數據(377組R值)中,隨機選取1 500 d的數據(300組R值)作為樣本訓練集,有放回的選取k次后分別用于訓練單BP神經網絡,得到k個不同的預測模型,對k個預測模型的回歸結果求等權平均得到的值即為最終的模型輸出,并畫出單BP網絡、BP-Bagging的預測值和真實值得對比圖,如圖4所示。

圖4 R的預測值與真實值的比較Fig.4 The Compare of R′s Predicted Values to Real Values
為進一步驗證預測模型的穩定性和準確性,本文采用區間準確率的指標進行評價:設A為實際波動范圍,B為預測波動范圍,則區間準確率100%。結合BP-Bagging模型和單BP神經網絡模型得到測試集的股票預測價格波動范圍和實際波動范圍的對比表,如表1、表2所示。并采用喻勝華[15]提出的支持向量機的方法同樣進行預測,得出的結果如表3所示。

表1 BP-Bagging預測開盤價的變化范圍和準確率Tab.1 BP-Bagging predicts the range and accuracy of the opening price

表2 BP預測開盤價的變化范圍和準確率Tab.2 BP predicts the range and accuracy of the opening price

表3 SVM預測開盤價的變化范圍和準確率Tab.3 SVM predicts the range and accuracy of the opening price
通過對比可以發現,本文所建立的BP-Bagging模型預測結果的準確率相對于單BP神經網絡和SVM是較高的,這也充分說明了Bagging算法對于不穩定的預測器有一定的改善。隨著時間的推移,不確定因素的增加,預測的精度有所下降,但根據區間的變化也可判斷出在這段時間內,中信證券股票的開盤價先跌后漲,與實際情況的波動趨勢相同,這也為投資者提供了有利的理財依據。
本文首先利用模糊信息粒化方法對原始數據進行處理,分別得到粒化后的最小值、大體平均水平和最大值,其次利用隨機采樣方法獲取不同的訓練數據集,分別訓練多個BP神經網絡,并結合Bagging算法將多個模型進行集成得到最終的預測輸出,構建了以開盤價波動范圍為輸出量的強預測模型,最后通過BPBagging、單BP神經網絡和SVM預測結果的對比,進一步驗證了此模型對未來短時間內股票價格預測的有效性和準確性。雖然可以實現對未來股票開盤價的漲跌范圍進行大致預測,但無法實現精準預測,主要是因為股票價格受到市場不確定因素、國家經濟政策和投資者的風險承擔能力等的影響。因此,在實際的操盤中,投資者可根據預測得到的股票開盤價的變化范圍,留出更多的考慮時間,結合當前企業的經濟狀況,以實現最大收益。