于春蕾,李夢(mèng)悅,尹偉石
(長(zhǎng)春理工大學(xué) 理學(xué)院,長(zhǎng)春 130022)
金融業(yè)快速發(fā)展的同時(shí),股票作為重要的投資渠道引起廣泛關(guān)注,股票預(yù)測(cè)的研究也取得了顯著成果。然而,面對(duì)股票市場(chǎng)越來(lái)越復(fù)雜的非線性特征,投資者無(wú)法得到準(zhǔn)確的預(yù)測(cè)結(jié)果[1-3],其原因在于,利用傳統(tǒng)算法構(gòu)建的模型非線性映射能力較弱,且局限性很大,如灰色預(yù)測(cè)、時(shí)間序列等[4-6]。因此若想進(jìn)一步在投資上規(guī)避風(fēng)險(xiǎn),就必須在已有的理論成果基礎(chǔ)上,進(jìn)行股票預(yù)測(cè)的技術(shù)研究,這就需要將已知算法的不同優(yōu)勢(shì)結(jié)合起來(lái),構(gòu)建組合模型[7-10]。本文選擇主成分分析法[11]和 BP 神經(jīng)網(wǎng)絡(luò)[12-15]來(lái)構(gòu)建模型,主成分分析法在處理數(shù)據(jù)上具有優(yōu)勢(shì),在保證信息數(shù)據(jù)最少丟失的同時(shí),消除數(shù)據(jù)的冗余信息;神經(jīng)網(wǎng)絡(luò)則通過(guò)對(duì)股票歷史數(shù)據(jù)的學(xué)習(xí),在神經(jīng)元的權(quán)值中存儲(chǔ)股價(jià)變化的規(guī)律。通過(guò)運(yùn)用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)未來(lái)股價(jià),可以較明顯地增強(qiáng)系統(tǒng)預(yù)測(cè)結(jié)果的可信度和精確度。然而,不是所有股票都有足夠的數(shù)據(jù)可供PCA-BP組合模型訓(xùn)練,對(duì)此,本文還運(yùn)用了數(shù)據(jù)擬合的算法來(lái)模擬不同數(shù)據(jù)量的預(yù)測(cè)效果。
主成分分析可以用較少的計(jì)算量,達(dá)到選擇最佳變量子集的效果,其作為多變量分析方法被廣泛應(yīng)用;BP神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)從而具有一定的預(yù)測(cè)功能的數(shù)學(xué)模型,可以充分逼近任意復(fù)雜的非線性關(guān)系,擁有較為強(qiáng)大的容錯(cuò)能力。這兩個(gè)算法組成了基本的PCA-BP組合模型。
主成分分析,是考察多個(gè)變量間相關(guān)性的一種多元統(tǒng)計(jì)方法,旨在通過(guò)少數(shù)幾個(gè)主成分來(lái)揭示多個(gè)變量間的內(nèi)部結(jié)構(gòu)。其中,每個(gè)主成分都是原始變量的線性組合,且互不相關(guān)。由此,這些主成分能夠反映原始變量的絕大部分互不重疊的信息,引進(jìn)多方面的指標(biāo)的同時(shí),又將其中復(fù)雜的因素歸結(jié)為幾個(gè)主成分,使得復(fù)雜問(wèn)題得以簡(jiǎn)化,并得到更為科學(xué)、精準(zhǔn)的信息。具體算法步驟如下:
(1)選定估計(jì)樣本數(shù),選取指標(biāo),構(gòu)建原始數(shù)據(jù)矩陣。
(2)為消除量綱、正逆指標(biāo)的影響,進(jìn)行原始數(shù)據(jù)矩陣的標(biāo)準(zhǔn)化處理,得到標(biāo)準(zhǔn)化矩陣。
(3)根據(jù)標(biāo)準(zhǔn)化矩陣計(jì)算協(xié)方差矩陣,以此來(lái)反映標(biāo)準(zhǔn)化后數(shù)據(jù)之間的相關(guān)關(guān)系及密切程度。
(4)根據(jù)相關(guān)系數(shù)矩陣計(jì)算出特征根及對(duì)應(yīng)的特征向量。
(5)得到確定后的多個(gè)主成分,同時(shí)計(jì)算各主成分得分。
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差反向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)分為三層:輸入層、輸出層、隱含層。兩層之間通過(guò)網(wǎng)絡(luò)權(quán)值連接神經(jīng)元,且中間層和輸出層上的神經(jīng)元通過(guò)加上閥值的形式對(duì)前一層神經(jīng)元傳遞過(guò)來(lái)的信息進(jìn)行整合。神經(jīng)元之間的學(xué)習(xí)向誤差減小的方向傳遞,進(jìn)一步修正各自的權(quán)值。
反向傳播算法是若干個(gè)算法的集合,其過(guò)程是:
(1)前向逐層計(jì)算直到輸出,計(jì)算出模型的預(yù)測(cè)值。
(2)通過(guò)損失函數(shù)計(jì)算預(yù)測(cè)值與真實(shí)值之間的偏離程度。應(yīng)用到的均方差損失函數(shù)公式可表示如下:
陳靜(2004)對(duì)中國(guó)大學(xué)生的文化認(rèn)同狀況進(jìn)行了調(diào)查。調(diào)查表明,中國(guó)涉外大學(xué)生對(duì)西方文化持開(kāi)放心態(tài),并對(duì)西方文化認(rèn)同度較高,然而即便如此,他們?nèi)匀徽J(rèn)為中國(guó)文化是“根”,還是認(rèn)同中國(guó)文化[9]。但是他們也存在一些問(wèn)題,如對(duì)西方文化的了解不夠客觀,對(duì)民族文化了解不夠深刻等。劉圣明(2007)在高職英語(yǔ)專(zhuān)業(yè)學(xué)生中發(fā)現(xiàn)了“生產(chǎn)性”取向[10]。楊梅(2011)對(duì)大一新生的調(diào)查表明,生產(chǎn)性變化在極少部分好學(xué)生中偶有表現(xiàn)[11]。劉瓊、彭艷(2006)提倡將“生產(chǎn)性”學(xué)習(xí)作為外語(yǔ)教學(xué)的目的[12]。
(3)使用梯度下降算法更新最后一層的參數(shù),然后再一層一層往前更新前面幾層的參數(shù),直到所有的參數(shù)都被更新。迭代公式如下:
其中,通過(guò)前向傳遞時(shí)候計(jì)算得出,再利用殘差逐層更新參數(shù)。
數(shù)據(jù)擬合,即曲線擬合,是一種把現(xiàn)有數(shù)據(jù)透過(guò)數(shù)學(xué)方法來(lái)代入一條數(shù)式的表示方式,其擬合的曲線能大致模擬數(shù)據(jù)的基本趨勢(shì),一般采用最小二乘法來(lái)確定數(shù)據(jù)的系數(shù),公式如下:
最小二乘法通過(guò)最小化誤差的平方和,為數(shù)據(jù)匹配最佳函數(shù),在未知數(shù)據(jù)的求解,以及優(yōu)化問(wèn)題的求解方面有著顯著效果。
為驗(yàn)證模型對(duì)不同行業(yè)股票預(yù)測(cè)的適用范圍,模型選取了不同行業(yè)的五只個(gè)股:東方財(cái)富、中信證券、建設(shè)銀行、京東方A以及龍津藥業(yè)進(jìn)行股價(jià)預(yù)測(cè)。
經(jīng)網(wǎng)易財(cái)經(jīng)網(wǎng)站下載得到各股2019年1月2日至2019年12月31日期間244個(gè)交易日的開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)、前收盤(pán)、漲跌額、漲跌幅、成交量、成交金額、換手率、總市值這些股票變量。在這些變量中,收盤(pán)價(jià)作為預(yù)測(cè)數(shù)據(jù),其他10項(xiàng)作為影響收盤(pán)價(jià)變化的因子(與收盤(pán)價(jià)非線性相關(guān)),這些均作為歷史數(shù)據(jù)供模型使用。
圖1 PCA-BP組合模型流程圖
依據(jù)圖1流程圖建立PCA-BP組合模型,首先進(jìn)行指標(biāo)選取:由于影響收盤(pán)價(jià)變化的因子不可避免會(huì)出現(xiàn)信息的重疊,對(duì)此,需要對(duì)這些因子進(jìn)行相關(guān)性分析,了解各因子的信息重疊程度。以東方財(cái)富為例,選取SPSS統(tǒng)計(jì)分析軟件,對(duì)2019年的這10種影響因子(個(gè)案數(shù)為244)進(jìn)行皮爾遜相關(guān)性分析,得到相關(guān)性分析結(jié)果,如表1所示。
表1 相關(guān)系數(shù)矩陣
表中,漲跌額與漲跌幅相關(guān)系數(shù)高達(dá)0.986;換手率與成交量、換手率與成交金額、成交量與成交金額這三組相關(guān)系數(shù)分別達(dá)到了0.977,0.987,0.973。在保留原有價(jià)格信息的基礎(chǔ)上,需剔除漲跌額、成交量及成交額這三個(gè)關(guān)聯(lián)程度大的因子。余下7個(gè)因子之間仍有部分相關(guān)系數(shù)大于0.8,有必要對(duì)這些因子做主成分分析。
將這7個(gè)因子作為指標(biāo),以月為分析周期,根據(jù)主成分分析算法,應(yīng)用東方財(cái)富2019年12月的22個(gè)交易日的數(shù)據(jù)樣本,計(jì)算指標(biāo)累積方差貢獻(xiàn)率,結(jié)果如表2所示。
表2 累積貢獻(xiàn)率
通過(guò)上表可發(fā)現(xiàn)兩個(gè)成分的累積貢獻(xiàn)率已達(dá)到了96.174%,可選擇兩個(gè)主成分作提取,提取的主成分如表3所示。
表3 成分矩陣
由表3中的數(shù)據(jù)可得到這兩個(gè)主成分的得分,將其作為BP神經(jīng)網(wǎng)絡(luò)模型的輸入向量,將收盤(pán)價(jià)預(yù)測(cè)值作輸出向量,構(gòu)建三層BP神經(jīng)網(wǎng)絡(luò)模型。首先設(shè)定初始參數(shù),并對(duì)輸入數(shù)據(jù)進(jìn)行訓(xùn)練,之后調(diào)整相關(guān)參數(shù),多次反復(fù)訓(xùn)練,不斷更正模型結(jié)構(gòu)。通過(guò)對(duì)長(zhǎng)期數(shù)據(jù)的回測(cè),選擇預(yù)測(cè)值最接近于實(shí)際值的參數(shù),最終形成優(yōu)化的PCA-BP組合模型。
引入數(shù)據(jù)擬合的過(guò)程可以概括為兩步。第一步,目標(biāo)是通過(guò)數(shù)據(jù)擬合來(lái)完成各項(xiàng)指標(biāo)的預(yù)測(cè)。其中,擬合步驟為:首先選擇Matlab軟件中的polyfit函數(shù)對(duì)指標(biāo)數(shù)據(jù)進(jìn)行曲線擬合,得到擬合數(shù)據(jù)的系數(shù)列表。然后選取ployval函數(shù)用來(lái)帶入自變量的值,并根據(jù)數(shù)據(jù)系數(shù)列表,計(jì)算數(shù)據(jù)的值。最后繪制出數(shù)據(jù)點(diǎn)1至8次擬合的效果圖,同時(shí)加以比較,選擇擬合效果最好的次數(shù),其值即是各項(xiàng)指標(biāo)的預(yù)測(cè)值。
第二步,則是將預(yù)測(cè)到的各項(xiàng)指標(biāo)輸入到訓(xùn)練好的PCA-BP組合模型中,最終得到要預(yù)測(cè)的某日的收盤(pán)價(jià)
依據(jù)模型建立過(guò)程,研究結(jié)果分兩個(gè)階段:第一階段是基于PCA-BP組合模型的回測(cè),進(jìn)行模型精確度的研究;第二階段是根據(jù)不同時(shí)段預(yù)測(cè)未來(lái)某天的收盤(pán)價(jià),作實(shí)證分析。
根據(jù)下載得到的五只股的2019年數(shù)據(jù),以月為分析周期,分別得到每個(gè)月的兩個(gè)主成分得分,并將其輸入到訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型,輸出得到了各股2019年各月的走勢(shì)結(jié)果。以東方財(cái)富為例,將2019年12月2日至6日的模型局部放大回測(cè)結(jié)果繪制,如圖2所示。
圖2 東方財(cái)富局部回測(cè)結(jié)果
通過(guò)圖2可以看到,預(yù)測(cè)值和實(shí)際值之間僅有微小的差距,為進(jìn)一步驗(yàn)證模型的預(yù)測(cè)效果,現(xiàn)計(jì)算預(yù)測(cè)值與真實(shí)值間的平均相對(duì)誤差,并與未經(jīng)過(guò)PCA處理的BP神經(jīng)網(wǎng)絡(luò)模型比較,結(jié)果如表4所示。
表4 模型對(duì)比結(jié)果
依據(jù)表4數(shù)據(jù),可證實(shí)主成分分析法與BP神經(jīng)網(wǎng)絡(luò)組合模型回測(cè)時(shí)具有非常高的精確度,且在穩(wěn)定程度上也高于BP神經(jīng)網(wǎng)絡(luò)。然而在實(shí)際運(yùn)用中,PCA-BP組合模型在面對(duì)較少的數(shù)據(jù)量時(shí)并沒(méi)有達(dá)到很好的效果,因此下一步需對(duì)引入數(shù)據(jù)擬合算法的模型作實(shí)證分析。
分別利用前一周和前一月的數(shù)據(jù)預(yù)測(cè)2020年1月2日的的收盤(pán)價(jià)。首先將這兩組數(shù)據(jù)通過(guò)數(shù)據(jù)擬合的方式分別預(yù)測(cè)得到當(dāng)日的最高價(jià)、最低價(jià)、開(kāi)盤(pán)價(jià)、前收盤(pán)、漲跌幅、換手率、總市值,并計(jì)算各自主成分得分,通過(guò)訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型,預(yù)測(cè)得到1月2日收盤(pán)價(jià)的不同預(yù)測(cè)結(jié)果,如表5所示。
表5 周預(yù)測(cè)月預(yù)測(cè)對(duì)比結(jié)果
由表5數(shù)據(jù)可以得到,京東方A和建設(shè)銀行的月預(yù)測(cè)偏差略大,其他股票預(yù)測(cè)效果良好。根據(jù)此次實(shí)驗(yàn)數(shù)據(jù),計(jì)算得到這五個(gè)股的平均相對(duì)誤差結(jié)果,對(duì)比周預(yù)測(cè)與月預(yù)測(cè)的預(yù)測(cè)結(jié)果,周預(yù)測(cè)有著更為精準(zhǔn)的預(yù)測(cè)值。分析誤差可得,股價(jià)在長(zhǎng)時(shí)間波動(dòng)較大的情況下,短時(shí)間預(yù)測(cè)得到的結(jié)果與近期的股價(jià)相關(guān)聯(lián),不會(huì)被之前的大幅度波動(dòng)干擾,相對(duì)結(jié)果更為準(zhǔn)確。其他三只股長(zhǎng)期收盤(pán)價(jià)穩(wěn)定,長(zhǎng)時(shí)間的預(yù)測(cè),較多數(shù)據(jù)使模型的訓(xùn)練結(jié)果更加精確,從而更小的縮減偏差。借鑒股票的歷史數(shù)據(jù)變化,能更充分的發(fā)揮模型的作用。
運(yùn)用PCA-BP組合模型在大量數(shù)據(jù)的預(yù)測(cè)上,得到了與實(shí)際值非常接近的預(yù)測(cè)值,同時(shí),由于數(shù)據(jù)擬合算法的選取,模型在短時(shí)間段的預(yù)測(cè)上有很大優(yōu)勢(shì)。整個(gè)股票預(yù)測(cè)階段中,研究出與每個(gè)階段都適合的新型方法與技術(shù)來(lái)建立模型是主要目標(biāo),尋找新型的算法,勢(shì)必經(jīng)歷經(jīng)驗(yàn)的積累以及思維上的創(chuàng)新,與之相伴的是模型建立和優(yōu)化時(shí)面對(duì)不足不斷改善的堅(jiān)持。當(dāng)今金融行業(yè)飛速發(fā)展,投資業(yè)興起,股票市場(chǎng)將會(huì)愈加復(fù)雜多變,為符合當(dāng)代發(fā)展的需要,模型精確度仍需加強(qiáng),模型復(fù)雜度仍需降低,在不同環(huán)境下的泛化能力仍需提高,所以,在未來(lái)還需要注入更大精力去挖掘神經(jīng)網(wǎng)絡(luò)技術(shù)在股價(jià)預(yù)測(cè)上的潛力。
長(zhǎng)春理工大學(xué)學(xué)報(bào)(自然科學(xué)版)2021年4期