朱雪超


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