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