龍宇, 許浩然, 余華云, 何勇, 徐紅牛
(長江大學計算機科學學院, 荊州 434023)
鐵路貨運是中國經(jīng)濟的重要組成部分,為中國經(jīng)濟發(fā)展提供了強大的動力。特別是在大宗貨物如鋼鐵、金屬礦石、原煤等的運輸上,鐵路貨運方式占據(jù)了極大的比重。近年來進出口貿(mào)易不斷發(fā)展,同時,在“一帶一路”“公轉(zhuǎn)鐵”等政策的推動下,發(fā)展鐵路貨運成為中國經(jīng)濟轉(zhuǎn)型、實現(xiàn)綠色發(fā)展的戰(zhàn)略性舉措[1]。因此準確預測鐵路貨運量對規(guī)劃鐵路貨運線路、調(diào)整鐵路運輸結(jié)構(gòu)、優(yōu)化鐵路貨運資源配置等方面具有重要的意義。
目前在鐵路貨運量預測研究領域,預測研究方法可以分為單一預測模型和組合預測模型。單一預測模型可分為時間序列分析方法和機器學習方法兩類,時間序列分析方法有移動平均自回歸模型、差分整合移動平均自回歸模型、指數(shù)平滑法、季節(jié)指數(shù)預測法等;機器學習方法有支持向量機、隨機森林、神經(jīng)網(wǎng)絡、灰色預測方法、極限梯度提升等。組合預測模型可以融合單一模型的優(yōu)勢,提升預測精度。常用的組合預測方式有誤差修正型組合模型、數(shù)據(jù)預處理型組合模型、權(quán)重分配性組合模型。
徐莉等[2]提出殘差二次修正的方法,基于GM(1,1)預測模型,在對殘差進行一次修正的基礎上,進行殘差二次修正,提高了模型預測精度。程肇蘭等[3]建立基于長短時間記憶(long short-term memory,LSTM)神經(jīng)網(wǎng)絡的鐵路月貨運量和日貨運量預測模型,結(jié)果表明,同差分整合移動平均自回歸模型(autoregressive integrated moving average,ARIMA)模型和BP神經(jīng)網(wǎng)絡模型相比,LSTM網(wǎng)絡預測效果更優(yōu)。李萬等[4]提出基于粒子群算法優(yōu)化的LSTM神經(jīng)網(wǎng)絡(IPSO-LSTM)預測模型,通過粒子群算法優(yōu)化(improved particle swarm optimization,IPSO)進行LSTM網(wǎng)絡參數(shù)優(yōu)化,驗證了該預測模型的可行性。Guo等[5]采用遺傳算法搜索廣義回歸神經(jīng)網(wǎng)絡(general regression neural network,GRNN)的最優(yōu)擴散,并將其應用于GRNN中進行鐵路貨運量預測。結(jié)果表明,遺傳算法優(yōu)化的GRNN預測精度更高。邵夢汝等[6]構(gòu)建灰色預測模型和BP神經(jīng)網(wǎng)絡模型組合的灰色-神經(jīng)網(wǎng)絡組合模型,驗證了組合模型能夠提高模型預測準確率。徐玉萍等[7]利用誤差修正法將引入注意力機制的LSTM模型與乘積季節(jié)模型組合進行鐵路貨運量預測,結(jié)果表明組合模型精度高于單一預測模型。耿立艷等[8]提出基于果蠅算法(fruit fly optimization algorithm,FOA)優(yōu)化混合核最小二乘支持向量機(least squares support vector machine,LSSVM)的預測方法,提升了計算速度和預測精度,適合進行短期預測。
可見目前對于鐵路貨運量預測已有大量的研究,且研究方法和改進方式各有特點,上述單一預測模型和組合預測模型未充分考慮到鐵路貨運量序列中體現(xiàn)出的線性特征和非線性特征,同時在進行參數(shù)改進時尋求局部最優(yōu)解可能會存在模型過擬合、泛化能力較弱的問題。
自回歸移動平均模型(ARIMA)能夠較好地擬合預測時間序列中的線性特征,長短期記憶神經(jīng)網(wǎng)絡(LSTM)能夠?qū)W習長期行為,善于處理長時間時間序列預測問題,且具有較強的非線性特征處理能力[9]。機器學習模型極端梯度提升(extreme gradient boosting, XGBoost)模型通過添加正則項防止過度擬合,同時提高模型泛化能力[10]。
現(xiàn)將ARIMA、LSTM、XGBoost模型組合,提出基于ARIMA-LSTM-XGBoost的加權(quán)組合模型。先使用ARIMA模型擬合序列中的線性特征,再使用LSTM神經(jīng)網(wǎng)絡校正ARIMA模型預測殘差,以此擬合序列中的非線性特征,再與XGBoost模型預測結(jié)果結(jié)合,使用誤差倒數(shù)法確定權(quán)重進行組合預測以減小誤差。最后將組合預測模型同單一模型預測結(jié)果進行對比分析,驗證組合模型預測鐵路貨運量的有效性。
差分整合移動平均自回歸模型(ARIMA)是自回歸滑動平均模型(ARMA)和差分性的結(jié)合[11]。
自回歸滑動平均模型ARMA(p,q)模型表達式為
(1)
式(1)中:Yt為t時間點時間序列值;p為自回歸項數(shù);q為滑動平均項數(shù);αi為自回歸模型的系數(shù);θi為滑動平均模型的系數(shù);εt為白噪聲序列;C為常數(shù)。
ARMA(p,q)模型只能用于預測相對平穩(wěn)的時間序列數(shù)據(jù),對于非平穩(wěn)時間序列需要進行d階差分使序列平穩(wěn)后再進行處理,由此可以得到ARIMA(p,d,q)模型。
ARIMA模型建立與數(shù)據(jù)預測過程包括以下4個步驟[12]。
步驟1白噪聲檢驗和平穩(wěn)性檢驗。
檢驗序列是否是白噪聲序列。若序列是白噪聲序列,變量之間沒有相關性,無法提取出數(shù)據(jù)的有效特征。
檢驗序列是否具有平穩(wěn)性,若序列不平穩(wěn),須通過差分運算將其轉(zhuǎn)化為平穩(wěn)序列[13]。
步驟2模型參數(shù)選擇。
確定ARIMA(p,d,q)模型中p、d、q3個參數(shù),參數(shù)d為差分的階數(shù)。繪制自相關函數(shù)圖像和偏自相關函數(shù)圖像,通過觀察圖像,確定參數(shù)p和q可能的取值,再結(jié)合赤池信息準則(Akaike information criterion,AIC)或貝葉斯信息準則(Bayesian information criterion,BIC)選擇使模型最優(yōu)的參數(shù)。
步驟3模型檢驗。
對模型殘差序列進行白噪聲檢驗,驗證序列是否具有相關性。同時檢驗殘差序列是否符合正態(tài)分布以驗證模型的適用性。
步驟4數(shù)據(jù)預測。
根據(jù)數(shù)據(jù)集中歷史數(shù)據(jù)預測未來時刻數(shù)據(jù)。
循環(huán)神經(jīng)網(wǎng)絡(regression neural network,RNN)是一種擁有輸入層-隱藏層-輸出層結(jié)構(gòu)的典型神經(jīng)網(wǎng)絡,其隱藏層的輸入不僅包括輸入層的輸入,還包括上一時刻隱藏層的輸出。這種結(jié)構(gòu)使得RNN不僅會記憶當前時刻的信息,還會記憶前面的信息并作為輸入信息參與當前運算。其在擬合非線性時間序列時有良好的性能,但在實際應用中,RNN在解決長期依賴問題時有所欠缺,在隨時間反向傳播期間會存在梯度消失的問題。為了解決這個問題,Hochreiter等[14]提出了長短時間記憶神經(jīng)網(wǎng)絡(LSTM)。相對于RNN,LSTM在其隱藏層中添加了遺忘門、輸入門、輸出門3個門層,其隱藏層結(jié)構(gòu)圖如圖1所示。
圖1 LSTM隱藏層結(jié)構(gòu)圖Fig.1 Structure diagram of LSTM hidden layer
遺忘門決定從上一時刻細胞狀態(tài)中丟棄和保留的信息。輸入信息為上一時刻隱藏層信息ht-1和當前時刻輸入數(shù)據(jù)xt,通過遺忘門確定保留的信息范圍,公式為
ft=σ(Wf[ht-1,xt]+bf)
(2)
式(2)中:ft為t時刻遺忘門的輸出信息;Wf為遺忘門權(quán)重系數(shù);bf為遺忘門偏置系數(shù);σ為sigmoid激活函數(shù)。
it=σ(Wi[ht-1,xt]+bi)
(3)
(4)
式中:it為t時刻輸入門的輸出信息;Wi為權(quán)重;bi為輸入門偏置系數(shù);σ為sigmoid激活函數(shù);bC為細胞狀態(tài)門控單元偏置系數(shù)。
將上一時刻記憶信息Ct-1與遺忘門輸出ft相乘決定需要丟棄和保留的信息,再加上輸入門所得的候選記憶信息,得到新的細胞狀態(tài)Ct,其計算公式為
(5)
輸出門根據(jù)輸入值和記憶單元確定當前記憶狀態(tài)Ct的輸出信息,將輸入信息先通過輸出門確定輸出范圍,再把細胞狀態(tài)通過一個tanh函數(shù)進行處理,經(jīng)輸出門確定輸出信息ht。
ot=σ(Wo[ht-1,xt]+bo)
(6)
ht=ottanh(Ct)
(7)
式中:ot為t時刻輸出門的輸出信息;Wo為權(quán)重;bo為輸出門偏置系數(shù);σ為sigmoid激活函數(shù)。
極端梯度提升模型(XGBoost),是一種基于boosting集成的樹模型,對梯度提升決策樹(gradient boosting decison tree,GBDT) 進行優(yōu)化,通過添加樹、不斷地進行特征分裂生成新樹的方式,擬合前一棵樹的預測誤差,以此來提升預測精度[15]。
XGBoost模型表達式為
(8)
XGBoost算法的目標函數(shù)為
(9)
(10)
正則項計算公式為
(11)
式(11)中:γ為控制葉子數(shù)量參數(shù)(懲罰系數(shù));T為葉子節(jié)點數(shù);λ為正則項參數(shù);ωj為第j個葉子節(jié)點的權(quán)重。
最終目的是找到使目標函數(shù)Obj(t)最小的ft。在ft=0處進行泰勒二階展開,得到的目標函數(shù)近似于
(12)
結(jié)合式(11)和式(12),可求得最優(yōu)的w和目標函數(shù)為
(13)
(14)
為提升模型的預測精度和泛化能力,采用基于誤差修正和基于權(quán)重分配的組合方式對ARIMA模型、LSTM模型、XGBoost模型進行組合,組合模型結(jié)構(gòu)圖如圖2所示。
圖2 組合模型結(jié)構(gòu)圖Fig.2 Structure diagram of combination model
1.4.1 基于誤差修正型的組合方式
結(jié)合傳統(tǒng)時間序列模型和神經(jīng)網(wǎng)絡模型的優(yōu)點,構(gòu)造了一種基于誤差修正型的組合模型ARIMA-LSTM。
(15)
(16)
1.4.2 基于權(quán)重分配型的組合方式
使用誤差倒數(shù)法為模型賦予權(quán)重進行加權(quán)組合,使用此方法將誤差較小的模型賦予較大的權(quán)重,可以顯著降低組合模型的總體誤差。
(17)
(18)
(19)
為評估模型預測效果,采用均方誤差(mean square error,MSE)、均方根誤差(root mean squared error,RMSE)、平均絕對值誤差(mean absolute error,MAE)、平均絕對百分比誤差(mean absolute percentage error,MAPE)作為評價指標,各評價指標計算公式如下。
(1)均方誤差MSE。
(20)
(2)均方根誤差RMSE。
(21)
(3)平均絕對值誤差MAE。
(22)
(4)平均絕對百分比誤差MAPE。
(23)
從國家統(tǒng)計局官網(wǎng)收集2007年1月—2021年12月的全國鐵路貨運量月度數(shù)據(jù)集,每條數(shù)據(jù)包括對應的月份以及鐵路貨運量數(shù)值。數(shù)據(jù)如圖3所示。
圖3 2007年1月—2021年12月鐵路貨運量時序圖Fig.3 Sequence diagram of railway freight volume from January 2007 to December 2021
使用ARIMA模型對鐵路貨運量時間序列數(shù)據(jù)進行初步預測,模型建立步驟如下。
2.2.1 序列特征檢驗和模型定階
對鐵路貨運量序列進行白噪聲檢驗,檢驗統(tǒng)計量P=4.52×10-29<0.05,說明該序列非白噪聲序列。
采用迪基-福勒(augmented Dickey-Fuller test, ADF)檢驗方法[18]來判斷序列是否具有平穩(wěn)性,顯著性水平P=0.836 2>0.05,可見原始序列ADF檢驗沒有通過顯著性檢驗,說明該序列不平穩(wěn)。
對該序列做一次差分運算,對一階差分序列進行白噪聲檢驗,檢驗統(tǒng)計量P<0.05,可知一階差分序列非白噪聲序列。再對一階差分序列進行ADF檢驗,顯著性水平P=0.032 3<0.05,通過顯著性檢驗,說明一階差分序列具有平穩(wěn)性。
通過以上檢驗,可知可以對一階差分序列進行建模。
2.2.2 模型參數(shù)選擇
計算一階差分序列自相關(auto-correlation function,ACF)系數(shù)和偏相關(partial auto-correlation function,PACF)系數(shù),自相關函數(shù)圖和偏相關函數(shù)圖如圖4所示。
圖4 自相關函數(shù)、偏自相關函數(shù)圖Fig.4 Autocorrelation function, partial autocorrelation function diagram
由圖4可知,ACF圖和PACF圖均表現(xiàn)出拖尾性,滿足使用ARIMA算法的條件。
因為BIC準則比AIC準則擁有更大的懲罰因子,可避免過擬合現(xiàn)象,故采用BIC準則來確定參數(shù)p和q的值。
通過比較得出,ARIMA(4,1,3)的BIC值最小,說明該模型對數(shù)據(jù)的擬合效果最好。
2.2.3 模型檢驗
使用殘差QQ圖和殘差正態(tài)分布直方圖檢驗模型的適用性,殘差檢驗結(jié)果如圖5所示??梢娚Ⅻc分布在擬合線附近且殘差滿足正態(tài)分布,說明該序列通過正態(tài)性檢驗。
圖5 模型殘差檢驗圖Fig.5 Model residual test diagram
再進行Durbin-Watson(D-W)檢驗,其檢驗值為2.5,說明殘差序列中無明顯的自相關性。對殘差進行白噪聲檢驗,檢驗統(tǒng)計量P>0.05,殘差序列為白噪聲序列,模型已經(jīng)完全提取了原始時序數(shù)據(jù)中的線性特征,說明模型適用于序列的變化趨勢。
2.2.4 模型預測
建立ARIMA(4,1,3)模型后,將數(shù)據(jù)集中前168個月(即2007年1月—2020年12月)的貨運量數(shù)據(jù)作為訓練數(shù)據(jù),對后12個月的貨運量進行預測,得到2021年1—12月月度貨運量預測值。
使用LSTM模型對ARIMA模型預測殘差序列進行訓練擬合以進行誤差修正,模型建立過程如下。
步驟1數(shù)據(jù)預處理。將ARIMA模型預測的殘差作為輸入數(shù)據(jù),使用最大最小法將其進行歸一化以提高模型的訓練效果。
步驟2訓練模型。將殘差序列中前168條數(shù)據(jù)作為訓練集,后12條數(shù)據(jù)作為測試集,基于Python 3.6平臺,采用Tensorflow框架搭建LSTM網(wǎng)絡,通過實驗,確定步長time_steps=12,即使用前12個月的貨運量誤差預測下個月貨運量誤差,采用單層隱藏層的LSTM網(wǎng)絡,隱藏層神經(jīng)元個數(shù)為8,學習率為0.01,模型迭代次數(shù)為600,訓練批次batch_size=64。損失函數(shù)為均方誤差函數(shù)MSE,模型優(yōu)化算法采用Adam,激活函數(shù)采用tanh函數(shù)。
步驟3模型預測。將LSTM網(wǎng)絡輸出數(shù)據(jù)進行反歸一化,得到殘差預測值。
步驟4ARIMA-LSTM預測結(jié)果。將ARIMA模型預測值與LSTM網(wǎng)絡殘差預測值疊加,即可得到ARIMA-LSTM模型預測結(jié)果。
基于Python 3.6平臺,使用XGBoost包中的XGBRegressor建立XGBoost模型,使用機器學習庫scikit-learn中的網(wǎng)格搜索(GridSearchCV) 方法對模型參數(shù)進行調(diào)優(yōu)。XGBoost預測模型參數(shù)如表1所示。
表1 XGBoost模型參數(shù)Table 1 XGBoost model parameters
建立ARIMA-LSTM預測模型和XGBoost模型后,分別對2021年1—12月鐵路貨運量數(shù)據(jù)進行預測,得出兩個模型的預測值和預測誤差,再使用誤差倒數(shù)法根據(jù)預測誤差對兩個模型的預測值進行加權(quán)組合,得出組合模型的預測值。
為驗證組合模型的預測精度和有效性,將組合模型的預測值與ARIMA、ARIMA-LSTM、LSTM、XGBoost 4個模型的預測值以及實際值進行比較。各模型預測值與實際值對比如圖6所示。各模型逐點誤差對比圖如圖7所示。各個模型的評價指標MAE、RMSE、MAE、MAPE值如表2所示。
表2 各模型評價指標對比Table 2 Comparison of evaluation indexes of each model
圖6 各模型預測值與實際值對比圖Fig.6 Comparison diagram of predicted value and actual value of each model
圖7 各模型逐點誤差對比圖Fig.7 Comparison diagram of error point by point of each model
由圖6和圖7可知,以上大部分模型預測鐵路貨運量時預測誤差比較小,有較高的精度。ARIMA模型預測結(jié)果與實際數(shù)據(jù)變化趨勢大致相同,說明該模型較好地提取了序列中體現(xiàn)的線性特征。使用LSTM模型對ARIMA模型預測結(jié)果進行誤差修正后,ARIMA-LSTM模型相對于單一的ARIMA模型和LSTM模型,預測精度得到了進一步的提升。XGBoost模型能較好地處理回歸預測問題,整體上預測效果較好,但對個別數(shù)據(jù)的擬合效果欠佳。
ARIMA-LSTM-XGBoost組合模型能夠充分結(jié)合3個模型的優(yōu)點,彌補單一算法的不足,由圖7可知,組合模型的預測誤差同其他對比模型相比都有所降低。由表3可知,在對鐵路貨運量數(shù)據(jù)進行預測時,組合模型MSE、RMSE、MAE、MAPE分別為0.011 9、0.109 4、0.068 3、1.775 2%,均低于其他模型對應評價指標值,可見ARIMA-LSTM-XGBoost組合模型預測精度明顯優(yōu)于單一預測模型。以平均絕對百分比誤差MAPE為例,相較于ARIMA、ARIMA-LSTM、XGBoost、LSTM模型,組合預測模型MAPE值分別降低了55.96%、 46.56%、60.03%、54.18%,可見組合模型的預測誤差相比其他模型顯著降低,預測精度和泛化能力得到有效提升。
為提高鐵路貨運量的預測精度,提升模型預測的泛化能力,提出基于ARIMA-LSTM-XGBoost的加權(quán)組合模型,以2007—2020年中國鐵路貨運量數(shù)據(jù)為參考,預測2021年鐵路貨運量,經(jīng)實驗和對比分析,得出以下結(jié)論。
(1)與ARIMA、ARIMA-LSTM、XGBoost、LSTM模型相比,基于ARIMA-LSTM-XGBoost的加權(quán)組合模型各項誤差指標更小,預測精度更高,穩(wěn)定性更強。
(2)使用LSTM網(wǎng)絡擬合ARIMA模型預測殘差序列,能夠充分的提取鐵路貨運量時間序列數(shù)據(jù)中的線性特征和非線性特征,進一步提升預測擬合精度。
(3)使用誤差倒數(shù)法確定權(quán)重,構(gòu)建基于ARIMA-LSTM-XGBoost的加權(quán)組合模型,能結(jié)合單一模型的優(yōu)勢,相互彌補預測誤差,有效提升模型的預測精度和泛化能力。
可見,基于ARIMA-LSTM-XGBoost的組合預測模型相比上述主流預測模型具有一定的優(yōu)越性,可為相關部門預測鐵路貨運量提供參考。