宋麗娜
(華北電力大學 數理學院,北京 102206)
傳統的股票價格預測方法主要依托于股票歷史交易數據。喬若羽基于股票歷史交易數據構建一系列神經網絡模型來預測股票價格,探索了不同模型對股票價格預測的效果。[1]馮宇旭等利用LSTM 模型結合股票基礎變量對股票價格進行預測,證明LSTM 模型在股票價格預測上有較好的預測效果。[2]鹿天宇等在對股票價格進行預測過程中,利用主成分分析方法降低神經網絡的變量輸入維度,提高了模型的運行速度和精度。[3]魏健等利用主成分分析方法對四個模型預測的結果進行權值確定形成組合模型,發現組合模型的效果比單模型的效果好。[4]然而這些方法忽略了股票價格的其他影響因素,具有一定的局限性。隨著互聯網的普及,部分學者開始研究文本信息的情感分析對股票價格預測的有效性。肖亭等利用股評文本的情感分析結果預測股票價格上漲或下跌的趨勢。[5]劉斌將股指序列與量化的文本情感序列輸入BP 神經網絡進行股指預測建模。[6]冉楊帆等以股票價格數據和股票新聞數據為基礎,將情感分析方法與BP 神經網絡和SVR 支持向量回歸結合進行股票價格預測。[7]楊妥等證明利用SVM-LSTM 模型融合情感極性特征的股指預測較傳統預測方法在預測精度上效果更好。[8]
綜合上述研究,結合股票文本信息的情感指標構建模型對股票市場進行預測的方法成熟可行。然而模型中時間序列指標復雜冗余,考慮對所有指標進行降維和特征提取的研究卻很罕見,故本文提出一種融合股票交易數據和文本情感數據的PCA-LSTM 股票價格預測模型。
在綜合考慮股票價格的影響因素后,運用PCA 方法對股票交易指標和股票文本情感指標進行降維處理。將得到的主成分作為LSTM 神經網絡的輸入變量,利用LSTM 神經網絡進行模型的訓練及預測,模型構建過程如圖1。

圖1 股票價格預測流程
PCA 主成分分析是機器學習中的一種無監督變量降維方法,是在最大程度保留原始變量信息的前提下,利用正交變換將多個變量轉換為較少的幾個線性不相關的綜合變量,達成變量降維的目的。
主成分分析可以分為如下幾個步驟:
第一,原始指標數據標準化處理。標準化可表示為:

第二,計算樣本相關系數矩陣R=[rij]p,其中rij為樣本變量xi與xj的相關系數。
第三,計算特征值與特征向量。對相關系數矩陣R 求解特征方程得到p 個特征根,對其按大小排列:,之后分別求出特征根所對應的特征向量ej,(j=1,2,…,p)
第四,計算方差貢獻率及累計方差貢獻率:

第五,通過保證主成分的累計貢獻率η∑(k)能夠超過80%,以確定最小的正整數k,最終得到主成分的個數,并將其對應的k 個特征向量構成特征向量矩陣B。
LSTM 長短時記憶網絡是循環神經網絡的改進模型,其在網絡狀態內添加了記憶細胞狀態,并通過增加遺忘門、輸入門、輸出門三個元件使得某一時刻的輸出受當前時刻的輸入和上一時刻的輸出共同影響。以下公式表示LSTM 模型中遺忘門、輸入門、輸出門的狀態值。
遺忘門ft:ft=σ(Wf*[ht-1,xt]+bf)
輸入門it:it=σ(Wi*[ht-1,xt]+bi)
輸出門Ot:Ot=σ(Wo*[ht-1,xt]+bo)
LSTM 的輸出值ht:ht=Ot*tanh(Ct)
其中σ 表示sigmod 函數,Wf、Wi、Wc、Wo分別表示遺忘門、輸入門、記憶細胞、輸出門的權重矩陣,bf、bi、bc、bo表示遺忘門、輸入門、記憶細胞、輸出門的偏置項。
本文選用了平安銀行(000001)從2010 年1 月4 日到2020 年4 月30 日共2 440 個交易日的股票交易時序數據和文本數據。其中涉及的股票交易時序指標如開盤價、最高價、最低價、收盤價和成交量;技術指標包括能量潮、威廉指標、乖離率和布林帶。本文選取東方財富網旗下財富社區下股吧論壇平安股吧帖子作為文本信息的來源。
文本情感分析包括文本預處理、構建情感詞典和文本量化。具體量化步驟如下。
2.2.1 文本預處理
首先采用Python 中文“結巴”分詞對平安銀行的股票評論文本進行分詞處理;然后將目前使用較多的哈工大停用詞表和百度停用詞表的去重綜合版作為停用詞表,對分詞后的所有詞匯進行遍歷,識別出停用詞后并刪除。
2.2.2 情感詞典的構建
本文關于股票評論情感分析的情感詞典主要包括兩個部分,一部分是基礎情感詞典的集合,如知網情感詞典(Hownet)、臺灣大學情感詞典(NTUSD)等;另一部分是利用jieba 分詞結合TF-IDF 統計方法獲得文本中詞頻的排序前1 000 個關鍵詞中的情感詞。另外,程度副詞表和否定詞表由基礎的情感詞匯表中剝離出來。表1 為情感詞典部分內容示例。

表1 情感詞典部分內容示例
2.2.3 文本量化
基于情感詞典的文本情感值的計算過程是以建立的情感詞匯表為基礎,由Python 代碼建立多個循環語句來對分詞的詞語進行遍歷識別和計算實現的。具體計算公式如下:

其中C(W)表示程度副詞或否定詞的權值,SO(P)表示積極情感詞的權重,SO(N)表示消極情感詞的權重。SO(S)大于0時,記為積極情感;SO(S)等于0 時,記為中立情感;SO(S)小于0 時,記為消極情感。
判斷完每條評論的情感傾向后,可以計算出第i 天該股票的情感值,生成股票的情感指標序列,其中計算公式為:

其中,posi表示第i 天的積極文本數,negi表示第i 天的消極文本數。
在交易日的維度上,將每個交易日的股票交易時序指標與情感指標進行融合。運用SPSS 軟件對所有股票影響因子序列進行PCA 降維分析,得到各主成分的總方差、方差貢獻率和累計方差貢獻率如表2,3 個主成分的累計方差達到80%以上,說明用這三個主成分就可以近似表示全部指標變量的信息。

表2 總方差解釋表
將PCA 降維生成的3 列主成分數據代替原來的樣本數據作為LSTM 神經網絡的輸入變量進行預測建模。
股價預測平臺為Python3.7 環境Tensorflow 框架下Keras學習庫,并將數據集2020 年1 月2 日之后的數據作為測試集來驗證模型的預測效果。為證明基于情感分析和PCA-LSTM模型的股票價格預測(M1)的優越性,本文采用基于所有變量的LSTM 模型(M2)和BP 模型(M3)作為對比模型,預測結果如圖2,誤差結果對比情況如表3。結合圖2 和表3 可知,本文提出的基于情感分析和PCA-LSTM 模型預測效果最好,且其MAPE、MAE、RMSE 值最小。

表3 模型的預測結果誤差分析

圖2 模型對比結果
股票價格受多方面因素的影響,本文從量價和文本角度出發,以平安銀 行(000001)從2010 年1 月4 日到2020 年4 月30 日共2 440 交易日的股票交易時序指標與文本情感指標數據作為PCA-LSTM 模型的輸入特征進行訓練及預測。結果表明,本文提出的基于情感分析和PCA-LSTM 模型具有較高預測精度,并且其結果要優于LSTM 模型和BP 神經網絡。