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