□ 王 越 孫若瑩
螺紋鋼是指鋼筋混凝土和預應力鋼筋混凝土用鋼材,應用于建筑領域,特別是各種大型、重型、輕型薄壁和高層建筑結構[1]。當前,鋼鐵貿易商通過鋼鐵B2B電子交易市場進行交易,該類電子市場提供信息服務、線上及遠期交易撮合服務,提供公開的螺紋鋼市場歷史報價、交易量[2]。螺紋鋼是22類鋼材中唯一完全應用于建筑領域的鋼鐵材料,市場需求量巨大,且在電子交易市場中可觀察到其價格波動較為活躍,因此對其價格波動進行分析和預測具有一定意義。
隱馬爾可夫模型(HMM)具有從數據中學習經驗知識的能力,其對未來價格趨勢的預測主要基于從歷史數據中學習到的經驗知識,并非完全依賴于人為給定的先驗知識,這就使得從數據中挖掘出更多與未來價格相關的信息成為可能[3]。HMM模型通過假設存在不可觀測的隱狀態序列及其對應的可觀測序列,研究隱狀態之間、觀測狀態各自及二者之間的關系。將HMM模型的隱狀態理解為一只“看不見的大手”,其意味著相當復雜而不易觀測的因素,比如政策變化、螺紋鋼需求變化、螺紋鋼原材料價格變化等,影響著螺紋鋼的最高價、最低價、成交量等可觀測狀態。
Hassan等[4]首次將HMM模型應用在金融數據上,其將股票的開盤價、收盤價、最高價和最低價作為HMM模型的觀測序列,經訓練得到HMM模型的參數后,計算當日股票收盤價。Gupta等[5]改進使用股票每日最高價和最低價變化的百分比作為特征訓練HMM。張旭東等[6]通過對股票收益率的統計分析,建立了離散型HMM模型,實現對股票價格的預測。余文利等[7]使用 CBIC(Clustering and BIC)算法生成 HMM 模型隱狀態的個數,在預測誤差大于一定閾值時,模型進行自動更新,建立新模型,得到了較好的預測效果。陳海鵬等[8]提出了一種基于多元線性回歸分析的螺紋鋼價格分析及預測模型,從影響螺紋鋼價格的因素角度建立模型并實現螺紋鋼價格預測,該方法不足之處是各因素之間存在多重共線性,可能對預測結果產生干擾。張巧艷[9]引入分形理論,根據螺紋鋼價格數據的分型特征,以現貨收益率為預測因素,構建了基于粒子群算法的BP神經網絡模型,該方法的不足之處在于預測之前必須去噪和獲取分形特征,在實際應用中缺乏靈活性。
HMM模型的優勢在于其充分挖掘歷史數據信息并將其應用于預測,避免了在人為分析價格相關要素的過程中可能產生的遺漏和偏差。高斯混合隱馬爾可夫模型(Gaussian mixture hidden Markov model,GMHMM)是在HMM模型基礎上,使用高斯混合分布改寫觀測概率矩陣的改進模型。本文以2維觀測序列為輸入,使用Baum-Welch算法學習模型參數,再根據Viterbi算法進行市場隱狀態解碼,構建和訓練了GMHMM模型,最后使用加權預測結合移動窗口進行不同時間段的預測。實驗結果分析表明,GMHMM模型在螺紋鋼現貨市場具有適用性,為后續螺紋鋼投資策略、庫存管理研究等奠定了基礎。
HMM模型是基于時間序列的概率模型,其包含一個隱藏的馬爾科夫鏈,由這個馬爾科夫鏈隨機生成隱藏的狀態隨機序列,各個狀態根據某種概率函數生成一個觀測數據,從而產生一列觀測數據[10]。HMM模型狀態轉移由隨機觀測與對應的觀測隨機過程組成。一般可以直接觀測到觀測狀態序列,不能直接觀測到隱狀態序列,若要得到隱狀態序列,可以對觀測狀態序列進行研究,去推斷隱狀態序列及其轉移特征。
HMM模型的狀態定義如下:Q={q1,q2,…qn},所有可能的隱狀態集合;V={v1,v2,…vm},所有可能的觀測狀態集合;I={i1,i2,…iT},隱狀態序列;O={o1,o2,…oT},觀測狀態序列。定義λ=(A,B,π)為HMM模型,模型由初始概率分布π、狀態轉移概率分布A及觀測概率分布B確定。其中初始狀態概率向量πi表示在t=1時處于狀態qi的概率,表達式為:

A為狀態轉移概率矩陣, 描述的是系統在時刻t處于狀態qi的條件下,在時刻t+1轉移到狀態qj的概率,表達式為:B為觀測概率矩陣,描述的是時刻t處于狀態qj的條件下,生成觀測vk的概率,表達式為:


π、A決定狀態序列,B決定觀測序列。π與A確定了隱藏的馬爾科夫鏈,生成不可觀測的狀態序列,B確定了如何從狀態生成觀測,與狀態序列綜合確定了觀測序列。
HMM模型提出了3個基本問題[11]:
(1)概率計算問題。在給定模型參數λ和觀測序列V的條件下,計算在該模型λ下出現觀測序列O的概率P(O|λ),通常使用前向-后向算法解決該問題。
(2)學習問題。已知觀測序列O,估計模型λ,使得在該模型下觀測序列概率P(O|λ)最大。估計模型參數的核心思想是最大似然估計,通常使用Baum-Welch算法實現。
(3)預測問題,也稱解碼問題。已知模型λ和觀測序列O,求對給定觀測序列條件概率P(I|O)最大的狀態序列I。即給定觀測序列,求最有可能對應的狀態序列。
原始HMM模型的觀測變量為離散隨機變量,在螺紋鋼行情數據中,觀測變量(即價格數據)是連續隨機變量,需要利用高斯混合分布來刻畫隨機變量的分布。高斯混合分布是指多個高斯分布的線性疊加,能擬合非常復雜的密度函數。通過足夠多的高斯分布疊加,并調節其均值、協方差矩陣,以及線性組合的系數,可以精確地逼近任意連續概率密度函數[12]。通過高斯混合分布重構觀測概率矩陣B的參數,重估公式為:

式(4)中,N(O,μjm,Ujm)為多維高斯概率密度函數,M為高斯函數數目,μjm和Ujm分別為均值向量和協方差矩陣,cjm為系數矩陣。通過計算不同維度數組之間的協方差,一定程度上可以反映輸入數據的內在關聯性,并可在模型進行預測時使用學習到的關聯信息。
改進模型被稱為高斯混合隱馬爾可夫模型(GMHMM),相應的模型參數為:

選取上海大宗鋼鐵電子交易中心的螺紋鋼現貨價格數據,基于時效性要求和模型本身特性選取和拆分數據集,以其中2018年4月17日—2021年2月10日的690天數據作為模型的訓練數據集,2021年2月10日—2021年3月31日的30天數據作為模型的預測數據集。原始數據維度主要包括high(最高報價)、low(最低報價)、volume(成交量,單位“萬噸”)、money(成交額)。
實驗數據形式如表1所示。

表1 數據集形式
考慮到市場隱狀態會影響螺紋鋼最高報價和最低報價,根據隱狀態與觀測狀態之間的生成關系,將high(最高報價)序列和low(最低報價)序列處理后作為觀測序列,處理方式為取對數價差值,以更地好體現價格的波動趨勢。以high序列數據為例,處理方式見公式(6)。對high序列數據和close序列數據進行處理后,得到2維的觀測序列O=(O1,O2),數據形式如表2所示。


表2 觀測序列O=( O1, O2 )
高斯函數數目M的選擇:由于觀測序列為二維序列O=(O1,O2),在觀測序列中存在2個維度的特征,且2個維度之間存在關聯,可使用2個高斯分布的線性組合來描述數據,即M=2。
隱狀態數目的選擇:GMHMM模型需要定義以對應不同的市場隱狀態,使用BIC準則確定該參數值。BIC準則可有效防止模型精度過高造成的模型復雜度過高,其定義見公式(7)。

其中n代表樣本大小,k為模型參數數量,L為模型的似然函數。分別計算k在[1,6]范圍內對應的BIC數值,數值越小代表該參數下的模型越適合現有數據集,計算結果如表3所示。

表3 不同隱狀態數目下的 BIC 值
由表3可知當設定模型的隱狀態數目為5時為最優,即所有可能的隱狀態集合Q={q1,q2,…q5},在模型參數λ=(A,μ,U,π)中,μ參數應為5×2的矩陣,U參數則應為5×2×2的張量。
實驗共分為2個部分,第一部分是GMHMM模型的建立,第二部分是在GMHMM模型基礎上利用價格預測算法進行預測。
(1)GMHMM模型建立
首先,在已知觀測序列O=(O1,O2)的情況下,使用Baum-Welch算法得到模型參數λ=(A,μ,U,π),建立GMHMM模型,然后使用Viterbi算法得到歷史隱狀態序列S和該序列值對應的隱狀態概率矩陣P。實驗流程見圖1。

圖1 GMHMM模型建立及訓練流程
A參數為各隱狀態之間的轉移概率,經過計算其值如表4所示。

表4 A參數矩陣
觀察矩陣A發現主對角線上的概率值較高,可推測若市場處于某狀態,將傾向于繼續保持該狀態不變。
模型的參數μ表示觀測狀態在各個隱狀態下的混合高斯概率密度函數均值,其值如表5所示。

表5 參數μ
參數U=[[[0.000 378 08 0.000 241 84],[0.000 241 84 0.000 431 8]],[[0.000 514 19 0.000 437 01],[0.000 437 01 0.000 485 08]],[[0.000 215 94 0.000 149 83],[0.000 149 83 0.000 341 85]],[[0.000 161 19 0.000 119 1],[0.000 119 1 0.000 189 68]],[[0.002 566 17 0.002 492 64],[0.002 492 64]]]。
初始概率π如表6所示。

表6 初始概率π
Viterbi算法可在已知觀測序列O=(O1,O2)的條件下,通過計算最有利于觀測序列O=(O1,O2)出現的隱狀態概率,得到隱狀態概率矩陣P=[p1,p2,…pT],并求出最優隱狀態序列S。截取部分隱狀態概率矩陣P如表7所示。

表7 隱狀態概率矩陣
在表7中,第一天、第二天、第三天市場隱狀態概率矩陣中,隱狀態4的概率值最大,因此最優隱狀態序列S=[4,4,4,…]。實驗得到隱狀態序列,可對訓練數據集的每天市場隱狀態值進行觀察分析。為便于觀察,截取數據集前180天的數據,將每天的觀測狀態對應的隱狀態使用不同標記進行區分,得到的隱狀態-觀測狀態匹配圖見圖2。

圖2 隱狀態-觀測狀態匹配情況
由圖2可知,隱狀態1對應的標記“×”出現在觀測狀態值連續上升的區域,推測若市場在隱狀態1下,螺紋鋼價格上漲可能性大;隱狀態3對應的標記“·”出現在觀測狀態值連續下跌的區域,推測若市場在隱狀態3下,螺紋鋼價格下跌可能性大;隱狀態4對應的“▼”出現在觀測值上下震蕩的區域,推測若市場在隱狀態4下,螺紋鋼價格易出現連續上下波動;隱狀態2和隱狀態5和在圖中極少出現,結合隱狀態轉移概率矩陣P分析原因可知,由其余隱狀態轉移到隱狀態2和隱狀態5的概率值極小,因此在實驗中所取時段很少出現該隱狀態。根據分析結果可知,該數據對應的市場隱狀態分為上漲、下跌、震蕩和其余2種情況存在,基本符合大眾對市場的常識性認知。
(2)價格預測算法
在得到GMHMM模型參數價格后,進行下一步的價格波動預測。預測方法基于2個前提:一是“道氏理論”第三條——歷史會重演,因為人類心理具有特殊性且對市場價格波動產生重要影響,當市場參與者心理表現出的規律性反映在價格走勢上,市場價格便會出現“重復式”走勢,歷史便會重演[13];二是HMM模型的“模式識別”特性,即HMM可以尋找歷史上與今天的隱狀態最為相似的時刻。
通過GMHMM模型建立得到隱狀態概率矩陣P和歷史隱狀態序列S,在歷史序列中取與最后一日的隱狀態概率值最接近的單日或多日,將這單日或多日的下一日的觀測值的變化作為最后一日的下一日的變化值。對單日匹配預測法和多日加權預測作對比,分別觀察其在預測長度為30天時的性能。
——單日匹配預測法的步驟為:
第一,通過隱狀態概率矩陣,確定訓練集最后一天的隱狀態qT,以及這個狀態在隱狀態概率矩陣中對應的概率值pqT;
第二,選取狀態序列概率矩陣P中隱狀態為qT的列,在歷史概率值中尋找與概率值pqT最相近的1天,記為t0,與該天對應的隱狀態概率值記為pt0;
第三,在訓練集中取出t0對應的觀測狀態值Ot0=(Ot01,Ot02),以及這天的下一天的觀測狀態值Ot0+1=O(t0+11O,t0+12);
第四,預測訓練集最后一天的下一天的觀測值為公式(8):

第五,將預測值OT+1加入訓練集以生成新的訓練集,重新輸入模型,使用Viterbi算法重新計算新的狀態序列概率矩陣,回到算法的第一步開始重復運行算法,直到預測值序列到達測試集長度。
——多日加權預測法的步驟為:
第一,通過隱狀態概率矩陣,確定訓練集最后一天的隱狀態qT,以及該狀態在隱狀態概率矩陣中對應的概率值pqT;
第二,選取狀態序列概率矩陣P中隱狀態為qT的列,在歷史概率值中尋找與概率值pqT最相近的5天,分別為t1、t2、t3、t4、t5,與這5天對應的隱狀態概率值記為pt1、pt2、pt3、pt4、pt5;
第三,令i=5,根據pti與pqT的相近程度計算權重值,使權重值的大小與pti和pqT的相近程度成正比,按公式(9)進行計算:

第四,在訓練集中取出t1、t2、t3、t4、t5對應的觀測狀態值Oti=(Oti1,Oti2),以及這5天的每一天的下一天的觀測狀態值Oti+1=(Oti+11,Oti+12),i=1,2,…5;
第五,預測訓練集最后一天的下一天的觀測值

第六,將預測值OT+1加入訓練集以生成新的訓練集,重新輸入模型,使用Viterbi算法重新計算新的狀態序列概率矩陣,回到算法的第一步開始重復運行算法,直到預測值序列到達測試集長度。
分別使用單日和多日加權預測法,將二者得到的預測值與測試集進行對比,得到單日匹配預測法預測擬合圖和多日加權預測法預測擬合圖,分別如圖3和圖4所示。

圖3 單日匹配預測法預擬合

圖4 多日加權預測法預擬合
由圖3和圖4可知:單日匹配預測能在大體上預測行情的走勢,但精準度欠缺;多日加權預測在長期的預測中有更好的表現,一般情況下能對觀測值的上升和下降有較好的預測,但在預測時段后期的擬合程度下降。
使用常見的預測評估指標平均絕對誤差(Mean Absolute Error,MAE)和相對誤差絕對值平均(Mean Absolute Percentage Error,MAPE)來評估2種預測方法,2種指標的定義如公式(11)和公式(12)。

分別計算單日匹配預測法和多日加權預測法的MAE、MAPE值,結果如表8所示。

表8 模型預測精度對比
由表8可知,多日加權預測的MAE值和MAPE值均小于單日匹配預測,說明在預測長度為30天時,多日加權預測的性能優于單日匹配預測。多日加權預測法預測天數比單日匹配預測法要長,MAPE值小于1意味著模型具有可行性。
本文通過GMHMM模型對螺紋鋼行情的走向進行預測,證明該模型可通過混合高斯概率密度函數較好地刻畫市場行情序列,并且可結合市場的“歷史重演”模式和隱馬爾可夫的“模式識別”特性進行短期預測。同時,研究具有一些不足:在指標選取上,模型輸入只包含螺紋鋼的行情數據,但螺紋鋼的行情與螺紋鋼上游產品如鐵礦石和熱卷存在一定的關聯關系,未來可考慮將其加入模型輸入指標;在模型可行性上,隱馬爾可夫模型假設每一天的狀態僅與前一天的狀態相關,在實際狀況中可能還受其他時刻狀態的影響,因此可將觀測狀態與自回歸模型結合,認為隱狀態會產生一系列相互轉化的觀測狀態。
先前研究主要在期貨市場應用HMM模型,近年來B2B鋼鐵交易市場的發展使得螺紋鋼行情預測成為新需要,本文根據數據指標選取改進的GMHMM模型進行預測。
本文對大宗商品螺紋鋼行情市場的數據進行分析和預測,證明GMHMM模型可用于螺紋鋼行情的走勢預測,幫助使用者在B2B螺紋鋼電子貿易市場中進行貿易決策,具有一定的實用價值。下一步的工作可站在鋼貿商的角度,探究和利用預測結果和動態規劃思想進行庫存策略優化,以期獲得最大的貿易利潤。