朱 青,周石鵬
(上海理工大學(xué)管理學(xué)院,上海 200093)
改革開放以來,中國是同期世界上經(jīng)濟(jì)發(fā)展最快的國家,經(jīng)濟(jì)實(shí)現(xiàn)了持續(xù)高速增長,成為世界第二大經(jīng)濟(jì)體。隨著科學(xué)技術(shù)的發(fā)展,探索使用大數(shù)據(jù)和機(jī)器學(xué)習(xí)的方法改進(jìn)宏觀經(jīng)濟(jì)結(jié)構(gòu)和趨勢成為研究熱點(diǎn),包括對國民經(jīng)濟(jì)GDP(Gross Domestic Product,GDP)預(yù)測問題的研究。本文通過對經(jīng)濟(jì)因素的綜合考量,選用GDP 增速作為經(jīng)濟(jì)發(fā)展趨勢的重要評價(jià)指標(biāo)。
GDP 增速反映經(jīng)濟(jì)發(fā)展趨勢,與人民生活水平息息相關(guān)。根據(jù)中國國家統(tǒng)計(jì)局?jǐn)?shù)據(jù),中國經(jīng)濟(jì)經(jīng)過多年的高速增長后,2015 年GDP 增速為6.9%,2016-2018 年增速分別為6.7%、6.8%和6.6%。2019 年GDP 增速為6.1%,是近年來最大的一次經(jīng)濟(jì)增速下降。因此,精準(zhǔn)預(yù)測GDP 增速對宏觀經(jīng)濟(jì)目標(biāo)的可行性和有效性分析具有重要影響。
國內(nèi)外對宏觀變量的預(yù)測方法包括兩大類:利用模型預(yù)測和主觀判斷性預(yù)測。模型預(yù)測主要是時(shí)間序列方法和機(jī)器學(xué)習(xí)方法[1-3]。李娜等[4]利用ARIMA 模型對國民經(jīng)濟(jì)GDP 進(jìn)行預(yù)測研究,表明了ARIMA 模型在GDP 預(yù)測方面的優(yōu)良性;Wang&Shang[5]、Wang 等[6]將改進(jìn)SVM 模型應(yīng)用于股票預(yù)測,表明改進(jìn)SVM 模型在預(yù)測方面的有效性。對經(jīng)濟(jì)進(jìn)行主觀預(yù)測的如美國聯(lián)邦儲備委員會,在確定貨幣政策之前,研究人員對美國經(jīng)濟(jì)走勢提供主觀預(yù)測,被稱為綠皮書預(yù)測。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,機(jī)器學(xué)習(xí)算法和組合模型越來越多地應(yīng)用于預(yù)測分析。王曉飛等[7]將時(shí)間序列模型和神經(jīng)網(wǎng)絡(luò)模型進(jìn)行組合以預(yù)測PM2.5。傳統(tǒng)時(shí)間序列方法,其缺點(diǎn)是要求時(shí)序數(shù)據(jù)穩(wěn)定,并對復(fù)雜的非線性系統(tǒng)擬合能力較差,且容易發(fā)生多重共線性,預(yù)測精度不夠準(zhǔn)確。目前,GDP 增速預(yù)測模型主要是單一的時(shí)間序列模型,本文從兩個(gè)方面對GDP 增速預(yù)測模型進(jìn)行改進(jìn)。一是基礎(chǔ)模型選取,運(yùn)用機(jī)器學(xué)習(xí)模型進(jìn)行GDP 增速預(yù)測。機(jī)器學(xué)習(xí)算法包括隨機(jī)森林(Random Forest,RF)[8]、支持向量機(jī)(Support Vector Machine,SVM)[9-10]、神經(jīng)網(wǎng)絡(luò)和集成算法[11-13]等。機(jī)器學(xué)習(xí)模型能夠模擬非線性可分?jǐn)?shù)據(jù),計(jì)算效率和準(zhǔn)確率更高。機(jī)器學(xué)習(xí)問題求解流程如圖1 所示,模型訓(xùn)練過程如圖2 所示。選取機(jī)器學(xué)習(xí)3 個(gè)經(jīng)典模型作為基礎(chǔ)模型進(jìn)行建模研究:①回歸模型:Ridge 回歸;②集成算法:XGBoost 模型;③神經(jīng)網(wǎng)路:LSTM 網(wǎng)絡(luò)。二是增加預(yù)測模型維度,提高預(yù)測精度。本文使用二維組合模型對GDP 增速進(jìn)行預(yù)測,通過誤差倒數(shù)法計(jì)算權(quán)重,對獨(dú)立模型進(jìn)行加權(quán)組合,對誤差較小的模型賦予較大權(quán)重,從而可以得到誤差更小的預(yù)測值。實(shí)驗(yàn)結(jié)果表明,本文提出的LSTM-XGBoost 二維組合模型的預(yù)測精度均高于單一模型預(yù)測精度。
Fig.1 Process of machine learning problem solving圖1 機(jī)器學(xué)習(xí)問題求解流程
Fig.2 Model training process圖2 模型訓(xùn)練過程
嶺回歸(Ridge Regression)是Hoerl 等[14]提出的一種改進(jìn)的最小二乘估計(jì)方法。從數(shù)學(xué)形式上看,嶺回歸是在最小二乘估計(jì)的基礎(chǔ)上,向離差平方和增加一個(gè)L2 范數(shù)。
多元線性回歸模型可表示為:
其中,y 為因變量,X為自變量(或者為多變量矩陣形式),β為回歸系數(shù),ε為誤差。
參數(shù)β的最小二乘估計(jì)是:
當(dāng)X不是列滿置,XT X的行列式又接近于0,即XT X接近于奇異,此時(shí)在計(jì)算(XT X)-1時(shí)會出錯(cuò)。嶺回歸就是在矩陣XT X上加一個(gè)I,從而使得矩陣非奇異,進(jìn)而能對I求逆。此時(shí),回歸系數(shù)β的計(jì)算公式將變成:
其中,λ是用戶定義的數(shù)值。λ越大,消除共線性影響效果越好,但擬合精度越低;λ越小,擬合精度越高,消除共線性影響越差[15]。
XGBoost(eXtreme Gradient Boosting)算法是基于回歸樹的提升算法[16],其基礎(chǔ)樹結(jié)構(gòu)為分類回歸樹[17](Classification and Regression Tree,CART)。XGBoost 算法已在眾多預(yù)測領(lǐng)域取得了較好效果[18-21],其模型參數(shù)值如表1 所示。
以下給出回歸樹數(shù)學(xué)定義和XGBoost 模型數(shù)學(xué)推導(dǎo),如無特別聲明,均引自參考文獻(xiàn)[16]。
對于給定的n個(gè)樣本,m個(gè)特征的數(shù)據(jù)集D={(xi,yi)},其中|D|=n,xi∈?m,yi∈?。樹集成模型通過k個(gè)加性函數(shù)預(yù)測輸出。
?={f(x)=wq(x)} 是 回 歸 樹 空 間,其 中q:?m→T∣,w∈?T是將數(shù)據(jù)映射到葉子結(jié)點(diǎn)的函數(shù),T為樹葉子節(jié)點(diǎn)的標(biāo)簽集,fk(xi)是第k棵CART 樹的預(yù)測輸出。
損失函數(shù)? 如式(5)所示。
其中:
第t次迭代的損失函數(shù)如式(7)所示。
接下來,找到一個(gè)ft能最小化目標(biāo)函數(shù)。XGBoost 的思想是將上述目標(biāo)函數(shù)進(jìn)行二階泰勒展開,移除高階無窮小項(xiàng),得出的目標(biāo)函數(shù)為:
其中,gi、hi分別為損失函數(shù)在t-1 次迭代的預(yù)測值處的一次和二次偏導(dǎo)。
由于在第t輪時(shí),t-1 輪的結(jié)果已知,在第t次迭代中得到更精簡的目標(biāo)函數(shù)。
定義好分裂候選集合Ij={i∣q(xi)=j},進(jìn)一步改進(jìn)目標(biāo)函數(shù)。
Table 1 Parameter values of XGBoost model表1 XGBoost 模型參數(shù)值
神經(jīng)網(wǎng)絡(luò)一般由輸入層、隱藏層和輸出層組成。圖3表示一個(gè)3 層神經(jīng)網(wǎng)絡(luò)模型。從左至右,第一層為輸入層,輸入向量為[x1,x2,x3];第二層為帶有4 個(gè)節(jié)點(diǎn)的隱藏層;第三層為輸出層,輸出向量為[y1,y2]。
LSTM(Long Short Term Memory,LSTM)是RNN 的一種改進(jìn)網(wǎng)絡(luò)。如圖4 所示,LSTM 的單元結(jié)構(gòu)由4 部分組成,分別是輸入門(input gate)、輸出門(output gate)、記憶單元(memory cell)和遺忘門(forget gate)。LSTM 網(wǎng)絡(luò)模型參數(shù)值如表2 所示。
Fig.3 Neural network model圖3 神經(jīng)網(wǎng)絡(luò)模型
Fig.4 LSTM unit structure圖4 LSTM 單元結(jié)構(gòu)
Table 2 Parameter values of LSTM network model表2 LSTM 網(wǎng)絡(luò)模型參數(shù)值
LSTM 各過程具體運(yùn)算如下:
其中,式(16)中ft為遺忘門輸出,表示保留多少信息(1代表完全保留,0 代表完全舍棄),σ表示sigmoid 函數(shù),Wf是遺忘門的權(quán)重矩陣,[ht-1,xt]表示將兩個(gè)向量拼接成一個(gè)更長的向量,bf是遺忘門的偏置項(xiàng)。式(17)中,Wi是輸入門的權(quán)重矩陣,bi是輸入門的偏置項(xiàng)。式(18)和(19)中,Wc記憶單元權(quán)重矩陣,bc是記憶單元偏置項(xiàng)。表示當(dāng)前輸入的單元狀態(tài),Ct表示當(dāng)前時(shí)刻的單元狀態(tài),Ct-1表示上一次的單元狀態(tài)。式(20)中,Wo為輸出門權(quán)重矩陣,bo為輸出門偏置項(xiàng),Ot為輸出門輸出。式(21)中,ht為輸出門輸出結(jié)果。
Adam 算法[22]如下:
Require:步長?;
Require:矩估計(jì)的指數(shù)衰減速率,ρ1和ρ2在區(qū)間[0,1)內(nèi);
Require:用于數(shù)值穩(wěn)定的小常數(shù)δ;
Require:初始參數(shù)θ;
初始化一階和二階矩變量s=0,r=0;
初始化時(shí)間步長t=0;
while 沒有達(dá)到停止準(zhǔn)則do
通過誤差倒數(shù)法對模型進(jìn)行加權(quán)組合,計(jì)算公式為:
其中,wk是權(quán)值參數(shù),fi是組合模型對樣本i的預(yù)測結(jié)果,fki是第k個(gè)模型的預(yù)測值。ε1是模型1 的預(yù)測誤差,ε2是模型2 的預(yù)測誤差。從式(22)—式(24)可以看出,對誤差大的模型會賦予較小的權(quán)重系數(shù),從而使組合模型誤差更小,達(dá)到提升預(yù)測精度的效果[23]。
數(shù)據(jù)來源:國家統(tǒng)計(jì)局、快易理財(cái)網(wǎng)。本文采用1980-2018 年時(shí)間段6 個(gè)宏觀變量共39 條數(shù)據(jù)。1 個(gè)因變量:GDP 增速(%)。5 個(gè)自變量:外匯儲備(億美元)、人口增長率(%)、M2/GDP(%)、財(cái)政收入(億元)和貨物進(jìn)出口總額(億元)。
數(shù)據(jù)特點(diǎn):
(1)數(shù)據(jù)間具有時(shí)序關(guān)系。利用過去的信息預(yù)測未來經(jīng)濟(jì)情況。
(2)數(shù)據(jù)樣本較少。從改革開放以來,國家有完整明確的經(jīng)濟(jì)數(shù)據(jù)年份并不多。
(3)數(shù)據(jù)樣本值變化大。中國的經(jīng)濟(jì)發(fā)展具有階段性特征,20 世紀(jì)八九十年代經(jīng)濟(jì)快速發(fā)展,但生產(chǎn)技術(shù)不高;改革開放階段,中國經(jīng)濟(jì)高速發(fā)展;經(jīng)過30 多年的增長期后,中國經(jīng)濟(jì)進(jìn)入平穩(wěn)發(fā)展階段。
Fig.5 Distribution of GDP growth圖5 GDP 增速分布
Fig.6 Data distribution圖6 數(shù)據(jù)分布
數(shù)據(jù)標(biāo)準(zhǔn)化:
其中,μ表示均值,σ表示標(biāo)準(zhǔn)差。本文對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,經(jīng)過處理的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布,即均值為0,方差為1 的正態(tài)分布。本文先對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,再將標(biāo)準(zhǔn)化后的數(shù)據(jù)用于模型訓(xùn)練和預(yù)測,需將預(yù)測結(jié)果進(jìn)行反標(biāo)準(zhǔn)化后,才能與實(shí)際數(shù)據(jù)作比較。
本實(shí)驗(yàn)所使用開發(fā)語言為Python 語言3.7 版本。實(shí)驗(yàn)中使用Python 提供的科學(xué)計(jì)算庫,主要包括Numpy、Pandas、Matplotlib、Sklean 等。本文所使用的開發(fā)環(huán)境為PyCharm。
為了驗(yàn)證機(jī)器學(xué)習(xí)回歸模型對預(yù)測GDP 增速的準(zhǔn)確性,本文對數(shù)據(jù)集中的GDP 增速進(jìn)行預(yù)測實(shí)驗(yàn),并將預(yù)測結(jié)果與其他模型得出的結(jié)果進(jìn)行比較,比如AR(Auto Regressive Model,AR)、MA(Moving Average Model,MA)、ARIMA(Autoregressive Integrated Moving Average Model,ARIMA)模型,如圖7-圖9 所示。實(shí)驗(yàn)選用均方根誤差(root mean square error,RMSE)作為各模型預(yù)測性能的主要評價(jià)指標(biāo),平均絕對誤差(MAE)和平均絕對誤差百分比(Mean Absolute Percentage Error,MAPE)作為輔助評價(jià)指標(biāo)。通過3 個(gè)指標(biāo)體現(xiàn)模型訓(xùn)練精度及泛化性能。
其中,y代表樣本真實(shí)值?代表樣本預(yù)測值,m為樣本數(shù)據(jù)數(shù)量。
Fig.7 Comparison of prediction results of Ridge,XGBoost and LSTM圖7 Ridge、XGBoost 與LSTM 預(yù)測結(jié)果對比
Fig.8 Comparison of prediction results of LSTM-Ridge,LSTM-XGBoost and XGBoost-Ridge圖8 LSTM-Ridge、LSTM-XGBoost 與XGBoost-Ridge預(yù)測結(jié)果對比
從預(yù)測結(jié)果(見表3—表5)可以看出,3 種算法的3 種評價(jià)指標(biāo)預(yù)測結(jié)果表現(xiàn)一致,單一模型預(yù)測誤差的排序是LSTM<XGBoost<Ridge,組合模型預(yù)測誤差的大致排序是LSTM-XGBoost<LSTM-Ridge<XGBoost-Ridge。組合模型XGBoost-Ridge 表現(xiàn)較差,整體上,機(jī)器學(xué)習(xí)的單一模型和組合模型的預(yù)測效果優(yōu)于傳統(tǒng)時(shí)序模型,非線性回歸模型整體優(yōu)于線性回歸模型。LSTM-XGBoost 組合模型的擬合效果最好,誤差最小,可以達(dá)到2.122 的誤差,XGBoost-Ridge 回歸誤差較大,約為5.542。XGBoost 和LSTM 預(yù)測結(jié)果相近,LSTM 結(jié)果略優(yōu)于XGBoost,LSTM 模型在處理時(shí)序問題上有著良好表現(xiàn),本文數(shù)據(jù)量偏小,可能無法凸顯LSTM 的優(yōu)勢。隨著數(shù)據(jù)集的增加,LSTM 的優(yōu)勢更加明顯,預(yù)測精度會進(jìn)一步提高。
Table 3 Comparison of RMSE,MAE and MAPE in single regression model表3 單一回歸模型RMSE、MAE 及MAPE 對比
Fig.9 Comparison of prediction results of AR,MA and ARIMA圖9 AR、MA 與ARIMA 預(yù)測結(jié)果對比
Table 4 Comparison of RMSE,MAE and MAPE表4 組合模型RMSE、MAE 及MAPE 對比
Table 5 Comparison of traditional time series models RMSE,MAE and MAPE表5 傳統(tǒng)時(shí)序模型RMSE、MAE 及MAPE 對比
本文提出LSTM-XGBoost 二維組合模型對GDP 增速進(jìn)行預(yù)測,結(jié)果表明該組合模型在宏觀經(jīng)濟(jì)預(yù)測中具有較高應(yīng)用價(jià)值。通過研究機(jī)器學(xué)習(xí)模型在經(jīng)濟(jì)領(lǐng)域的應(yīng)用,得出如下結(jié)論:①從XGBoost-Ridge 組合模型中可以得出,并非所有組合模型優(yōu)于單一模型,模型的正確選擇有利于預(yù)測精度提升;②本文的誤差倒數(shù)法存在一定改善空間,誤差計(jì)算方法是預(yù)測值減去真實(shí)值,誤差值有正有負(fù),使用誤差的絕對值或者誤差的平方形式計(jì)算權(quán)重能進(jìn)一步提高預(yù)測精度。后續(xù)研究中,可結(jié)合大數(shù)據(jù)等平臺,探索機(jī)器學(xué)習(xí)模型應(yīng)用于經(jīng)濟(jì)預(yù)測的其他可能性。