鐘 琳,顏七笙
(東華理工大學(xué)理學(xué)院,330013,南昌)
股票投資常常伴隨風(fēng)險(xiǎn)的發(fā)生,如何為金融投資者構(gòu)建精度高且速度快的股市預(yù)測(cè)模型則有著積極的應(yīng)用價(jià)值以及意義。
早期的股票預(yù)測(cè)主要是以傳統(tǒng)時(shí)間序列、隱馬爾科夫[1]模型等方法為主。其中ARMA模型[2]是時(shí)間序列中應(yīng)用較為廣泛的線(xiàn)性模型,何永沛[3]提出一種ARMA模型參數(shù)估計(jì)的改進(jìn)算法,取得了較好的預(yù)測(cè)效果;孟坤[4]等運(yùn)用ARMA模型對(duì)上證綜合指數(shù)股票價(jià)格進(jìn)行預(yù)測(cè),結(jié)果表明ARMA模型較適合于進(jìn)行短期預(yù)測(cè)。
然而傳統(tǒng)的股票預(yù)測(cè)模型不能很好地解決非線(xiàn)性問(wèn)題,學(xué)者們則提出了具有更好性能的支持向量機(jī)(Support Vector Machine, SVM)[5]、決策樹(shù)[6]、人工神經(jīng)網(wǎng)絡(luò)等預(yù)測(cè)方法。郝知遠(yuǎn)[7]基于收益最大化,提出了一種遺傳參數(shù)尋優(yōu)的SVM算法,取得了較好的股價(jià)預(yù)測(cè)效果;Xiong[8]等人在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法的基礎(chǔ)上提出了LSTM算法,在對(duì)股票的實(shí)時(shí)預(yù)測(cè)與分析上取得了進(jìn)一步的效果。
除此之外,組合模型預(yù)測(cè)方法也逐漸應(yīng)用于股價(jià)的預(yù)測(cè)[9]。宋剛[10]等為提高股價(jià)預(yù)測(cè)精度,增強(qiáng)預(yù)測(cè)模型參數(shù)的可解釋性,提出了自適應(yīng)粒子群優(yōu)化的長(zhǎng)短期記憶的PSO-LSTM股價(jià)模型。綦方中[11]等則構(gòu)建了一種基于PCA-IFOA-BP的股價(jià)預(yù)測(cè)模型,相比BP、PCA-BP和PCA-FOA-BP,預(yù)測(cè)精度更高。
極限學(xué)習(xí)機(jī)(ELM)是以前饋神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)構(gòu)建的一類(lèi)機(jī)器學(xué)習(xí)方法,廣泛應(yīng)用于各類(lèi)預(yù)測(cè)問(wèn)題[12]。相比傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò),ELM算法中的權(quán)值和閾值可隨機(jī)生成,且不需在算法運(yùn)行時(shí)調(diào)節(jié),學(xué)習(xí)和達(dá)到穩(wěn)定狀態(tài)的速度快,極大地縮減了訓(xùn)練的時(shí)間,因其最優(yōu)解是唯一的,故泛化性能也較好。
由于組合模型有著較高的預(yù)測(cè)精度以及ELM模型有著一定的優(yōu)點(diǎn),故本文采用粒子群優(yōu)化極限學(xué)習(xí)機(jī)模型,對(duì)中國(guó)石油股票價(jià)格進(jìn)行預(yù)測(cè)。并對(duì)PSO-ELM模型進(jìn)行橫向和縱向比較,相比ELM、PSO-BP、DE-ELM模型,判斷各模型的優(yōu)劣性,并將PSO-ELM進(jìn)行短期、中期、長(zhǎng)期預(yù)測(cè),分析不同時(shí)期的預(yù)測(cè)效果。
本文選取中國(guó)石油股票價(jià)格2010年11月1日至2021年1月29日共2 493條股票日交易數(shù)據(jù)作為實(shí)驗(yàn)樣本,以收盤(pán)價(jià)、最高價(jià)、最低價(jià)、開(kāi)盤(pán)價(jià)、成交金額5個(gè)影響因素為輸入變量,次日收盤(pán)價(jià)為輸出變量。各模型實(shí)驗(yàn)均將前2 218條樣本數(shù)據(jù)作為訓(xùn)練集,后275條樣本數(shù)據(jù)作為測(cè)試集。部分?jǐn)?shù)據(jù)如表1所示。
表1 中國(guó)石油股票價(jià)格樣本數(shù)據(jù)
1.2.1 極限學(xué)習(xí)機(jī) 極限學(xué)習(xí)機(jī)算法中輸入層與隱藏層間的權(quán)值及隱藏層的閾值可隨機(jī)生成,且無(wú)需在訓(xùn)練時(shí)調(diào)節(jié),只需確定隱藏層神經(jīng)元個(gè)數(shù),即可獲得唯一最佳解,與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)算法相比,其學(xué)習(xí)速度快,泛化性能好,從而被廣泛應(yīng)用于回歸與分類(lèi)。若訓(xùn)練樣本R={(xj,tj)|j=1,2,…,m;xj∈Rn,tj∈Rm}則極限學(xué)習(xí)機(jī)的算法可表示為:
(1)
其中ωi=[ω1i,ω2i,…,ωni]T為輸入層與隱藏層的權(quán)值,βi=[β1i,β2i,…,βmi]T為隱藏層到輸出層的權(quán)值,g(·)為隱藏層激活函數(shù),bi為隱藏層閾值,xj為輸入值,tj為輸出值,L為隱藏層節(jié)點(diǎn)數(shù),N為樣本數(shù)量。
式(1)可化簡(jiǎn)為
(2)
其中H為隱藏層輸出矩陣,T為樣本輸出,β為輸出層權(quán)值。
將訓(xùn)練集代入式(1),計(jì)算隱藏層輸出矩陣,即
(3)
通過(guò)式(2)和式(3)計(jì)算輸出層權(quán)值β,即
(4)
式中H+是H的Moore-Penrose廣義逆。
將測(cè)試集代入式(3)計(jì)算隱藏層輸出矩陣H′,結(jié)合式(2)和式(4),計(jì)算出測(cè)試集輸出值,即
(5)
1.2.2 粒子群算法 粒子群算法(PSO)是群體智能優(yōu)化中的一類(lèi)算法,其在可行解空間里,初始化的粒子通過(guò)尋找個(gè)體極值Pbest和群體極值Gbest來(lái)更新個(gè)體速度和位置,粒子位置的更新伴隨著適應(yīng)度值的更新,通過(guò)比較更新前后粒子的適應(yīng)度值,更新個(gè)體極值Pbest和群體極值Gbest的位置,依次下去,直到搜尋到最優(yōu)解。
粒子速度和位置的更新公式如下
(6)
(7)
PSO具體的算法步驟如下。
1)粒子初始化及參數(shù)設(shè)置。在D維空間生成N個(gè)粒子群,初始化各粒子的速度和位置,其中第i個(gè)粒子的位置和速度分別為
xi=(xi1,xi2,…,xiD),1≤i≤N
vi=(vi1,vi2,…,viD),1≤i≤N
(8)
同時(shí)設(shè)置ω、c1,c2以及最大尋優(yōu)次數(shù)等參數(shù)。
2)計(jì)算適應(yīng)度函數(shù)值。通過(guò)適應(yīng)度函數(shù)計(jì)算每個(gè)粒子的適應(yīng)值。
3)將當(dāng)前各粒子適應(yīng)度與歷史最優(yōu)位置的粒子適應(yīng)度相比,選擇適應(yīng)度更高(低)的位置并將其作為新的歷史最優(yōu)位置;同理將當(dāng)前各粒子適應(yīng)度與群體最優(yōu)位置的適應(yīng)度相比,并將所選位置作為群體最優(yōu)位置。
4)更新粒子速度和位置。
5)更新適應(yīng)度函數(shù)值、個(gè)體極值、群體極值。
6)判斷算法是否符合算法結(jié)束條件。如符合,輸出最優(yōu)解和粒子;如不符合,則重回步驟3)~5)。
由于極限學(xué)習(xí)機(jī)的連接權(quán)值和閾值是隨機(jī)產(chǎn)生的,在模型的訓(xùn)練過(guò)程中具有一定的不確定性,故針對(duì)中國(guó)石油股票價(jià)格預(yù)測(cè)問(wèn)題,建立PSO-ELM股票價(jià)格預(yù)測(cè)模型,將粒子搜尋的最優(yōu)解作為ELM權(quán)值和閾值的最優(yōu)值,并在最優(yōu)權(quán)值和閾值的基礎(chǔ)上構(gòu)建ELM預(yù)測(cè)模型。
具體建模過(guò)程如下。
1)歸一化處理中國(guó)石油股票價(jià)格樣本數(shù)據(jù)集,并將其分為訓(xùn)練集和測(cè)試集。
2)將訓(xùn)練集輸入ELM模型中,得到ELM預(yù)測(cè)結(jié)果。
3)初始化PSO參數(shù),各粒子表示ELM的權(quán)值與閾值,將ELM訓(xùn)練集的均方誤差設(shè)為粒子群的適應(yīng)度函數(shù)。
4)計(jì)算粒子當(dāng)前最優(yōu)位置pi的個(gè)體極值Pbest和全局最優(yōu)位置pg的群體極值Gbest,以及第k個(gè)粒子位置pk對(duì)應(yīng)的適應(yīng)度gk:若gkPbest,則Pi=Pk,Pbest=gk,否則當(dāng)前最優(yōu)位置與個(gè)體極值不變;若gkGbest,則Pg=Pk,Gbest=gk,否則全局最優(yōu)位置與群體極值不變。
5)根據(jù)式(6)、式(7)更新粒子速度和位置。
6)判斷是否達(dá)到最大迭代次數(shù)。若滿(mǎn)足,則算法繼續(xù);若不滿(mǎn)足,則重復(fù)步驟4)~5)。
7)將最優(yōu)粒子作為ELM的權(quán)值和閾值,將測(cè)試集輸入ELM中,得到預(yù)測(cè)結(jié)果。
PSO-ELM算法流程如圖1。
圖1 PSO-ELM算法流程圖
為更好地評(píng)價(jià)模型預(yù)測(cè)效果,選擇平均絕對(duì)誤差(MAE)、平均絕對(duì)百分比誤差(MAPE)、均方根誤差(RMSE)以及擬合優(yōu)度決定系數(shù)(R2)作為評(píng)價(jià)標(biāo)準(zhǔn),各評(píng)價(jià)公式如下
(9)
(10)
(11)
(12)
在MATLAB R2021a的環(huán)境下,基于中國(guó)石油股票價(jià)格數(shù)據(jù),對(duì)PSO-ELM預(yù)測(cè)模型的精度進(jìn)行測(cè)試,并對(duì)其預(yù)測(cè)效果進(jìn)行分析。其中ELM輸入神經(jīng)元個(gè)數(shù)為5,隱藏神經(jīng)元個(gè)數(shù)為5,輸出神經(jīng)元個(gè)數(shù)為1,隱藏層神經(jīng)元激活函數(shù)選用sigmoid函數(shù)。部分PSO參數(shù)設(shè)置如下:種群大小設(shè)為20,最大迭代次數(shù)k為300,學(xué)習(xí)因子c1=c2=2,慣性權(quán)重ω按式(13)計(jì)算
(13)
其中ws=0.9,we=0.4,T,k分別為迭代次數(shù)和最大迭代次數(shù)。PSO-ELM預(yù)測(cè)結(jié)果如圖2、圖3所示。
由圖2、圖3可知,PSO-ELM模型的擬合優(yōu)度決定系數(shù)為R2=0.974 81,預(yù)測(cè)值與實(shí)際值較為符合,其價(jià)格走勢(shì)相同,適應(yīng)度函數(shù)值收斂較快,均方根誤差RMSE=0.12 738較小,預(yù)測(cè)效果較好。
圖2 測(cè)試集日收盤(pán)價(jià)格預(yù)測(cè)結(jié)果(PSO-ELM)
圖3 PSO-ELM適應(yīng)度曲線(xiàn)
為進(jìn)一步比較模型的預(yù)測(cè)效果,選取ELM,PSO-BP,DE-ELM模型作為參照比較分析,其中PSO-BP模型將BP訓(xùn)練集的均方誤差作為適應(yīng)度函數(shù),DE-ELM的種群也設(shè)為20,最大迭代次數(shù)為300,各模型其余的參數(shù)均依照PSO-ELM的方法設(shè)置,模型的預(yù)測(cè)對(duì)比圖如圖4~圖9所示。
圖4 測(cè)試集日收盤(pán)價(jià)格預(yù)測(cè)結(jié)果(ELM)
圖5 ELM誤差曲線(xiàn)
圖6 測(cè)試集日收盤(pán)價(jià)格預(yù)測(cè)結(jié)果(PSO-BP)
圖7 PSO-BP適應(yīng)度曲線(xiàn)
圖8 測(cè)試集日收盤(pán)價(jià)格預(yù)測(cè)(DE-ELM)
圖9 DE-ELM適應(yīng)度曲線(xiàn)
由以上各個(gè)模型的預(yù)測(cè)結(jié)果及其適應(yīng)度曲線(xiàn)可以看出,ELM、PSO-BP、DE-ELM模型預(yù)測(cè)效果也較好,但相比PSO-ELM模型,各模型的預(yù)測(cè)曲線(xiàn)沒(méi)有PSO-ELM模型吻合,從均方誤差RMSE和擬合優(yōu)度決定系數(shù)R2來(lái)看,PSO-ELM模型在4個(gè)模型中均為最優(yōu)。此外,PSO-ELM和PSO-BP的適應(yīng)度曲線(xiàn)較DE-ELM來(lái)說(shuō)收斂較快,其在迭代次數(shù)不到100時(shí)就達(dá)到穩(wěn)定,而DE-ELM在迭代約275次后逐步穩(wěn)定,速度較慢。
為更為直觀地比較預(yù)測(cè)效果,各模型的評(píng)價(jià)指標(biāo)值如表2所示。
表2 各模型評(píng)價(jià)指標(biāo)對(duì)比值
從各模型的均方誤差RMSE來(lái)說(shuō),PSO-ELM模型相比沒(méi)有經(jīng)過(guò)參數(shù)尋優(yōu)的ELM模型降低了1.84%,相比PSO-BP、DE-ELM分別也降低了1.07%、0.97%,可見(jiàn)通過(guò)粒子群算法對(duì)極限學(xué)習(xí)機(jī)的參數(shù)尋優(yōu)有一定的效果,以及相比BP算法,ELM算法有一定的優(yōu)越性,且粒子群算法較差分進(jìn)化算法尋優(yōu)效果更好;PSO-ELM模型的MAE、MAPE相比其他3個(gè)模型的值均較小,則說(shuō)明PSO-ELM模型預(yù)測(cè)值誤差更小,并且有著更好的預(yù)測(cè)精度;從R2來(lái)看,PSO-ELM模型的擬合優(yōu)度決定系數(shù)達(dá)0.974 3,相比其他模型分別提高了0.75%、0.08%、0.09%,說(shuō)明PSO-ELM模型有著較高的擬合度,預(yù)測(cè)效果有所提高。
為了驗(yàn)證PSO-ELM模型對(duì)不同時(shí)間長(zhǎng)度的預(yù)測(cè)效果,選取中國(guó)石油股票價(jià)格樣本分別進(jìn)行短期(2021.02.01—2021.02.05)、中期(2021.03.15—2021.03.19)、長(zhǎng)期(2021.04.26—2021.04.30)預(yù)測(cè)。預(yù)測(cè)結(jié)果如表3~表5所示。
由表3~表5計(jì)算可知,短期、中期、長(zhǎng)期的平均相對(duì)誤差分別為2.748 4×10-3、1.053 6×10-2、1.204 4×10-2,由此表明PSO-ELM模型適合短期預(yù)測(cè),隨著時(shí)間長(zhǎng)度的增加,平均相對(duì)誤差值也在增加,預(yù)測(cè)的精度在降低,因此,建議股票投資者盡量依據(jù)近期樣本來(lái)預(yù)測(cè)最近幾天的股價(jià)漲跌,從而提高股票價(jià)格的預(yù)測(cè)精度,依據(jù)預(yù)測(cè)的股價(jià)走勢(shì)來(lái)做出決策,以此避免產(chǎn)生較大的投資風(fēng)險(xiǎn)和損失。
表3 真實(shí)值與預(yù)測(cè)值對(duì)比(短期)
表4 真實(shí)值與預(yù)測(cè)值對(duì)比(中期)
表5 真實(shí)值與預(yù)測(cè)值對(duì)比(長(zhǎng)期)
本文為提高股票價(jià)格預(yù)測(cè)的精度,基于中國(guó)石油股票價(jià)格數(shù)據(jù),提出了粒子群優(yōu)化極限學(xué)習(xí)機(jī)的PSO-ELM模型,該模型通過(guò)粒子群位置和速度的更新逐步搜索最優(yōu)適應(yīng)度值,同時(shí)將粒子群中搜索到的最優(yōu)解作為ELM的權(quán)值和閾值,再對(duì)測(cè)試集進(jìn)行預(yù)測(cè)。通過(guò)對(duì)PSO-ELM模型橫向比較,也即與ELM、PSO-BP、DE-ELM模型的預(yù)測(cè)效果對(duì)比,結(jié)果表明PSO-ELM模型擬合效果較好,預(yù)測(cè)精度較高。
除此之外,再對(duì)PSO-ELM模型進(jìn)行縱向比較。通過(guò)選取不同時(shí)間長(zhǎng)度的股票價(jià)格,分為短期、中期、長(zhǎng)期進(jìn)行預(yù)測(cè),結(jié)果表明短期預(yù)測(cè)的平均相對(duì)誤差小于中期和長(zhǎng)期的。因此,PSO-ELM模型較適合于對(duì)短期股價(jià)進(jìn)行預(yù)測(cè),同時(shí)也建議股票投資者盡量依據(jù)近期樣本來(lái)預(yù)測(cè)最近幾天的股價(jià)漲跌,從而提高股票價(jià)格的預(yù)測(cè)精度,避免產(chǎn)生較大的投資風(fēng)險(xiǎn)和損失。