楊靜凌, 唐國強, 張建文
(桂林理工大學(xué) 理學(xué)院,廣西 桂林 541006)
股票價格預(yù)測一直受社會各界人士的關(guān)注,然而股票價格具有高度非正態(tài)、非線性和非平穩(wěn)性等復(fù)雜特征,且受政治變數(shù)、社會環(huán)境、公司決策、投資者心理等諸多因素的影響,使股票價格預(yù)測面臨巨大的挑戰(zhàn)。
股票價格預(yù)測方法主要為:統(tǒng)計模型、人工智能模型、組合模型等方法。常用的統(tǒng)計模型有自回歸移動平均(ARIMA)、廣義自回歸條件異方差(GARCH)等。這些模型計算量小、過程簡單,但是通常忽略股票價格的非線性、非平穩(wěn)等特征,對數(shù)據(jù)的分布有較高的要求。人工智能模型對數(shù)據(jù)表現(xiàn)出強大的自學(xué)習(xí)、自適應(yīng)、非線性映射能力,對股票價格的復(fù)雜特征有較好的跟隨能力。目前,已有許多研究利用人工智能對股票價格進行預(yù)測[1~4]。因單一模型無法刻畫股票價格的多重特征,有學(xué)者嘗試用組合模型來分析股票數(shù)據(jù)的走勢,并取得較好的預(yù)測效果[5~8]。然而一般的組合模型對股票數(shù)據(jù)的刻畫無法滿足人們對股票預(yù)測精度的高要求。為此,一些學(xué)者提出經(jīng)驗?zāi)B(tài)分解(EMD)結(jié)合人工智能對股票數(shù)據(jù)進行預(yù)測,進一步提高了股票數(shù)據(jù)的預(yù)測精度。王文波等[9]將EMD與神經(jīng)網(wǎng)絡(luò)相結(jié)合,再利用混沌分析去除時間序列的混沌性,有效預(yù)測股票收盤價。賀毅岳等[10]提出基于EMD利用ε不敏感支持向量建立預(yù)測模型(EMD-SVRF)對上證指數(shù)進行預(yù)測。吳曼曼等[11]將EMD結(jié)合改進的Elman神經(jīng)網(wǎng)絡(luò)對上證指數(shù)和深證成指進行短期預(yù)測。
綜合以上研究,發(fā)現(xiàn)EMD和人工智能結(jié)合可以有效地處理股票價格非正態(tài)、非線性、非平穩(wěn)性等特征。但還存在以下不足:(1)EMD存在模態(tài)混疊的缺陷,影響預(yù)測效果;(2)所用人工智能模型較簡單,預(yù)測精度不夠高;(3)前人研究大多基于某國的股票數(shù)據(jù)進行預(yù)測,不能有效驗證模型的普及性。為此,本文提出以Elman神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),引入EEMD與Adaboost算法的組合模型對中美兩國的股票日收盤價進行預(yù)測。
2004年,Wu和Huang[12]提出了集合經(jīng)驗?zāi)B(tài)分解(EEMD),有效解決了EMD方法出現(xiàn)的模態(tài)混疊問題。EEMD的分解過程如下:
步驟1在原始數(shù)列y(t)中加入白噪聲序列n(t),得到新的序列,記為s(t)。即:
S(t)=y(t)+n(t)
(1)
步驟2對S(t)用3次樣條插值來分別確定其上下包絡(luò)線序列,然后計算得到上下包絡(luò)線的均值m1(t),序列S(t)-m1(t)得到剩余分量h1(t):
h1(t)=S(t)-m1(t)
(2)
步驟3對新的時間序列h1(t)重復(fù)(1)、(2)步驟,直到h1(t)滿足EMD的兩個條件:(1)局部極值點和過零點的數(shù)目相等或相差一個;(2)局部最大值的包絡(luò)和局部最小值的包絡(luò)平均值在任意時刻均為0。
此時,h1(t)為原始數(shù)列y(t)的第一個分量IMF1(t)=h1(t),殘差分量為:
Res1(t)=y(t)-IMF1(t)
(3)
步驟4將Res1(t)定義為新的原始序列,重復(fù)步驟1~3,每次添加不同的白噪聲序列,得到第二IMF個分量,如此循環(huán)反復(fù),直到殘差序列Res(t)為單調(diào)函數(shù),則可以得到多個IMF分量和一個殘差分量。
步驟5將各分量進行集合平均,以消除多次加入白噪聲對分量的影響。得到的本征模態(tài)分量表達式為:
(4)
殘差分量表達式為:
(5)
此時股票收盤價可被表示為:
(6)
其中J為IMF分量的個數(shù)。
1990年,Elman提出了Elman神經(jīng)網(wǎng)絡(luò),其具有時變特性,能直接動態(tài)反映數(shù)據(jù)特征,Elman網(wǎng)絡(luò)分為四層,分別為輸入層、隱含層、承接層和輸出層[13]。其結(jié)構(gòu)如圖1所示。
圖1 Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
Elman神經(jīng)網(wǎng)絡(luò)的非線性狀態(tài)空間表達式為:
y(k)=g(w3x(k))
(7)
x(k)=f(w1xc(k)+w2(u(k-1)))
(8)
xc(k)=x(k-1)
(9)
其中,y、x、u、xc分別代表m維輸出結(jié)點向量、n維隱含層結(jié)點單元向量、r維輸入向量、n維反饋狀態(tài)向量;w3、w2、w1分別代表隱含層到輸出層、輸入層到隱含層、承接層到隱含層的連接權(quán)重;g(·)為輸出神經(jīng)元的傳遞函數(shù),f(·)為隱含層神經(jīng)元的傳遞函數(shù)。
Adaboost是一種迭代算法,可以提高任意給定學(xué)習(xí)算法的精度,不僅可以應(yīng)用于預(yù)測問題,也可以應(yīng)用于分類問題。其核心思想是對同一個訓(xùn)練樣本訓(xùn)練不同的預(yù)測器(弱預(yù)測器),然后把這些弱預(yù)測器集合起來,構(gòu)成一個更強的預(yù)測器(強預(yù)測器)[14]。本文Adaboost算法在Elman-Adaboost組合中發(fā)揮作用,以Elman神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),通過Adaboost算法將Elman神經(jīng)網(wǎng)絡(luò)作為弱預(yù)測器,對Elman神經(jīng)網(wǎng)絡(luò)的樣本輸出進行反復(fù)訓(xùn)練,通過Adaboost算法得到由多個Elman神經(jīng)網(wǎng)絡(luò)弱預(yù)測器組成的強預(yù)測器。Adaboost優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)步驟如下:
步驟1數(shù)據(jù)獲取及網(wǎng)絡(luò)初始化。從樣本經(jīng)EEMD分解出的每個分量中隨機選取m組訓(xùn)練數(shù)據(jù),初始化測試數(shù)據(jù)分布權(quán)值Dt(i)=1/m,根據(jù)樣本輸入輸出維數(shù)確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),初始化Elman神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值。
步驟2Elman弱預(yù)測器預(yù)測。在訓(xùn)練第t個弱預(yù)測器時,使用Elman神經(jīng)網(wǎng)絡(luò)對訓(xùn)練數(shù)據(jù)進行訓(xùn)練,得到預(yù)測序列g(shù)(t)的預(yù)測誤差et:
(10)
步驟3計算預(yù)測序列權(quán)重。依據(jù)預(yù)測序列f(t)的預(yù)測誤差et計算序列的權(quán)重at:
(11)
步驟4測試數(shù)據(jù)權(quán)重調(diào)整。依據(jù)預(yù)測序列權(quán)重at調(diào)整新訓(xùn)練樣本的權(quán)重,調(diào)整公式為:
(12)
其中,Bt是歸一化因子。
步驟5輸出樣本序列各分量的強預(yù)測器函數(shù)。經(jīng)過T次迭代運算后得到T組弱預(yù)測器函數(shù)f(gt,at),由此T組弱預(yù)測器組合得到強預(yù)測器函數(shù)F(x):
(13)
(1)EEMD-Elman-Adaboost組合模型的預(yù)測步驟
步驟1對樣本進行EEMD分解,得到多個IMF分量和1個殘差分量。
步驟2將分解后的各個分量分成訓(xùn)練樣本和預(yù)測樣本,并將樣本進行歸一化處理。
步驟3根據(jù)序列的特征確定神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點數(shù),利用試湊法,根據(jù)網(wǎng)絡(luò)誤差選出每一分量的最優(yōu)隱含層節(jié)點數(shù),在訓(xùn)練預(yù)測模型時確定神經(jīng)網(wǎng)絡(luò)的其他重要參數(shù)。
步驟4用Adaboost將Elman神經(jīng)網(wǎng)絡(luò)作為弱預(yù)測器反復(fù)訓(xùn)練組成強預(yù)測器,優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)系統(tǒng),對訓(xùn)練樣本進行訓(xùn)練得到預(yù)測模型,再將預(yù)測樣本放入預(yù)測模型進行預(yù)測。
步驟5將以上步驟各個分量的預(yù)測結(jié)果進行反歸一化后再求和,作為最終的預(yù)測結(jié)果。
預(yù)測流程如圖2所示:
圖2 EEMD-Elman-Adaboost預(yù)測流程圖
(2)重要參數(shù)的設(shè)定
在EEMD過程中,白噪聲標準差為0.2,實現(xiàn)次數(shù)為500。在建立Elman網(wǎng)絡(luò)弱預(yù)測器的過程中,弱預(yù)測器設(shè)為10個,Elman神經(jīng)網(wǎng)絡(luò)以tangsig為傳遞函數(shù),traingdx為訓(xùn)練函數(shù),最大迭代次數(shù)為3000,誤差容限為0.00001,最多失敗次數(shù)為5。在Adaboost算法將Elman神經(jīng)網(wǎng)絡(luò)作為弱預(yù)測器訓(xùn)練強預(yù)測器時,測試誤差超過0.1的樣本作為應(yīng)加強學(xué)習(xí)的樣本。神經(jīng)網(wǎng)絡(luò)為單層的隱含層和輸出層。根據(jù)陳健[15]和孫冰潔等[16]的觀點將輸入層節(jié)點數(shù)設(shè)為5,結(jié)合Baily等[17]和Katz[18]的研究結(jié)論,利用試湊法,根據(jù)預(yù)測模型的網(wǎng)絡(luò)誤差選擇隱含層的最優(yōu)節(jié)點數(shù)。
為了有效地檢驗?zāi)P偷念A(yù)測效果,本文采用均方根誤差(RMSE)、平均相對誤差(MAPE)、平均絕對誤差(MAE)作為預(yù)測模型的評價標準。
(14)
(15)
(16)
其中,RMSE反映預(yù)測值與真實值之間的偏差,MAPE反映預(yù)測值與真實值的相差程度,MAE反映預(yù)測誤差的實際情況,三個指標的數(shù)值越小,說明模型的預(yù)測效果越好。
本文選取2016年1月4日至2019年12月05日中國大陸股票市場上證指數(shù)和深證成指的日收盤價作為研究對象,并以香港的恒生指數(shù)和美國股票市場的道瓊斯指數(shù)、納斯達克指數(shù)的日收盤價為驗證對象,數(shù)據(jù)來源于網(wǎng)易財經(jīng)(https://money.163.com/)。
樣本的基本統(tǒng)計量如表1所示,走勢如圖3所示。由表1可知,樣本的偏度均不為0,峰度均不為3,不服從正態(tài)分布。ADF的P值均大于0.05,說明樣本均為非平穩(wěn)序列。由圖3可知,樣本隨著時間的變化而變化,走勢曲線呈現(xiàn)明顯的大波動、非線性的趨勢。
綜合表1和圖3,樣本具有非正態(tài)、非線性、非平穩(wěn)的復(fù)雜特征,線性模型和一般組合模型很難對其進行有效預(yù)測。因此,本文應(yīng)用EEMD與Adaboost算法改進Elman神經(jīng)網(wǎng)絡(luò),對樣本進行預(yù)測。
表1 基本統(tǒng)計量
圖3 樣本走勢圖
對樣本進行EEMD分解,均得到8個IMF分量和1個殘差分量。分解結(jié)果如圖4所示。由圖4可知,每個IMF分量的振幅、頻率和周期均不相同,每個分量都有自身的波動特征。IMF分量從上至下的振幅和頻率逐漸變小,周期逐漸變長,殘差項呈現(xiàn)近似線性的趨勢,與樣本的總體走勢一致。
圖4 EEMD分解結(jié)果圖
將分解后各分量歸一化處理,再將處理后各分量的前部分數(shù)據(jù)作為訓(xùn)練樣本,訓(xùn)練Elman-Adaboost預(yù)測模型,將后50個數(shù)據(jù)作為預(yù)測樣本進行模型預(yù)測;最后將樣本所有分量的預(yù)測結(jié)果反歸一化,再求和,作為最終預(yù)測結(jié)果。
為了檢驗本文預(yù)測模型的優(yōu)越性,將其與現(xiàn)有的BP、Elman、EMD-Elman、EEMD-Elman模型作對比。各模型預(yù)測結(jié)果如圖5所示。由圖5可知,對比模型對樣本預(yù)測的曲線和真實值的曲線明顯不重合且存在滯后的現(xiàn)象。EEMD-Elman-Adaboost模型的預(yù)測值與真實值曲線基本重合,說明該模型的跟隨能力更強,預(yù)測精度更高。
為了更精確地比較模型的預(yù)測效果,本文以RMSE、MAPE、MAE作為評價指標對各模型的預(yù)測誤差進行量化比較,結(jié)果如表2所示。由表2可知,EEMD-Elman-Adaboost模型的預(yù)測誤差最小,說明其預(yù)測效果優(yōu)于其他模型。Elman能動態(tài)反映樣本特征,比BP的預(yù)測效果好。EEMD克服了EMD的缺陷,更有效的分解數(shù)據(jù),提取有效信息。Adaboost算法將Elman弱預(yù)測器組合形成強預(yù)測器,有效地提高了系統(tǒng)的學(xué)習(xí)精度和泛化能力,使EEMD-Elman-Adaboost模型的預(yù)測精度得到有效提升。
圖5 各模型預(yù)測值與真實值的對比
表2 預(yù)測誤差比較
為了檢驗新模型的適用性,選取香港和美國股票指數(shù)的日收盤價為驗證對象。不同模型對驗證樣本的預(yù)測誤差如表3所示。由表3知,EEMD-Elman-Adaboost模型比其他模型的預(yù)測誤差更小,新模型應(yīng)用于香港和美國股票市場亦呈現(xiàn)更好的預(yù)測效果,驗證了本文模型的適用性。
結(jié)合表2和表3,由于不同股票市場的成熟度、行業(yè)規(guī)模和經(jīng)濟結(jié)構(gòu)不同,不同預(yù)測方法應(yīng)用于不同股票市場的預(yù)測誤差均有差異。
表3 驗證樣本預(yù)測誤差比較
針對股票價格序列的多重復(fù)雜特征,本文提出EEMD- Elman- Adaboost組合模型,以中國大陸股票指數(shù)的日收盤價作為研究對象,以香港及美國的股票指數(shù)作為驗證對象,進行實證分析。首先,利用EEMD將樣本進行分解,得到多個分量;其次,利用Adaboost算法優(yōu)化Elman神經(jīng)網(wǎng)絡(luò),對各個分量進行預(yù)測;最后,將各個分量的預(yù)測結(jié)果進行求和作為樣本的最終預(yù)測結(jié)果。將EEMD-Elman-Adaboost組合模型和現(xiàn)有的BP、Elman、EMD-Elman、EEMD-Elman模型作比較,通過對比圖和3個預(yù)測評價指標對各模型進行直觀對比和量化對比,驗證新模型的預(yù)測效果。結(jié)果表明:EEMD-Elman-Adaboost組合模型均比對比模型的預(yù)測誤差小,能更有效地預(yù)測中美兩國的股票價格序列。新組合模型融合了EEMD、Elman神經(jīng)網(wǎng)絡(luò)、Adaboost算法的優(yōu)點,具有更強的泛化能力和跟隨能力,預(yù)測精度更高。
由于選擇多方面指標對股票價格進行預(yù)測,工作量大,且易受其他因素影響,本文僅利用歷史數(shù)據(jù)進行預(yù)測分析。在后續(xù)研究中將嘗試加入多方面指標進行測試,以進一步驗證該模型的預(yù)測能力。