徐 超 項 薇 季孟忠 謝 勇
(寧波大學機械工程與力學學院 浙江 寧波 315211)
時間序列預測是預測領域中的一個重要分支,它是收集和分析過去在不同時間的歷史觀察數據,尋找和描述其基礎關系,并推廣到未來的模型。時間序列預測已被廣泛應用于眾多領域問題的預測中,如金融領域[1]中股票市場預測[2]、醫療領域[3]傳染病發病率的預測[4-5]等。
國內外學者開展了大量相關研究工作。文獻[6]匯總整理了若干預測方法和數學模型,用于不同類型時間序列問題的預測。其中,自回歸綜合移動平均(ARIMA)模型[7]是最廣泛使用的時間序列模型之一。該模型對所有歷史時間序列數據進行客觀分析,識別數據中的季節性和趨勢性特征,然后進行預測。它以短期預測精度高而廣受研究者的青睞[8]。如周奎[9]根據1978年-2007年的GDP數據建立了ARIMA(2,1,6)模型,對2008年-2013年的GDP進行預測,預測誤差均在5%以內。Abdur Rahman等[10]利用1972年-2015年44年的時間序列數據建立二氧化碳排放模型,發現ARIMA(0,2,1)為最佳擬合模型并預測2016年-2018年二氧化碳排放量,結果都在95%的置信區間。在時間序列預測中還有一種方法就是平滑預測法,它的特點是首先對時間序列數據進行平滑處理,過濾由偶然因素而引起的波動,然后再找出其規律,如移動平均法、指數平滑法[11]、自適應過濾法。其中移動平均法和指數平滑法的優點就是建模過程簡便,缺點是當計算移動平均值時,只利用時間序列的前N個數據,沒有充分利用時間序列的全部數據信息,也不能識別時間序列數據之間的內部關系,所以這并非一種理想的預測方法[8]。自適應過濾法是在移動平均法的基礎之上,根據數學上最優化原理,對移動平均模型中的權數進行調整,以減小預測誤差[12]。該方法在經濟領域和工程檢測應用比較普遍,如股票走勢、期貨行情等的預測[13]。雖然該方法可以減小預測誤差,但也沒有充分利用時間序列數據中的所有信息,所以在實際應用中有些復雜系統的預測中,只能做到一些趨勢的預測,如陶庭葉等[14]應用自適應過濾法模型預測大壩變形趨勢。
綜上述,ARIMA模型的優點是可以充分利用所有時間序列數據,識別數據內部關系中季節性和趨勢性的預測。但其只有在短期預測時精度高,而長期預測精度較小。自適應過濾法可以通過調整權數以減小預測誤差從而提高預測精度。本文提出將ARIMA模型和自適應過濾法相結合,提高短期預測和長期預測(即增加預測步長)的預測精度。
ARIMA模型形式是ARIMA(p,d,q),它是針對非平穩時間序列數據進行預測建模的一套方法。其一般表達式為:
xt=φ0+φ1xt-1+…+φpxt-p+εt-θ1ε1-
…-εqεt-q
(1)
即在t時刻時間序列的取值xt是前p期歷史數據xt-1,xt-2,…,xt-p和前q期預測誤差εt-1,εt-2,…,εt-q的多元線性函數,誤差項是當期的隨機干擾εt,為零均值白噪聲序列。
其建模過程分為四個步驟:
① 時間序列的平穩化:ARIMA模型只能應用于平穩的時間序列數據中,而該模型序列平穩化的方法是將數據進行差分,其中d是差分的次數。
② ARIMA模型的識別:也叫模型的定階,即確定p與q,主要是根據模型的自相關系數(ACF)和偏自相關系數(PACF)的性質,選擇合適的模型。
③ 模型參數估計以及模型驗證:對ARIMA模型進行參數估計,通常采用最小二乘法或極大適然法進行參數估計。同時驗證模型,不合適則返回第2步,重新識別模型。
④ 模型的應用:通過滾動的單步預測計算實現短期預測。
自適應過濾法是以時間序列的歷史觀察值的加權平均來預測的,關鍵在于確定一組“最佳”權數。其核心思路是根據預測誤差反饋調整權數,反復迭代直到找出一組“最佳”權數使誤差最小。自適應過濾法預測模型的一般表達式如下:
(2)


② 計算實際值與預測值之間的誤差:
(3)
③ 由誤差ei+1的大小來調整權重的大小,使其預測誤差減小。調整權重的公式是:
(4)

(5)
式中:分母代表的意義是歷史時間序列數據中N個觀察值的平方和最大值。好的k值不僅可以減少迭代次數,還可以確保誤差值最小。
這樣反復迭代調整權重,直到找到一組“最佳”權重,使誤差減到最小。從t=N到t=M稱之為一輪迭代。然后將一輪迭代所得到的最后一組權數作為初始權重進行下一輪迭代。這樣反復迭代直至誤差無法改進為止,即為一組“最佳”權重。后續預測采用這組“最佳”權重。
自適應過濾法有兩個優點:(1) 技術簡單,可以依據研究者的需要來選擇“權重”的個數和學習常數k,從而控制預測。(2) 該方法利用所有時間序列的觀察值來尋找“最佳”權重,而且是隨著歷史數據的軌跡變化不斷更新權重,使得預測更加精準。并且自適應過濾法中“權重”的特點是任意的,完全突破了一切約束,即經過調整后得到的權重之和不但可以不等于1,而且還可以為負數。
根據上文所敘述,在傳統的ARIMA建模過程中,其特點是對于短期預測精度較高。而隨著預測步長的增加,ARIMA模型的預測誤差加大,而自適應過濾法是以減小預測誤差為目的,經過層層迭代來調整“參數”的思想。將這兩種方法結合,使得短期預測的精度比傳統的ARIMA模型更高。同時,當預測步長較大時,也可以保持較高的預測精度。
傳統的ARIMA建模過程中,其中一個步驟是對模型參數的估計,即對式(1)中φ1,φ2,…,φp,θ1,θ2,…,θq進行估計,而式(1)可以看成一種加權多項式。根據自適應過濾法中“權數”的特點,將φ1,φ2,…,φp,θ1,θ2,…,θq看成式中變量的“權數”。在ARIMA建模的第3個步驟后,我們將自適應過濾法的思想嵌入其中,即將估計出來的參數φ1,φ2,…,φp,θ1,θ2,…,θq當作初始權值。用自適應過濾法進行參數的調整,使其預測誤差盡可能的減小,得到一組“最佳”的參數返回ARIMA模型中,然后進行預測。該模型通過計算機編程實現,在程序設計中采用傳統的ARIMA預測結果的最小絕對誤差(MAE)來度量。該組合預測法建模的流程如圖1所示。

圖1 ARIMA與自適應過濾組合預測法流程圖
為了評價組合預測法的適用范圍及預測精度,考慮選取不同類型的時間序列數據進行預測評價。比較的模型是:ARIMA模型和ARIMA-自適應過濾組合模型(以下簡稱組合模型)。所有時間序列的算例均來自澳大利亞Monash大學的Rob Hyndman教授創建的TSDL。
時間序列數據有多種分類,按照時間序列平穩性特征可分為:平穩時間序列和非平穩時間序列。平穩時間序列即為均值和標準差沒有隨系統的變化而變化,且嚴格消除周期性變化的時間序列;非平穩時間序列即為均值和標準差等數字特征隨時間的變化而變化呈現某一種趨勢的時間序列,比如周期性(季節性)、上升(下降)趨勢。而在實際的應用中所獲得的時間序列通常為非平穩時間序列。
本文在TSDL中選取的總共13組不同領域規模的時間序列數據(見表1),歸類出四類特征:1) 平穩時間序列;2) 既有周期性又有趨勢性;3) 僅有上升趨勢;4) 僅有下降趨勢。在既有周期性又有趨勢性特征的時間序列主要選取兩種類型:一類是隨時間的推移,一個周期內數據波動的幅度不變(如Wisconsin employment time serie,時間序列圖如圖2所示);另一類是一個周期內數據的波動幅度隨時間的推移而變化(如Monthly production of Gas in Australia,時序圖如圖3所示)。在僅有上升或下降趨勢特征的時間序列數據中,我們也主要選取兩種類型的數據:一類是數據上升或下降趨勢中沒有波動或者波動幅度可以忽略不計;另一種類型是數據在上升或下降趨勢中有波動的情況。這樣我們選取的數據類型幾乎涵蓋實際應用中的大部分情況。

表1 算例分類和算例數據量

圖2 1962年—1975年月均就業人數觀測值與預測值的時序圖

圖3 1956年—1994年汽油月均產量觀測值與預測值時序圖
算例評價中,本文關注模型的預測精度。預測精度的評價一方面采用從短期預測結果的相對誤差(PE)的最大值和最小值、平均絕對百分比誤差(MAPE)和相對誤差的標準差四個指標來比較。其中:最大值和最小值表示預測精度的極限情況;MAPE表示預測精度;相對誤差的標準差表示預測精度的變化情況。另一方面從長期預測的角度,即增加預測步長,從預測結果MAPE的變化率比較。
我們使用MATLAB R2014a進行編程建模。本文實驗設計的思路是將所有的時間序列歷史數據分為兩部分,前一部分成為觀測組,后一部分為驗證組。用觀測組的數據作為新的時間序列歷史數據預測后面的數據,將預測值與驗證組的真實值比較,計算出預測值的相對誤差(PE)([PE=(真實值-預測值)/真實值]×100%)。算例的分類和數據量的大小如表1所示。
通過MATLAB仿真,分別應用ARIMA模型和組合預測模型對這13組數據預測,并計算兩個模型所得各預測值的相對誤差(PE),提取和計算出PE中的最大、最小值和平均絕對百分比誤差(MAPE),以及PE的標準差的值,其結果如表2所示和表3所示。表中“PEmax”和“PEmin”分別表示各組數據預測值相對誤差的最大值、最小值,σPE表示PE的標準差。

表2 ARIMA模型預測值相對誤差

續表2

表3 ARIMA-自適應過濾組合模型預測值相對誤差
比較表2和表3可知,對于短期預測,從預測值相對誤差(PE)角度來看,平穩時間序列應用ARIMA模型的預測精度比較小。從表中數據可看出,ARIMA模型對平穩時間序列的預測的MAPE在10%~30%之間;而非平穩時間序列的應用ARIMA模型的預測精度相對較高,預測的MAPE在90%~95%之間。本文提出的組合預測模型不論什么特征的時間序列數據,預測精度都在97%以上,甚至接近真實值(如算例3、算例4、算例8)。針對相對誤差的標準差這一指標,我們發現,時間序列樣本數據量較小時(如算例10和算例13),應用組合預測模型的σPE值大于ARIMA模型的該項指標;其余算例(數據量較大),組合預測模型預測的σPE指標都較之ARIMA模型的小。結合圖1和圖2,兩種模型所預測的結果與觀察值趨勢對比,說明本文提出的組合預測模型的結果較ARIMA模型細致,更加接近實際情況。
對于長期預測(即增加預測步長)角度來看,由圖2和圖3可看出,隨著預測步長的加長,ARIMA模型雖然呈現出數據的變化趨勢,但是預測精度卻越來越小。本文提出的組合預測模型的預測精度卻變化不大,圖2對應的預測值的MAPE隨預測步長的變化情況見圖4。由圖4可知,ARIMA模型的預測結果的MAPE隨預測步長呈線性增加,且變化率較大;組合預測模型,預測步長在108個月內時,預測結果的MAPE幾乎無變化,預測步長大于108月時,預測結果MAPE開始變大。

圖4 預測步長與MAPE的變化圖
本文提出一種將傳統ARIMA模型與自適應過濾法相組合的組合預測模型。該模型以ARIMA模型為框架,加入自適應過濾法調整權數的思想,調整ARIMA模型中的參數,從而提高預測精度。本文分別從平穩時間序列、周期性+趨勢性、上升趨勢、下降趨勢四個特征共13組時間序列算例對ARIMA模型和組合預測模型進行預測計算和比較。結果發現:對于短期預測,ARIMA-自適應過濾組合預測模型的預測精度趨勢優于傳統ARIMA模型,預測精度增大了80%~99%,并且預測出的未來趨勢也更加接近實際情況。對于長期預測(即預測步長加長),ARIMA模型預測結果平均絕對百分比誤差(MAPE)變化率較大,組合預測模型預測結果平均絕對百分比誤差變化率幾乎為0。所以,本文提出的組合預測模型對平穩和非平穩時間序列的預測是有效的,并且也適用長期預測。本文的不足之處在于,在組合預測模型對參數的調整過程中,誤差的收斂時間比較長,在接下來的研究中,可以從縮小收斂時間方面著手。