王雨涵, 張亞萌, 魏國亮
(1 上海理工大學管理學院, 上海 200093; 2 上海理工大學光電信息與計算機工程學院, 上海 200093)
作為經濟學的一個重要組成部分,金融市場能夠反映當前和未來的經濟形勢,為金融領域從業者提供投資參考。 為了能夠更好地掌握未來的經濟發展方向,對金融數據進行預測一直是學術研究的重要問題。 但由于金融數據呈現出的非線性、非平穩性、不確定性和復雜性,對其進行準確預測存在著不小的難度。 目前,已經有許多方法可以用于對金融數據進行預測,主要可以分為傳統模型和現代模型[1]。
傳統模型主要有自回歸模型(AR)、自回歸綜合移動平均模型(ARIMA)、自回歸條件異方差模型(ARCH)。 文獻[2]利用過去的信息建立自回歸模型來預測未來的收益。 文獻[3]利用自回歸綜合移動平均模型對菲律賓皮索-美元的匯率進行了預測。 文獻[4]利用自回歸條件異方差模型對9 種人民幣匯率的波動情況進行了預測。 這些模型為金融時間序列預測方法的發展提供了堅實的基礎,但仍存在無法準確捕捉市場的高度非線性和復雜性的問題。
近年來,得益于計算機技術的發展,大量的現代預測方法被提出,并用于金融數據的預測之中。 而模糊邏輯憑借其處理數據不確定性的優秀能力,吸引了許多人的關注。 例如,文獻[5]提出了一種將模糊技術與灰色理論相結合的模糊灰色預測方法,來對股票價格進行預測。 文獻[6]引入了一種新的模糊度量,并建立了一個用于預測股票指數的時間變量模糊時間序列結構。 而結合了模糊邏輯和神經網絡的模糊認知圖(FCMs)在經濟領域中得到了廣泛的應用。 例如,在文獻[7]中,提出了一個基于函數權重的FCMs 模型用于股票價格的預測。 在文獻[8]中,一種結合了動態時間扭曲和模糊c-均值技術的FCMs 模型被用于股票價格時間序列問題的研究。 在文獻[9]中,將模糊認知圖與測度遞進策略相結合,從而對股票的日均值進行預測。
盡管現有的FCMs 模型在金融市場預測中取得了許多成果,但依然存在很多缺陷。 如,文獻[10]采用小波變換技術提取的特征序列可能存在冗余,而文獻[11]中將單變量序列先處理成了多個序列,這些因素都可能影響模型預測的穩健性。 而且,目前的FCMs 預測方法主要通過歷史數據進行預測,沒有考慮靈活運用歷史數據預測過程中產生的誤差。
文獻[12]在已有預測模型的基礎上構造了一個相應的誤差預測模型來提高預測的準確性。 基于該思想,本文通過把歷史預測誤差列為影響模型預測能力的一個因素,提出了一種結合BP 神經網絡和HFCMs 模型的方法來對金融市場進行預測。 該模型以金融數據集中的原始股票價格作為輸入,以預測股票價格作為輸出。 首先,對金融數據集進行預處理,使之達到規范化標準。 然后,建立HFCMs模型對金融數據集進行預測,并利用BP 神經網絡構造相應的誤差預測模型。 最后,將2 個模型相結合,構造BPNN-HFCMs 模型來預測股票價格。 其中,最佳權重矩陣由時間變化加速系數粒子群優化(TVAC-PSO)算法得到。
本文的結構如下。 第1 節介紹了模型的結構和方法論,第2 節介紹了利用上述模型對一系列金融數據集進行實驗的結果,第3 節用于總結模型的優點和不足。
本節將詳細介紹利用高階模糊認知圖(Highorder Fuzzy Cognitive Maps)模型對股票價格進行預測的方法論,以及如何利用BP 神經網絡(Back Propagation Neutral Network)對模型誤差進行進一步優化。 首先,用TVAC-PSO 算法來尋找HFCMs 模型的最優參數,得到對股票價格的初步預測值。 然后,利用BP 神經網絡建立誤差預測模型,預測HFCMs 模型的預測誤差,從而提高模型的預測精度。
模糊認知圖最早由Kosko 等學者于1986 年提出,是對于認知圖的一種延伸。 將認知圖中概念之間的三值邏輯關系{-1,0,1}擴展為[-1,1]區間上的模糊關系,便構成了模糊認知圖的底層邏輯。
一般來說,FCM 是由N個概念節點或實體以及一系列加權邊構成的有向圖,節點與節點之間用加權邊相互連接,從而體現出各個概念之間的因果關系。 而節點Ci和Cj之間的因果關系可以由模糊成員關系wij來表示,因此可以用一個n×n階矩陣W=(wij)n×n來唯一確定一個具有n個概念節點的模糊認知圖,wij的取值范圍即為[-1,1],一般來說,wij需要遵循以下規則:
(1)wij >0, 表示節點Ci對節點Cj有正的影響。 即,如果Ci變化,Cj會發生同向的變化,變化程度即為wij。
(2)wij <0, 表示節點Ci對節點Cj有負的影響。 即,如果Ci變化,Cj會發生反向的變化,變化程度即為wij。
(3)wij=0,表示節點Ci對節點Cj無影響。
為了使概念描述更直觀,圖1 中描述了一個具有5 個節點的簡單FCMs 模型。 節點Ci在(t+1)時刻的狀態值由式(1) 得到:

圖1 FCMs 模型結構示意圖Fig. 1 Schematic diagram of the structure of FCMs model
其中,Ai(t) 表示節點Ci在時間t時的狀態值;Aj(t+1) 表示節點Cj在時間t+1 時的狀態值;N為概念節點的數量;wij為概念節點Ci到Cj的連接權重;Φ(·) 為非線性激活函數,可以將數據轉換到一定的范圍之內,如[0,1]。 常用的激活函數主要有sigmoid函數和雙曲切線函數兩種,分別見式(2)、式(3):
其中,η1和η2是2 個激活函數中的正數,sigmoid函數和雙曲切線函數可以將輸入映射到[0,1]和[-1,1]上。
在式(1)基礎上利用歷史信息,Stach 提出了HFCMs 模型,從而減少了長期滯后性對模型預測結果的影響。 HFCMs 模型和FCMs 模型的區別主要體現在狀態值的定義公式上,而HFCMs 模型的數學表達如式(4)所示:
其中,wij(m)表示在m時刻概念節點Ci到Cj的連接權重;bi表示偏置項;其他符號的含義與式(1)中相同。 對比式(1)和式(2)不難看出,當m=1時,HFCMs 模型與FCMs 模型相同。
對于模型中的權重矩陣wij,本文通過時間變化加速系數粒子群優化(TVAC-PSO)算法來尋優。TVAC-PSO 是一種基于種群的自適應學習算法,其中每個個體稱作粒子,并且能夠保存種群中所有粒子最優位置和速度的記憶。 通過多次迭代,粒子不斷改變其狀態,直到達到最優或平衡狀態。 粒子i在d維搜索空間中的速度vid和位置xid的定義公式具體如下:
其中,rand表示[0,1]內均勻分布的隨機數;pbid表示粒子i在d維搜索空間中局部最佳位置;gb表示全局最佳位置。 而研究推出的w、c1、c2的定義公式為:
其中,iterm和iter分別表示最大迭代數和當前迭代數;c1f,c1i,c2f,c2i為常數;i表示當前迭代數;MAX為總迭代數。
TVAC-PSO 通過最小化以下損失函數來得到最佳的權重矩陣:
其中,λ是正則化參數,范圍為[0,1]。
通過TVAC-PSO 模型,可以幫助HFCMs 模型獲得更高的預測精度。
由于HFCMs 模型存在一定的預測誤差,因此本文通過對誤差進行二次預測,從而進一步提高模型準確率。 在此,選擇了反向傳播神經網絡(BPNN)來建立該誤差預測模型。
神經網絡模仿了人類神經元的激活、傳遞過程。BP 神經網絡采用輸出結果前向傳播,誤差反向傳播的方式來對輸入進行處理,是一種基礎神經網絡。BP 神經網絡包含輸入層、隱層、輸出層三層結構。每一層神經元都與上一層神經元相連接,收集其傳遞來的信息并通過仿射變換z將其變為一個標量,再由激活函數(見式(2)、式(3))處理之后把仿射變換后的數據傳遞給下一層。 仿射變換z可以用式(11)進行簡單表述:
其中,ai-1為該層神經元的輸入;Wi為第i層的權重矩陣;bi為偏置向量。 可以看出,各層神經網絡的權重矩陣Wi以及對應的偏置向量bi即為神經網絡中的待訓練參數。 為了便于理解,一個3 層的BP神經網絡結構如圖2 所示。

圖2 BPNN 結構圖示Fig. 2 Schematic diagram of the structure of BPNN
為了得到模型的最佳參數,在訓練過程中,首先對權重矩陣和偏置向量進行初始化,再使用梯度下降法反向傳遞誤差,從而逐漸減小模型輸出值與實際值之間的差距,使權重矩陣Wi以及對應的偏置向量bi能夠接近最佳值。
利用如上BP 神經網絡來構造對于HFCMs 的誤差預測模型,再與HFCMs 模型相結合,得到BPNN-HFCMs 模型對金融數據集進行預測。 為了便于理解,圖3 描述了該模型的流程圖。

圖3 模型結構流程圖Fig. 3 Flowchart of model structure
BPNN-HFCMs 模型分為模型建立部分和預測部分。 在模型建立部分,以原始股票價格以及最大迭代次數NG作為模型輸入,首先用50%的歷史數據利用TVAC-PSO 算法訓練HFCMs 模型1,然后用訓練好的HFCMs 模型1 來預測剩余的50%歷史數據。 通過比較剩余50%歷史數據的真實值和預測值之間的差得到預測誤差集,再用BPNN 算法用預測誤差集構造誤差預測模型。 模型的輸出即為預測價格。
在預測部分,同樣以原始股票價格作為模型輸入,首先,用100%的歷史數據訓練HFCMs 模型2,得到第T天的預測值;然后用構造好的BPNN 模型以T- 1 天的數據為輸入,輸出第T天的預測誤差。結合第T天的預測誤差和第T天的預測值,則可以得到第T天的最終預測值。 模型的輸出即為最終預測價格。
在本節中,提出一個算法來詳細展示上文所提出的預測系統,即HFCMs 預測模型和BPNNHFCMs 模型。 為簡潔起見,模型的偽代碼詳見算法1 及算法2。
算法1 HFCMs 模型
輸入原始股票價格,最大迭代次數:NG
輸出預測價格
1:獲取歷史數據,并將股票價格初始化為[-1,1]的范圍內
2:隨機初始化TVAC-PSO 算法中所有粒子的速度vid和位置xid
3:forg=1 toNGdo
4: 用方程(5)和方程(6)更新所有粒子的速度和位置
5: 計算損失函數J1的值
6: 檢查是否滿足結束條件
7:end for
8:得到HFCMs 模型框架
9:通過HFCMs 模型框架預測未來價格
算法2 BPNN-HFCMs 模型
輸入原始股票價格
輸出最終預測價格
1:獲取歷史數據
2:以50%的歷史數據作為輸入,根據算法1 構造HFCMs 模型1
3:根據算法1,使用HFCMs 模型1 預測剩余50%的歷史數據
4:用預測誤差和實際值作為輸入,訓練BPNN誤差預測模型
5:使用HFCMs 模型預測股票價格,BPNN 誤差預測模型預測對應時間點的預測誤差
6:結合步驟5 中的預測數據和預測誤差,得到對應時間點的最終預測值
為了驗證BPNN-HFCMs 模型對金融時間序列預測的有效性并評價其預測效果,本節中選取了5個金融數據集對模型進行了實驗。 其中,2.1 節介紹了實驗的設置和評價指標,2.2 節則是對實驗結果的展示。
本文的實驗均是在一臺2.38 GHz CPU、16 GB內存、使用Python3.10 版本的Windows 10 操作系統的筆記本電腦上進行的。 對這里的研究內容可給出闡釋論述如下。
(1)數據集。 本文選取了5 個從雅虎金融上下載的金融時間序列數據集:SP500、RUT、N225、HSI、DJI,來對預測模型的有效性進行驗證。 其中,每個數據集分別包括從2010 年1 月4 日到2020 年10月22 日的每日開盤價、最高價、最低價以及收盤價。由于整個模型主要分為2 個部分:根據HFCMs 的預測結果訓練誤差預測模型BPNN,以及結合HFCMs模型對真實值的預測和BPNN 對誤差的預測,從而得到最終的預測值。 在對BPNN 模型的訓練中,首先用HFCMs 模型對50%的數據集進行預測,這由HFCMs 模型預測得到的50%數據即為BPNN 模型的輸入。 此后再將這50%的數據集以80%:20%的比例劃分為訓練集和測試集進行誤差預測,并與HFCMs 模型中的預測值相結合。 即從總體上來看,數據集中10%數據被用于測試集,剩余的90%均用于模型的訓練。 在表1 中對這5 個金融數據集進行了統計描述。

表1 各股票收盤價格的統計描述Tab. 1 The statistical description of the close price of each stock
(2)基線模型。 為了驗證模型的預測能力,本文選取HFCMs、FCMs、BPNN 作為基線模型進行比較。 這些基線模型的詳細描述見如下。
①HFCMs:HFCMs 是在處理金融領域預測中較為常見的一種預測方法,因此將其作為基線模型之一。 此外,HFCMs 模型的最佳權重矩陣由TVACPSO 算法得到。
②FCMs:FCMs 是用于預測的基礎模型之一,因此將其作為基線模型之一。
③BPNN:BPNN 是神經網絡中最為經典的預測模型之一,本質上可以將其認為是用訓練樣本構造的回歸模型。 通過各股票的4 個基本價格(開盤價、收盤價、最高價和最低價)作為輸入來對股票的收盤價進行預測。
(3)評價指標:在實驗中用平均絕對誤差(MAE)和均方根誤差(RMSE) 對實驗結果進行評價。 這2個指標均用于衡量股票價格的真實值和預測值之間的差異,其值可由式(12)、式(13)來求得:
其中,T表示預測數據的總數,yi和分別表示實際值和預測值。 并且,MAE和RMSE的值越小,表示模型的性能越好。
本小節將對實驗結果進行展示分析。 首先,為了使預測結果更加準確,本文將股票價格數據映射到了[0,1]區間內,再對所提出的模型進行訓練。對于每個歸一化后的金融數據集,將其分為3 個部分,即:訓練集、驗證集和測試集。
考慮到高階HFCMs 模型對計算機運算能力會產生較大負荷,本文中使用的HFCMs 的階數為二階,以減小模型計算量。
本文利用提出的BPNN-HFCMs 模型對各金融數據集進行預測,并與各基線模型的預測效果進行對比。 表2~表3 給出了不同模型在各數據集預測上的MAE對比以及RMSE對比結果,而圖4 ~圖5則是多次運行BPNN-HFCMs 模型得到的在各數據集上MAE、RMSE值的箱型圖。

表2 各模型MAE 值對比Tab. 2 The comparison of MAE on each model

表3 各模型RMSE 值對比Tab. 3 The comparison of RMSE on each model

圖4 BPNN-HFCMs 模型在各數據集上的MAE 值Fig. 4 The MAE value of BPNN-HFCMs model on each dataset

圖5 BPNN-HFCMs 模型在各數據集上的RMSE 值Fig. 5 The RMSE value of BPNN-HFCMs model on each dataset
從表2~表3 可以看出,傳統FCMs 模型的預測效果最差,BPNN 的預測效果次之,而BPNN -HFCMs 模型對于各個金融數據集的預測效果則要優于本文選取的3 個基線模型的效果。 根據圖4 ~圖5,可以認為BPNN-HFCMs 模型的預測結果是較為穩定的。 因此可以認為,在股票價格預測中,BPNN-HFCMs 模型是一種較好的預測方法。
并且,通過對比BPNN-HFCMs 模型與HFCMs模型的預測結果,可以得出以下結論:用BP 神經網絡對HFCMs 模型的預測誤差做進一步預測,對于提高模型的最終預測精度是有效的。 根據表2 和表3中2 個模型在5 個數據集預測上的MAE和RMSE值,可以得出對于數據集SP500、N225 和DJI,其MAE、RMSE值均有了顯著的降低。 對于SP500,預測結果的MAE值降低了29.2%,RMSE值降低了24.6%;對于N225,預測結果的MAE值降低了23.2%,RMSE值降低了20.1%;對于DJI,預測結果的MAE值降低了24.6%,RMSE值降低了17.5%。盡管金融數據集RUT 和HSI 在預測結果的MAE、RMSE值上降幅并不大,RUT 上的降幅為12.8%和1.5%,HSI 上的降幅為0.8%和0.6%,但BPNNHFCMs 模型的預測結果依然優于HFCMs 模型。
此外,本文還應用了Diebold-Mariano 檢驗(DM檢驗)來驗證2 個模型之間在預測能力上的差異。DM 檢驗的無效假設是:2 個被測模型之間的預測能力沒有明顯的差異。 其中,將第i個模型在t時刻的預測誤差定義為ei,t=yi,t-y^i,t,則DM 統計數據可由式(14)運算得到:
其中,(0) 表示fg(0) 的一致估計值,即頻率為0 的損耗差的頻譜密度。 根據DM 檢驗的p值可以判斷2 個模型預測能力是否存在差異,若p值小于0.05,則2 個模型的預測能力存在差異。 BPNNHFCMs 模型與其他模型之間DM 檢驗的p值見表4。 根據表4 可得,本文提出的BPNN-HFCMs 模型與HFCMs、FCMs、BPNN 模型的預測能力存在顯著差異。

表4 BPNN-HFCMs 模型與其他模型之間DM 檢驗的p 值Tab. 4 The p-value of the DM test between the BPNN-HFCMs model and other models
為了更好地觀察模型BPNN-HFCMs 的預測效果,模型在各數據集測試集上的預測結果與真實值的對比如圖6 所示。

圖6 BPNN-HFCMs 模型在各數據集上預測結果與初始值對比圖Fig. 6 The comparison of predict outcomes and initial values on each dataset of BPNN-HFCMs
由圖6 可知,BPNN-HFCMs 模型得到的預測值與真實值較為接近,但由于金融市場中諸多不確定性因素的存在,依然無法實現對金融數據集的零誤差預測。 但本文提出的模型與其他作為對照的模型相比,依然取得了較為理想的預測效果。

本文提出了一個基于BP 神經網絡和高階模糊認知圖的股票價格預測模型來預測金融市場。 通過對初步預測值和真實值的誤差構建的誤差預測模型來提高預測的準確性。 模型的最佳權重矩陣通過TVAC-PSO 算法得出。 該模型主要有以下2 個優點:
(1)在預測中充分考慮了預測誤差對模型精度的影響。
(2)采用TVAC-PSO 算法得到模型的最佳權重矩陣。
最后,通過對5 個金融數據集的實驗,驗證了該模型的有效性。