袁銘涓 孫若瑩
北京信息科技大學(xué),北京 100192
隨著我國經(jīng)濟(jì)的快速發(fā)展,大宗商品交易市場受到了廣泛而密切的關(guān)注。期貨交易在固定的場所或平臺按照既定標(biāo)準(zhǔn)進(jìn)行買賣合約,到期交割現(xiàn)貨?,F(xiàn)貨價格是期貨價格的基礎(chǔ),期貨價格能夠發(fā)現(xiàn)到期日現(xiàn)貨市場的預(yù)期價格,二者具有長期協(xié)整關(guān)系。
我國作為農(nóng)業(yè)大國,大宗農(nóng)產(chǎn)品期貨在我國期貨市場的交易中盤踞絕對的優(yōu)勢,大宗農(nóng)產(chǎn)品價格關(guān)系著國計民生,也是農(nóng)產(chǎn)品期貨市場穩(wěn)定發(fā)展的根基。近年來大宗農(nóng)產(chǎn)品價格變化較大,不穩(wěn)定性加劇,價格風(fēng)險日益增加。影響大宗農(nóng)產(chǎn)品價格產(chǎn)生變化的要素主要有兩方面:一方面是人們根據(jù)農(nóng)產(chǎn)品交易的歷史價格,憑借經(jīng)驗進(jìn)行商品定價,使得大宗農(nóng)產(chǎn)品價格序列呈現(xiàn)出一定的歷史相關(guān)性;另一方面是由于政策變動、自然災(zāi)害等情況引發(fā)的市場需求萎縮、資金短缺等現(xiàn)象,也導(dǎo)致農(nóng)產(chǎn)品價格在短期內(nèi)呈現(xiàn)出波動大、非平穩(wěn)的特點(diǎn)[1]。這些影響因素難以被量化,卻通過價格數(shù)據(jù)序列中突然變化的拐點(diǎn)體現(xiàn)了其作用。
因此,挖掘商品期貨價格規(guī)律,對未來農(nóng)產(chǎn)品價格走勢進(jìn)行更加精確的預(yù)測,對于政府、金融投資者、大宗交易商的決策都十分重要和關(guān)鍵。首先,有利于提高中國在國際大宗農(nóng)產(chǎn)品期貨市場的地位,指導(dǎo)我國大宗農(nóng)產(chǎn)品定價市場化改革方向;其次,有利于幫助政府制定相關(guān)價格調(diào)控政策,強(qiáng)化期貨市場監(jiān)管,促進(jìn)期貨現(xiàn)貨市場有效聯(lián)動,維護(hù)金融交易市場的穩(wěn)定發(fā)展;最后,能夠?qū)ξ磥硎袌鲂星樽邉葸M(jìn)行合理分析和評估,從而進(jìn)一步指導(dǎo)大宗商品現(xiàn)貨交易鏈中的企業(yè)進(jìn)行加工貿(mào)易或銷售等經(jīng)營活動,規(guī)避風(fēng)險、降低成本,獲取最大化收益。
通過梳理近年來國內(nèi)外研究文獻(xiàn)可以得知,學(xué)者們對價格進(jìn)行預(yù)測的研究方法大致可劃分為線性、非線性兩大類模型[2-3]。線性模型主要包括一些計量學(xué)模型和統(tǒng)計學(xué)模型,例如向量自回歸模型(Value at Risk,VAR)、自回歸條件異方差模型(Autoregressive Conditional Heteroskedasticity,ARCH)、差分自回歸移動平均模型(Autoregressive Integrated Moving Average,ARIMA)等。其中,盧虎生等[4]運(yùn)用VAR模型分析了氧化釹價格的影響因素,并對其價格進(jìn)行了預(yù)測。吳玉霞等[5]利用ARIMA 對股票價格進(jìn)行了預(yù)測研究。方燕等[6]基于由ARCH拓展出的GARCH 模型,結(jié)合ARIMA 對滬深兩市的傳媒板塊指數(shù)價格進(jìn)行了分析預(yù)測。
由于大宗商品價格常常呈現(xiàn)不規(guī)律的波動狀況,導(dǎo)致線性模型在預(yù)測期貨價格時顯得有些力不從心。近年來,以機(jī)器學(xué)習(xí)模型為代表的,例如決策樹模型、支持向量回歸模型(Support Vector Rregression,SVR)、隨機(jī)森林(Random Forest,RF)等非線性模型在處理、挖掘變量之間的非線性關(guān)系、以及預(yù)測準(zhǔn)確性上比線性模型表現(xiàn)得更有優(yōu)勢,近年來在價格預(yù)測方面的應(yīng)用越來越普及。BasakS[7]等使用貝葉斯模型對股票市場的價格進(jìn)行了預(yù)測研究。沈金榕[8]基于決策樹算法研究了某上市公司的財務(wù)指標(biāo),并對收益進(jìn)行了預(yù)測。張寶文等[9]等結(jié)合混沌性時間序列與SVR 模型對玉米價格進(jìn)行了預(yù)測。
本文根據(jù)大宗農(nóng)產(chǎn)品期貨價格的典型時間序列特征,構(gòu)建了基于LSTM 神經(jīng)網(wǎng)絡(luò)的大宗農(nóng)產(chǎn)品價格預(yù)測模型,選取2018—2021 年的大豆期貨價格數(shù)據(jù),并在數(shù)據(jù)處理、模型建立、參數(shù)調(diào)整等方面進(jìn)行了相關(guān)研究,與ARIMA 模型相比,證明了LSTM 神經(jīng)網(wǎng)絡(luò)在預(yù)測期貨價格方面具有更好的預(yù)測效果。
神經(jīng)網(wǎng)絡(luò)是由多個連接單元或節(jié)點(diǎn)構(gòu)建的網(wǎng)絡(luò)模型,當(dāng)一個神經(jīng)元接收到信號時并對信號進(jìn)行處理后,再傳遞給其相連接的下一個神經(jīng)元。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)沒有記憶功能,只關(guān)注當(dāng)前時刻的處理,不關(guān)注前一時刻處理的信息是否可以在下一時刻使用。為了解決這個問題,循環(huán)神經(jīng)網(wǎng)絡(luò)RNN 應(yīng)運(yùn)而生。RNN 在神經(jīng)元之間建立聯(lián)系,對隱藏層的中間結(jié)果進(jìn)行循環(huán)利用,使得神經(jīng)網(wǎng)絡(luò)能夠從時間維度上提取到有用的信息[10]。RNN 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 RNN 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
其中X和h分別對應(yīng)在0—t時刻模型的輸入和輸出,A為模型的隱層處理部分,在層之間都有相對應(yīng)的權(quán)重U、V、W。t時刻的輸出結(jié)果不僅與Xt有關(guān),還與上一時刻的輸出信息有關(guān),但隨著時間序列長度的增加,網(wǎng)絡(luò)中的Sigmoid 激活函數(shù)逐漸抵達(dá)飽和,輸出信息沒有明顯變化,在反向傳播時就會爆發(fā)梯度消失。
LSTM 神經(jīng)網(wǎng)絡(luò)模型最早由Hochreiter 等[11]于1997 年提出,后由Graves 等[12]在2012 年進(jìn)行改進(jìn),是一種廣為人知的特殊的RNN 模型。LSTM 引入了長時間信息有效性的機(jī)制,通過增加存儲長期有效數(shù)據(jù)的單元(cell),引入可控自循環(huán)的門(gate),從而克服了RNN 模型存在的梯度消失和梯度爆炸問題,提升了預(yù)測能力。LSTM 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 LSTM 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
LSTM 神經(jīng)網(wǎng)絡(luò)模型由輸入層、輸出層和一個或多個隱藏層組成。每個神經(jīng)元包括遺忘門(forget gate)、輸入門(input gate)、輸出門(output gate)和存儲單元(cell),每個門都實(shí)現(xiàn)各自不同的功能[13]。遺忘門確定從單元狀態(tài)中摒棄多少信息;輸入門確定哪些信息添加到單元狀態(tài)中;輸出門確定哪些單元狀態(tài)信息作為輸出。記憶單元與其他模塊的連接處存在權(quán)值,所有的記憶單元都通過上述三個門組成的門限機(jī)制進(jìn)行控制。LSTM 的前向傳播流程步驟如下:
①計算從之前的單元狀態(tài)中Ct-1需要刪除的值ft。
LSTM 神經(jīng)網(wǎng)絡(luò)根據(jù)上述計算步驟來處理每個時間步長為t的輸入序列,當(dāng)處理完序列最后1 個元素后,返回整個序列的最終輸出。
ARIMA 模型是一種著名的時間序列預(yù)測方法,最早由C.P.Box 和G M.Jenkins[15]提出。其中,AR 是“自回歸模型”,p是自回歸項的個數(shù);MA 為“移動平均模型”,q是移動平均的項數(shù);d是使模型成為平穩(wěn)序列的差分次數(shù),也稱作階數(shù)[5]。其中,p階自回歸過程AR (p)的一般表達(dá)式如下所示:
基于Python3.7 語言環(huán)境,本文在實(shí)證部分選用非線性模型中的長短期記憶網(wǎng)絡(luò)模型LSTM,采用Keras 框架構(gòu)建價格預(yù)測模型,并選取傳統(tǒng)計量學(xué)模型中的差分自回歸移動平均模型ARIMA,分別對同一組大豆期貨行情價格數(shù)據(jù)進(jìn)行訓(xùn)練。兩模型的預(yù)測流程如圖3 所示。
圖3 LSTM、ARIMA 模型預(yù)測流程
本研究數(shù)據(jù)來源于investing 財經(jīng)網(wǎng)站—大連商品交易所大豆2 號期貨行情數(shù)據(jù),時間跨度為2018 年3月19 日—2021 年4 月19 日,通過在大連商品交易所查詢大豆2 號期貨合約可知,其交易時間為每周一至周五,因此有效數(shù)據(jù)共751 天,數(shù)據(jù)集共包括收盤價、開盤價、最高價、最低價、交易量、漲跌幅等6 個維度,原始數(shù)據(jù)集形式如表1 所示。
表1 原始數(shù)據(jù)集形式
2.3.1 訓(xùn)練集、測試集劃分
將原始數(shù)據(jù)集劃分為7:3 的比例,選取70%作為模型的訓(xùn)練集,30%作為測試集。將模型在時間線上的訓(xùn)練結(jié)果與真實(shí)價格數(shù)據(jù)進(jìn)行對比,以判斷預(yù)測結(jié)果的準(zhǔn)確程度。
2.3.2 異常值、缺失值處理
將搜集到的原始數(shù)據(jù)中的異常值、缺失值進(jìn)行預(yù)處理,處理原則是把前一天和后一天的價格數(shù)值進(jìn)行相加取平均值。將所有數(shù)據(jù)處理完畢后,取開盤價、收盤價、最高價、最低價等4 個維度的數(shù)據(jù),大豆在整個周期內(nèi)的價格變化趨勢如圖4 所示。
圖4 大豆期貨價格變化趨勢
2.3.3 數(shù)據(jù)歸一化
在將原始數(shù)據(jù)輸入LSTM 神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練前,對其進(jìn)行Min-Max Normalization 歸一化,將對應(yīng)原始值映射到[0,1]之間,計算公式為:
2.4.1 基本參數(shù)
LSTM 模型中主要包括網(wǎng)絡(luò)層數(shù)、神經(jīng)元個數(shù)、迭代次數(shù)、樣本數(shù)等參數(shù)。在網(wǎng)絡(luò)訓(xùn)練過程中,epoch指向前和向后傳播中所有批次的單次訓(xùn)練迭代次數(shù);time_step 表示每個樣本內(nèi)包含有多少個時刻;而batch_size 定義為更新內(nèi)部模型參數(shù)之前進(jìn)行批處理的樣本數(shù)。單層LSTM 網(wǎng)絡(luò)模型預(yù)測準(zhǔn)確率較低,通過增加網(wǎng)絡(luò)層數(shù)有利于提高模型預(yù)測準(zhǔn)確率,但過度增加網(wǎng)絡(luò)深度會增加計算冗余度、延長模型訓(xùn)練時間,存在梯度消失的風(fēng)險及過大的訓(xùn)練誤差[16]。
考慮到數(shù)據(jù)本身特點(diǎn)以及業(yè)務(wù)需求,本研究中的神經(jīng)網(wǎng)絡(luò)模型的層數(shù)設(shè)計為兩層,兩層網(wǎng)絡(luò)的神經(jīng)元數(shù)分別設(shè)為128 和100,并將時間窗口移動步數(shù)設(shè)置為1,即選用過去n天的價格來預(yù)測未來1 天的價格,以期望模型獲得最佳預(yù)測效果。
2.4.2 參數(shù)調(diào)優(yōu)
為提高模型預(yù)測的準(zhǔn)確性,對LSTM 模型中的epoch、time_step 和batch_size 參數(shù)的最佳組合進(jìn)行探索。在模型參數(shù)調(diào)優(yōu)實(shí)驗中,對random.seed()函數(shù)和Shuffle()函數(shù)進(jìn)行處理,以期望最大程度地消除數(shù)據(jù)隨機(jī)性打亂對結(jié)果的影響,提高結(jié)論的可靠性。使用MSE(均方誤差)作為評價指標(biāo)對模型準(zhǔn)確率進(jìn)行考量,MSE 函數(shù)一般用來檢測模型預(yù)測值和真實(shí)值之間的差異程度,MSE 越小代表著模型準(zhǔn)確率越高,計算公式如下所示:
利用控制變量法對LSTM 網(wǎng)絡(luò)模型中的三個重要參數(shù):n_steps、batch_size 和nb_epoch 的最佳參數(shù)組合進(jìn)行測試,測試結(jié)果如圖5 所示。
圖5 不同參數(shù)組合的MSE 值
2.4.3 模型預(yù)測
根據(jù)不同參數(shù)組合的實(shí)驗結(jié)果,選取最佳的參數(shù)組合n_steps=80、batch_size=500 和nb_epoch=60。將數(shù)據(jù)隨機(jī)打亂輸入模型進(jìn)行訓(xùn)練,每次輸入的數(shù)據(jù)將作為模型輸入特征(Xfeature),預(yù)測的價格作為模型標(biāo)簽(Ylable),LSTM 模型預(yù)測結(jié)果如圖6 所示。
圖6 LSTM 模型預(yù)測結(jié)果
2.5.1 預(yù)測步驟
①將價格數(shù)據(jù)集中的異常值、缺失值進(jìn)行數(shù)據(jù)預(yù)處理。
②對序列進(jìn)行平穩(wěn)性檢驗,檢驗結(jié)果P-value 大于0.05,說明原序列屬于非平穩(wěn)序列,應(yīng)當(dāng)對該序列做d階差分運(yùn)算,直至序列平穩(wěn),經(jīng)檢驗該序列為一階。
③運(yùn)用AIC 或BIC 準(zhǔn)則對模型進(jìn)行定階,得到p=0,q=0,建立ARIMA(0,1,0)模型。
2.5.2 模型預(yù)測
使用擬合后的有效模型ARIMA(0,1,0)對大豆期貨價格進(jìn)行預(yù)測,將歷史數(shù)據(jù)按照7:3 的比例劃分成訓(xùn)練集和測試集,ARIMA 模型預(yù)測結(jié)果如圖7所示。
圖7 ARIMA 模型預(yù)測結(jié)果
針對以上實(shí)驗可知,對于不平穩(wěn)的時間序列數(shù)據(jù),例如期貨價格數(shù)據(jù),ARIMA 模型在訓(xùn)練的過程中極容易存在顯著噪聲,一旦價格在某個區(qū)間內(nèi)出現(xiàn)大幅度的變動,ARIMA 便難以學(xué)習(xí)到價格的變動規(guī)律,預(yù)測效果極差。而作為RNN 的一種改進(jìn)模型,LSTM 可以解決訓(xùn)練過程中的梯度消失和梯度爆炸問題,與傳統(tǒng)的預(yù)測研究方法相比,模型的預(yù)測結(jié)果與數(shù)據(jù)真實(shí)值之間的偏差較小,并且通過調(diào)整訓(xùn)練次數(shù)、批處理樣本數(shù)等LSTM 模型的具體參數(shù),可以在一定范圍內(nèi)提高預(yù)測精度。另外,對比前文中將seed()函數(shù)和Shuffle()函數(shù)進(jìn)行處理后的MSE 值,模型訓(xùn)練后的MSE 結(jié)果=0.0038<0.0168,預(yù)測準(zhǔn)確率得到了大大提升,說明隨機(jī)打亂數(shù)據(jù)能夠使得訓(xùn)練更切合數(shù)據(jù)的真實(shí)分布,從而進(jìn)一步提高LSTM 模型在預(yù)測方面的泛化能力,充分展現(xiàn)了LSTM 在處理此類時間序列數(shù)據(jù)方面的優(yōu)越性和可行性。
本文根據(jù)大宗農(nóng)產(chǎn)品期貨價格數(shù)據(jù)的特點(diǎn),利用LSTM 神經(jīng)網(wǎng)絡(luò)模型對其進(jìn)行了價格預(yù)測,并將預(yù)測結(jié)果與ARIMA 模型的預(yù)測結(jié)果進(jìn)行比較。實(shí)驗結(jié)果表明,LSTM 神經(jīng)網(wǎng)絡(luò)模型在價格預(yù)測方面具有較好的性能,在未來對大宗商品交易商制定價格策略、規(guī)避價格風(fēng)險等方面具有一定的適用性和參考性。鑒于神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的自我學(xué)習(xí)能力、良好的泛化能力以及高度可調(diào)節(jié)性,本研究在未來可以有進(jìn)一步改進(jìn)。
大宗商品價格波動的表象中蘊(yùn)含著多方面的影響因素以及復(fù)雜的傳遞過程,考慮到數(shù)據(jù)收集及量化的難度,本實(shí)驗僅選取了大豆期貨價格作為模型訓(xùn)練的數(shù)據(jù),通過單步預(yù)測實(shí)現(xiàn)了對大豆價格的短期預(yù)測。未來應(yīng)收集更長時間跨度的大豆價格數(shù)據(jù),同時對影響價格的特征因素做進(jìn)一步量化研究,在數(shù)據(jù)充分的基礎(chǔ)上對中長期的價格預(yù)測進(jìn)行完善。
考慮到企業(yè)實(shí)際業(yè)務(wù)的需求,本模型可以應(yīng)用到其他農(nóng)產(chǎn)品期貨的預(yù)測中,從而進(jìn)一步證明模型的普適性。同時應(yīng)探索其他在時間序列數(shù)據(jù)處理上具有優(yōu)勢的機(jī)器學(xué)習(xí)模型,結(jié)合LSTM 神經(jīng)網(wǎng)絡(luò)形成集成模型,使模型能夠更好地學(xué)習(xí)到其價格波動的深層規(guī)律,以進(jìn)一步提高模型的預(yù)測準(zhǔn)確度,給企業(yè)帶來更加有價值的參考。