朱雪超
【摘要】股票市場(chǎng)是一個(gè)高風(fēng)險(xiǎn)高收益的投資領(lǐng)域,為了不斷降低投資風(fēng)險(xiǎn)進(jìn)而獲取最大的投資效益,投資者做了大量的研究,從不同的角度探究股票市場(chǎng)運(yùn)行的內(nèi)在規(guī)律,不斷完善股票投資的分析方法、尋找理想的分析工具?;诖?,本文利用R軟件統(tǒng)計(jì)方法對(duì)上海證券交易所提供的2016年1月4日-2017年12月31日平安銀行732天的相關(guān)數(shù)據(jù)建立BP神經(jīng)網(wǎng)絡(luò)模型,然后將其用于股票交易系統(tǒng)產(chǎn)生市場(chǎng)上的交易決策。本文選用的R軟件處理的智能方法能夠?yàn)橥顿Y者提供客觀信息,預(yù)測(cè)準(zhǔn)確度較高,在股票預(yù)測(cè)等方面具有一定的優(yōu)越性。
【關(guān)鍵詞】BP神經(jīng)網(wǎng)絡(luò) R軟件 價(jià)格預(yù)測(cè) 交易決策
一、前言
理論上來(lái)說(shuō),股票市場(chǎng)可以被看作是一個(gè)非常復(fù)雜的非線(xiàn)性動(dòng)態(tài)系統(tǒng),對(duì)股票價(jià)格進(jìn)行相關(guān)的分析與預(yù)測(cè)非常困難且極具有挑戰(zhàn)性。然而基于對(duì)巨大利益的追求以及對(duì)一些未知規(guī)律的求知欲望,人們一直堅(jiān)持不懈的對(duì)股票市場(chǎng)進(jìn)行探索與研究。近年來(lái)人工智能方法迅速發(fā)展起來(lái),并被廣泛應(yīng)用于智能控制、機(jī)器學(xué)習(xí)、存儲(chǔ)與管理等科學(xué)領(lǐng)域,它在股票預(yù)測(cè)中的應(yīng)用也受到人們追捧?,F(xiàn)代智能技術(shù)中一個(gè)重要的研究就是數(shù)據(jù)的機(jī)器學(xué)習(xí),數(shù)據(jù)的機(jī)器學(xué)習(xí)目的是希望能夠通過(guò)計(jì)算機(jī)對(duì)已知數(shù)據(jù)進(jìn)行反復(fù)的自主學(xué)習(xí),使計(jì)算機(jī)能夠找到數(shù)據(jù)間的相互關(guān)系,從而使其能夠完成對(duì)未知數(shù)據(jù)的判斷和預(yù)測(cè)。
二、BP神經(jīng)網(wǎng)絡(luò)原理
人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)的基本構(gòu)成單元是神經(jīng)元,它是一個(gè)非線(xiàn)性、動(dòng)態(tài)處理系統(tǒng),可以實(shí)現(xiàn)多輸入、單輸出的過(guò)程。我們可以依據(jù)神經(jīng)元的這種功能與特征,將神經(jīng)元抽象成較為簡(jiǎn)便的數(shù)學(xué)模型。人工神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元主要包含三個(gè)要素;一組連接、一個(gè)求和單元以及一個(gè)非線(xiàn)性激活函數(shù)。人工神經(jīng)元三要素如圖1所示。
(1)一組連接,權(quán)值wij表示系統(tǒng)中神經(jīng)元j到神經(jīng)元i的連接權(quán)值,它主要表現(xiàn)的是一組連接中的連接強(qiáng)度,系統(tǒng)中一個(gè)正的權(quán)值表示激活,而負(fù)的權(quán)值則表示抑制。
BP神經(jīng)網(wǎng)絡(luò)的突出特點(diǎn)是信號(hào)的正向傳遞與誤差的反向傳遞。在信號(hào)的正向傳遞過(guò)程中,數(shù)據(jù)信號(hào)通過(guò)輸入層進(jìn)行多層輸入,再經(jīng)過(guò)隱含層的逐步處理后經(jīng)過(guò)輸出層輸出。系統(tǒng)中每一層神經(jīng)元都只會(huì)影響到它下一層的神經(jīng)元,當(dāng)然也只會(huì)受它上一層神經(jīng)元的影響。若經(jīng)過(guò)輸出層輸出的結(jié)果距離我們的期望輸出有比較大的偏差,系統(tǒng)則自動(dòng)轉(zhuǎn)入信號(hào)的反向傳遞階段。系統(tǒng)將根據(jù)輸出與期望的誤差對(duì)網(wǎng)絡(luò)權(quán)值以及閥值進(jìn)行自動(dòng)的調(diào)整,使得系統(tǒng)誤差信號(hào)最后能夠達(dá)到一個(gè)精度要求,從而使BP神經(jīng)網(wǎng)絡(luò)的輸出最終達(dá)到我們的期望。BP神經(jīng)網(wǎng)絡(luò)中神經(jīng)元的之間的傳遞函數(shù)為s型函數(shù),輸出量為0到1之間的連續(xù)量。
三、運(yùn)用R軟件BP神經(jīng)網(wǎng)絡(luò)方法的股票預(yù)測(cè)
BP神經(jīng)網(wǎng)絡(luò)因?yàn)榭梢暂^為便捷準(zhǔn)確的處理高度非線(xiàn)性問(wèn)題,所以被很多研究者廣泛的應(yīng)用于經(jīng)濟(jì)預(yù)測(cè)中,在R軟件中的添加包nnet可以實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)。本文就是基于BP神經(jīng)網(wǎng)絡(luò)方法對(duì)相關(guān)股票數(shù)據(jù)進(jìn)行建模,并利用R軟件中的nnet添加包編程實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)的建模過(guò)程。
在將數(shù)據(jù)應(yīng)用到BP神經(jīng)網(wǎng)絡(luò)之前,我們首先需要對(duì)股票相關(guān)數(shù)據(jù)進(jìn)行建模前預(yù)處理。也就是對(duì)相關(guān)數(shù)據(jù)進(jìn)行相應(yīng)的尺度轉(zhuǎn)換,這樣可以有效的避免變量的尺度對(duì)神經(jīng)網(wǎng)絡(luò)模型的性能產(chǎn)生影響。在本文中們我們先將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,使所有股票相關(guān)數(shù)據(jù)的均值為0標(biāo)準(zhǔn)差為1。R軟件中函數(shù)scale()可以實(shí)現(xiàn)上面的數(shù)據(jù)標(biāo)準(zhǔn)化過(guò)程。在數(shù)據(jù)處理完,我們可以用函數(shù)unscale()將以上標(biāo)準(zhǔn)化后的數(shù)據(jù)進(jìn)行逆運(yùn)算,得到原始尺度的數(shù)據(jù)。
加載nnet包后,在默認(rèn)的情況下,函數(shù)nnet()以區(qū)間[-0.5,0.5]中的隨機(jī)值來(lái)設(shè)置結(jié)點(diǎn)之間鏈接的初始權(quán)重。選擇出的值即為結(jié)點(diǎn)之間鏈接的初始權(quán)重,這表示我們?cè)谶B續(xù)運(yùn)行后所得到的結(jié)果極有可能是不相同的。在此本文加入了set.seed()函數(shù),這個(gè)函數(shù)可以將隨機(jī)發(fā)生器中的種子數(shù)進(jìn)行初始化,這樣就避免了選擇出的權(quán)值相同的情況。
在平安銀行732天的數(shù)據(jù)中,我們以其中前600個(gè)相關(guān)數(shù)據(jù)作為訓(xùn)練集觀測(cè)值來(lái)創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型,再應(yīng)用其中后132個(gè)相關(guān)數(shù)據(jù)作為觀測(cè)值來(lái)測(cè)試這個(gè)預(yù)測(cè)模型。將訓(xùn)練集標(biāo)準(zhǔn)化之后,在程序中調(diào)用函數(shù)nnet()建立BP神經(jīng)網(wǎng)絡(luò)模型,然后利用函數(shù)predict()獲得測(cè)試數(shù)據(jù)集的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值。取得預(yù)測(cè)值之后,調(diào)用函數(shù)unscale()將數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)化之前的數(shù)據(jù)。在設(shè)定我們所期望的買(mǎi)入與賣(mài)出界限值以后,再應(yīng)用函數(shù)trading.signals()將所預(yù)測(cè)的數(shù)值轉(zhuǎn)換為信號(hào)。最后通過(guò)函數(shù)sigs.PR()獲得我們關(guān)心的兩類(lèi)事件以及決策精確度和回溯精確度矩陣。
在R軟件中執(zhí)行以上命令得到?jīng)Q策精確度與回溯精確度矩陣,如表1所示:
所得到的三行兩列矩陣就是決策精確度與回溯精確度矩陣,在這個(gè)矩陣中行‘s表示賣(mài)出、‘b表示買(mǎi)入、‘s+b表示保持持有,列‘precision表示的是決策精確度、‘recall表示的是回溯精確度。我們可以從這個(gè)矩陣中發(fā)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)模型的決策精確度較好,回溯精確度的值較低,但是回溯度值較低所導(dǎo)致的問(wèn)題不是很?chē)?yán)重,因?yàn)樗馕吨C(jī)會(huì)而不是有成本損失。