郭存文
(云南省水文水資源局文山分局,云南 文山 663099)
目前, 用于徑流預報的方法有 BP[1-2]、GRNN[3]、Elman[4]、RBF[5]等人工神經網絡法以及多元回分析法[6-7]、集對分析法[8]、灰色預測法[9]、支持向量機法[10-11]、投影尋蹤回歸法[12]、小波分析法[13]、隨機森林法[14-15]、組合預測法[16-17]等,均在徑流預測中獲得較好的預測效果。 多元線性回歸(multiple linear regression,MLR)雖已在徑流預測中得到應用[7],但應用并不廣泛,原因有:①MLR雖然簡單易行、可操作性強,但對異常值敏感,預測精度不高;②MLR常數項和偏回歸系數難以精確估計,目前普遍采用最小二乘法(least squares,LS)估計MLR相關參數,LS 求解方法復雜且精度不高,而當前在優化領域應用廣泛的群體智能算法(swarm intelligence algorithm,SIA)鮮見于MLR常數項和偏回歸系數優化;③MLR應用較為單一,多見于與主成分分析(principal component analysis,PCA)的組合應用,而鮮見于其他組合應用。
結合以上問題, 本文提出基于混合蛙跳算法(Shuffled Frog Leaping Algorithm,SFLA)優化的組合多元線性回歸(combined multiple linear regression,CMLR)徑流預測模型。 分別基于PCA數據降維處理和不降維處理建立組合多元線性回歸(CMLR)模型,利用SFLA同時優化PCA-MLR、MLR常數項、偏回歸系數和組合權重系數,建立SFLA-CMLR徑流預測模型,并構建基于PCA數據降維處理的SFLAPCA-MLR、SFLA-PCA-支持向量機(support vector machines,SVM)、最小二乘法(LS)-PCA-MLR、PCASVM和未經降維處理的SFLA-MLR、SFLA-SVM、LSMLR、SVM 作對比預測模型。 將SFLA-CMLR、SFLA-PCA-MLR、 SFLA-PCA-SVM、 LS-PCA-MLR、PCA-SVM、SFLA-MLR、SFLA-SVM、LS-MLR、SVM模型應用于云南省落卻站和新疆伊犁河雅馬渡站年徑流預測研究,并對各模型的預測結果進行比較分析,旨在驗證SFLA-CMLR模型用于徑流預測的可行性。
混合蛙跳(SFLA)算法是Eusuff等人于2003 年提出,其通過模擬青蛙在覓食過程中的信息共享和交流實現搜索尋優,具有概念簡單,參數較少,運算速度快,易于實現等優點。 其數學模型簡述如下[18-21]。
a)隨機生成初始種群。 隨機生成P=N×M只青蛙組成的初始群體,第i只青蛙個體表示為xi=(xi1,xi2,…,xis)(i=1,2,…,P)。 其中,N表示子群內青蛙數量;M表示子群數;s表示解空間維度。
b)分組與排序。 通過計算每個青蛙個體初始適應度值f(xi),并按f(xi)降序排序,再將各青蛙個體逐一循環分配給M子群。
c)子群搜索。 在迭代過程中,利用式(1)對每個子群中f(xi)最差的個體Fw進行調整。
若f(Fw,new) <f(Fw,old),則用Fw,new代替Fw,old;否則按式(2)進行局部搜索。
若仍有f(Fw,new)≥f(Fw,old),則按式(3)進行局部搜索。
式中 Fw,new——第k個子群中最差個體更新值;Fw,old——第k個子群中最差個體原值;Fb——第k個子群中局部最優個體;Fg——全局最優青蛙個體;Fnew——隨機產生的青蛙新個體。
d)全局交換。 當所有子群結束局部搜索后,將所有子群的青蛙進行混合并重新進行排序和子群劃分,并重復執行局部搜索策略直至滿足最大迭代次數。
1.2.1 PCA-MLR模型
主成分分析(PCA)是一種通過降維技術把多個變量化為少數幾個主成分的多元統計方法。 設具有n 個變量X1,X2,…,Xn和k個樣本的數據矩陣可表示為[22-23]:
式中 F1、F2、Fm——第一主成分、第二主成分、第m個主成分;aij——主成分系數。
多元線性回歸(MLR)是指在相關變量中將一個變量視為因變量,其他一個或多個變量視為自變量,建立多個變量之間線性或非線性數學模型數量關系式并利用樣本數據進行分析的統計分析方法[19,22]。 基于PCA降維處理的MLR模型關系式表示如下:
式中 Q1——PCA-MLR模型徑流量預測值;β0——常數項;β1,…,βm——MLR偏回歸系數;F1,F2,…,Fm——自變量,即第一、第二,…,第m個主成分。
1.2.2 MLR模型
未經降維處理的多元線性回歸(MLR)關系式可表示如下:
式中 Q2——MLR模型徑流量預測值;α0——常數項;α1,…,αn——MLR偏回歸系數;x1,x2,…,xn——自變量,即年徑流預測的影響因子。
1.2.3 CMLR模型
利用SFLA同時對PCA-MLR、MLR模型常數項、偏回歸系數和權重系數進行優化,建立組合多元線性回歸(CMLR)模型如下:
式中 Q——CMLR模型徑流量預測值;ω——PCAMLR模型權重系數;其他參數意義同上。
步驟一 對實例數據進行降維或不降維處理,劃分訓練、預測樣本,利用SFLA同時優化PCAMLR、MLR模型常數項、偏回歸系數和PCA-MLR模型權重系數,建立SFLA-CMLR預測模型,利用樣本數據對SFLA-CMLR模型進行訓練。
步驟二 確定待優化目標函數。 本文選用相對誤差絕對值之和作為優化目標函數,描述如下:
步驟三 初始化SFLA算法參數,設定各待優化參數搜索空間,令當前迭代次數t=1。
步驟四 適應度排序。 通過計算每個青蛙個體初始適應度值f(xi),并按f(xi)降序排序,再將各青蛙個體逐一循環分配給M子群。
步驟五 子群局部搜索。 利用式(1)—(3)對每個子群中f(xi)最差的個體Fw進行調整或局部搜索。
步驟六 對各子群不斷進行迭代直到達到子群最大迭代次數;將各子群中青蛙個體按適應度值大小進行重新排序和子群劃分,并重復執行局部搜索策略。
步驟七 令t=t+1。 判斷t是否等于最大迭代數,若是,輸出全局最優解Fg,算法結束;否則返回步驟四。
步驟八 輸出全局最優解Fg,Fg即為PCAMLR、MLR模型常數項、偏回歸系數及PCA-MLR權重系數。 將優化結果代入SFLA-CMLR模型對預測樣本進行預測。
a)數據來源及分析。 實例1 以云南省落卻水文站1960—2012 年實測水文資料為研究對象,通過計算該站1960—2012 年1—10 月月徑流量與相應年份年徑流量的相關系數,相關系數在0.324 ~0.730 之間,具有一定的相關性。 本文選取1—10月月平均流量作為年徑流預報因子,1960—1999 年實測數據作為訓練樣本,2000—2012 年作為預測樣本。 實例2 來源于文獻[24 -25],4 個影響因子及預報因子詳見文獻[24 -25]。 為便于與文獻[25-30]預測結果進行對比,實例2 選取前17 組數據作為訓練樣本,后6 組數據作為預測樣本。 利用SPSS17.0軟件對實例數據進行主成分分析降維處理。 對于實例1,前6 個特征值累計貢獻率達88.439%,根據累計貢獻率大于85%的原則,故選取前6 個變量代替原10 個變量進行年徑流預測;對于實例2,前3 個特征值累計貢獻率達88.013%,根據累計貢獻率大于85%的原則,故選取前3 個變量代替原4 個變量進行年徑流預測。 主成分分析結果及降維后的數據統計見表1、2,原始數據限于篇幅從略。
表1 實例年徑流主成分分析結果
表2 實例年徑流預測影響因子降維統計
b)參數設置。 設置最大迭代次數為1 000,群體規模為100,子群數、子群內青蛙個數、子群數局部進化次數均為10;對于實例1,PCA-MLR、MLR常數項、偏回歸系數搜索范圍∈[ -10,10];對于實例2,PCA-MLR、MLR常數項、偏回歸系數搜索范圍∈[ -500,500];CMLR模型常數項、偏回歸系數搜索范圍同PCA-MLR、MLR模型,PCA-MLR權重系數搜索范圍∈[0,1];SVM模型懲罰因子C、核函數參數g、不敏感系數ε搜索范圍∈[2-10,210],交叉驗證折數V=2,并采用[ -1,1]對原始數據進行歸一化處理;PCA-SVM、SVM模型最佳懲罰因子C、核函數參數g、不敏感系數ε采用試算方法獲得。
c)SFLA尋優能力檢驗。 利用2 個實例的訓練樣本構建的目標函數對SFLA尋優能力進行檢驗。對于實例1,連續10 次運行SFLA,其優化目標函數值在89.452 2 ~89.907 7 之間,標準差為0.163 8,10 次尋優過程見圖1;對于實例2,連續10 次運行SFLA,其優化目標函數值在105.210 5 ~105.821 3之間,標準差為0.200 7,10 次尋優過程見圖2。 從2 個實例尋優效果、標準差和10 次尋優過程圖可以看出,SFLA具有較好的尋優精度和全局搜索能力,SFLA-CMLR模型具有較好的穩健性。
圖1 實例1 連續10 次尋優過程
圖2 實例2 連續10 次尋優過程
d)預測及分析。 建立SFLA-CMLR、SFLA-PCAMLR、 SFLA-PCA-SVM、 LS-PCA-MLR、 PCA-SVM、SFLA-MLR、SFLA-SVM、LS-MLR、SVM 模型對2 個實例年徑流進行預測,并利用平均相對誤差MRE(%)、最大相對誤差MaxRE(%)和平均絕對誤差MAE(m3·s-1)對各模型性能進行評價。 各模型預測結果見表3,并列出實例2 與文獻[25 -30]預測結果的對比(表4)及9 種模型的訓練-預測相對誤差效果,見圖3、4。
圖3 實例1 擬合-預測相對誤差
表3 不同模型年徑流測結果及其對比
表4 本文方法與相關文獻方法預測結果對比(實例2)
經SFLA優化各模型參數,得到實例1、2 PCAMLR模型權重系數分別為0.845 7、0.105 7,其他模型參數優化結果限于篇幅從略。
圖4 實例2 擬合-預測相對誤差
依據表3、4 及圖1—4 可以得出以下結論。
a)從表3 來看,SFLA-CMLR模型對實例1、2 預測的MRE分別為1.54%、4.63%,MAE分別為0.102、16.578 m3/s, MaxRE 分別為 4.38%、9.89%,預測精度均優于SFLA-PCA-MLR、SFLAPCA-SVM、 LS-PCA-MLR、 PCA-SVM、 SFLA-MLR、SFLA-SVM、LS-MLR、SVM模型,具有較高的預測精度和較好的泛化能力,表明SFLA能同時有效優化CMLR模型參數和權重系數,SFLA-CMLR模型用于徑流預測是可行和有效的。
b)從圖1、2 來看,SFLA具有較好的尋優精度和全局搜索能力,SFLA-CMLR模型具有較好的穩健性。 從圖3、4 來看,SFLA-CMLR模型具有較好的擬合效果和預測精度。 從CMLR模型權重系數優化結果來看,實例1、2,PCA-MLR模型權重系數分別為0.845 7 和0.105 7,表明實例1 中PCA-MLR模型占主導地位,實例2 中MLR模型占主導地位。
c)對于同一模型,采用PCA數據降維或不降維處理對模型的預測精度影響不大,甚至未經降維處理的模型的預測精度略高于經PCA降維處理的模型,說明雖然數據降維處理可使數據樣本簡潔且更具代表性,但在數據降維處理的同時損失部分數據信息,這在一定程度上制約了模型預測性能的提高。同樣也說明,提高MLR模型預測精度的關鍵是合理估計常數項值和偏回歸系數。
d)對于實例2,SFLA-CMLR模型預測的MRE僅為4.63%,預測精度均優于文獻[25 -30]各種模型的預測結果。 表明通過有效的MLR組合和精確的常數項、偏回歸系數尋優,簡單的多元線性回歸模型同樣可以獲得較好的預測效果。
綜合SFLA、PCA與MLR各自優點,提出建立SFLA-CMLR 徑流預測模型及 SFLA-PCA-MLR、SFLA-PCA-SVM、 LS-PCA-MLR、 PCA-SVM、 SFLAMLR、SFLA-SVM、LS-MLR、SVM模型,通過2 個年徑流預測實例對各模型的預測效果進行驗證,結論如下。
a)SFLA-CMLR模型對兩個實例的預測精度均優于SFLA-PCA-MLR等8 種模型,具有更高的預測精度和更強的泛化能力,表明PCA-MLR、MLR模型間具有互補性,SFLA能同時有效優化CMLR模型常數項、偏回歸系數和權重系數,SFLA-CMLR模型用于徑流預測是可行和有效的,模型不但穩健性能好,而且智能化水平高,具有較好的實際應用價值。
b)對于同一模型,雖然數據降維處理可使數據樣本簡潔且更具代表性,但在數據降維處理的同時損失部分數據信息,這在一定程度上制約了模型預測性能的提高。 提高MLR模型預測精度的關鍵是合理估計常數項值和偏回歸系數。
c)從SFLA-CMLR模型對實例2 的預測結果及與文獻[23-28]各種模型預測結果的對比來看,通過有效的MLR組合和精確的常數項、偏回歸系數尋優,簡單的多元線性回歸模型同樣可以獲得較好的預測效果。