嵇曉燕,楊 凱,陳亞男,姚志鵬,王 正,安新國
(1.中國環境監測總站,北京 100012; 2.北京金水永利科技有限公司,北京 100012)
地表水質自動化監測預警是當前水環境管理的切實需要,是現代管理“安全第一、預防為主”理念的具體體現[1]。水質預測作為地表水質自動化監測預警的基礎,已經成為水環境污染防治工作的重要研究內容。水質預測就是針對目標水體在建立基于水動力的機理模型或基于歷史數據分析的數理模型的基礎上,實現對該水體未來一段時間水質情況的預判。根據模型的預測結果,可以提早發現潛在的污染風險,避免重大水污染事件的發生,為水污染防治工作的決策提供數據支持,因此水質預測具有非常重要的實際意義。
國內外學者對水質預測方法進行了大量的研究,包括基于水動力學模型的水質預測方法[2-3]和基于數理模型的預測方法。基于數理模型的常見預測方法包括時間序列法[4-5]、回歸分析法[6-7]、灰色預測法[8]以及神經網絡預測法[9-11]等。水質數據作為時間序列數據,具有很強的自相關性以及趨勢性,適用于建立時間序列模型進行預測,但常用的單一時間序列分析模型難以捕捉到水質數據序列中的非線性部分。而對于神經網絡這類模型而言,因為其強大的非線性擬合能力,導致模型預測的泛化能力較差。考慮到影響水質環境的因素較多,且水質監測數據具有非線性、隨機性以及周期性等復雜特性,建立單一模型進行預測會因為模型自身的限制使得模型預測精度及健壯性普遍不高[12]。
本文采用基于時間序列分析模型的集成學習方法進行水質預測,通過融合多個時間序列模型的預測結果,利用神經網絡模型對預測結果進一步進行非線性處理,從而能夠顯著提升預測精度。
集成學習是使用多個基學習器進行學習,并根據規則整合每個學習器輸出的結果,從而獲得比單一基學習器更好效果的一種機器學習方法[13]。本文利用Blending集成學習的方式,將時間序列模型ARIMA和Prophet作為基學習器,將BP神經網絡模型作為整合學習器結果的集成模型,從而構建本文的集成學習模型。集成學習模型中,ARIMA模型可以很好地獲取時間序列中的周期性和趨勢信息,Prophet模型可以很好地處理時間序列數據中存在的異常值和缺失值;同時BP神經網絡模型可以很好地處理非線性問題[14-15]。
集成學習模型建模流程(圖1)如下:①將各個指標的水質歷史數據集按照監測時間順序分割為訓練、驗證以及測試數據集;②針對訓練數據集分別建立ARIMA模型和Prophet模型,計算兩個模型對驗證數據集的預測結果,將其作為輸入數據,結合驗證數據集中的輸出數據形成學習器結果數據集;③將該結果數據集分割為訓練、驗證數據集,針對訓練數據集建立BP神經網絡模型,并根據驗證數據集的預測效果判斷模型是否提前結束訓練;④評估每個模型在測試數據集上的預測精度。

圖1 集成學習模型建模流程Fig.1 Modeling flowchart of ensemble learning model
ARIMA模型由自回歸(auto regression,AR)模型和移動平均(moving average,MA)模型組成,包括p、d、q3個參數,其中p為AR模型參數,q為MA模型參數,d為時間序列轉換為平穩序列所做的差分次數[16]。
a.AR模型。該模型可以描述當前時刻水質數據與歷史水質數據之間的關系,也就是利用歷史數據對當前時刻數據進行預測。帶有隨機擾動項的p階AR模型可以寫為
Xt=α1Xt-1+α2Xt-2+…+αpXt-p+ut=
(1)
式中:Xt為t時刻的水質數據;p為用于預測的時刻數;ut為隨機擾動項;αi為模型參數。
b.MA模型。該模型認為水質序列數據是平穩的,也就是將AR模型中的隨機擾動項ut看作一個q階的移動平均項,就有下面的形式:
ut=εt+β1εt-1+β2εt-2+…+βqεt-q=
(2)
式中:εt為白噪聲;q為受白噪聲序列影響的時刻數;βj為模型參數。
c.ARIMA模型。對于不平穩的水質序列數據經過差分得到平穩序列,其中差分次數為d。將AR(p)和MA(q)結合得到ARIMA(p,d,q)模型的表達式為
(3)
Prophet模型是一種開源的可處理時間序列數據的模型,可以很好地處理時間序列中的缺失值以及異常值對預測的影響,適用于水質數據的預測分析[17]。
Prophet模型可將水質時間序列數據寫為如下關于時間t的函數形式:
y(t)=g(t)+s(t)+h(t)+ξt
(4)
式中:g(t)為趨勢項,是時間序列中非周期性變化趨勢的部分;s(t)為周期項,是時間序列中呈現周期性變化的部分;h(t)為節假日項,是該序列中受節假日影響的部分,因為在水質預測中節假日的影響較小,在本文中并不考慮這一項;ξt為剩余項。
a.趨勢項。在Prophet算法中趨勢項可通過邏輯回歸函數和分段線性函數兩種不同的函數來計算。考慮到水質數據自身的特性,本文采用分段線性函數來模擬趨勢項。基于分段線性函數的趨勢項形如:
g(t)=(k+a(t)δ)t+(m+a(t)Tγ)
(5)
其中
γ=(γ1,γ2…,γS)T
γj=-sjδj(j=1,2,…,S)
式中:k為增長率;a(t)∈{0,1}S為指示函數;δ∈RS為增長率的變化量;δj為在時間戳sj上的增長率的變化量;m為補償參數;S為突變點的個數。
b.周期項。使用傅里葉級數來模擬時間序列的周期性,周期項可以寫為下面的形式:
(6)
其中
β=(α1,b1,α2,b2,…,αN,bN)T
式中:H為時間序列的周期;β為Prophet模型的初始化參數,β的初始化為β~N(0,σ2),σ越大,表示季節效應越明顯,σ越小,表示季節效應越不明顯,本文σ=0.7。
在水質預測中設置以年為周期,也就是H=365.25,N=10,此時

(7)
選擇長江流域某監測斷面2019—2020年溶解氧(DO)、高錳酸鹽指數(CODMn)、氨氮(NH3-N)、總磷(TP)、總氮(TN)等5個指標的水質自動監測數據(共4 386條)來驗證模型。其中2019年1月1日至12月31日的2 190條數據作為訓練數據集,2020年1月1日至10月26日的1 800條數據作為驗證數據集,2020年10月27日至2020年12月31日的396條數據作為測試數據集。構建集成學習模型階段,2020年1月1日至9月26日的1 620條數據作為訓練數據集,2020年9月27日至2020年10月26日的180條數據作為驗證數據集。因為DO的自動監測頻次為1 h 1次,其他指標均為4 h 1次,為了統一時間精度,DO數據選用其他指標監測時刻的數據。
2.2.1序列平穩性檢驗
利用ADF檢驗進行序列平穩性判斷。如果該檢驗統計量小于置信度1%對應的值,并且顯著性P值小于0.05,則表示序列是平穩的。由表1可知,除CODMn外,其他指標ADF檢驗結果均小于置信度1%對應的值,并且P值均小于0.05,表明數據序列是平穩的。對CODMn序列進行一階差分,計算得到檢驗統計量為-14.461,小于置信度1%對應的值-3.431 852,P值為6.842×10-27,表明經過一階差分后數據變為平穩序列。

表1 數據平穩ADF檢驗Table 1 Data stationary ADF test
2.2.2序列隨機性檢驗
Ljung-Box檢驗可評判時間序列數據是否為隨機序列,如果為隨機序列則不能構建ARIMA模型。設置最大延后期為40,經過計算,5個水質指標數據序列得到的P值均接近于0,表明序列不是隨機序列。
2.2.3確定模型參數
針對每個水質指標,根據赤池信息準則(akaike information criterion, AIC)和貝葉斯信息準則(Bayesian information criterion, BIC),采用參數組合的方式,將使得AIC與BIC的和最小的p、q作為該水質指標ARIMA模型的參數。本文p、q的選擇范圍均為0~6,d的取值范圍為0~2。各水質指標的最佳模型參數見表2。

表2 ARIMA模型參數Table 2 ARIMA model parameters
2.2.4模型構建與驗證
ARIMA模型的殘差應該滿足均值為0且方差為常數的正態分布,并且不具備自相關性。根據各水質指標對應的最佳模型進行訓練數據的擬合,對訓練數據的模型預測值與監測值之間的殘差序列進行正態分布檢驗和Durbin-Watson(DW)檢驗(表3),其中正態分布檢驗的統計量p應大于0.05,DW檢驗的值應接近于2。如果殘差近似正態分布并且不滿足自相關性,說明構建的模型是適用于該指標數據序列分析的。

表3 殘差檢驗Table 3 Residual test
由表3可知,各水質指標模型的殘差序列均滿足正態分布并且不存在自相關性,表明建立的ARIMA模型適用于這5個水質指標的時間序列數據分析。本文的預測方式為靜態預測,也就是用真實的監測數據預測下一時刻的數據。采用平均絕對誤差(mean absolute error, MAE)、平均絕對百分比誤差(mean absolute percentage error, MAPE)以及皮爾遜相關系數(r)進行模型預測精度評價,其中MAE是預測值與真實值之差的絕對值的均值,可以評價預測結果的誤差情況;MAPE是預測值與真實值之差的絕對值與真實值比值的均值,可以用于計算模型誤差占真實值的比例;皮爾遜相關系數可以用來判斷預測序列和真實序列趨勢的一致性,接近于1說明模型預測精度較高。表4為模型在測試數據集上的預測效果。

表4 ARIMA模型預測精度評價Table 4 Evaluation of prediction accuracy of ARIMA model
由表4可知,ARIMA模型預測結果的MAPE均在20%以下,相關系數均在0.8以上,表明構建的模型預測效果較好。
對各水質指標的訓練數據集構建Prophet模型,表5為各水質指標在測試數據集上的預測精度評價結果。
因為Prophet模型是將原始的水質監測序列分解為不同的項,導致其預測值并不能很好地反應監測數據的時間變化,因此和監測值序列的皮爾遜相關性較低,因此用PIC作為評價模型預測性能的指標。從表5可知,5個指標的PIC值均在90%左右,并且MAPE在20%上下,說明該模型的預測具有一定的精度。

表5 Prophet模型預測精度評價Table 5 Evaluation of prediction accuracy of Prophet model
利用BP神經網絡模型對兩個模型的結果進行融合。選用6層的神經網絡,其中包含4個隱層,每個隱層有80個神經單元。將ARIMA模型針對驗證數據集的5個水質指標預測結果、Prophet模型的預測結果以及預測區間的上限值、下限值一起作為BP神經網絡的輸入數據,將水質的監測數據作為輸出數據,構成模型數據集,并按照9∶1的比例將模型數據集分割為訓練和驗證數據集。
模型迭代次數設置為5 000次,優化求解器采用Adamax。模型訓練過程中隨著迭代次數的增加,訓練、驗證數據集的誤差逐漸降低,為避免模型過擬合,需要根據驗證數據集的預測結果對模型進行評估,當迭代次數為3 430時模型的預測性能最佳。
從表6可看出,DO、CODMn、NH3-N、TP和TN5個水質指標集成學習模型的MAPE比ARIMA、Prophet模型中較低的分別低35.0%、29.9%、4.1%、40.6%和17.1%,皮爾遜相關系數和ARIMA模型相比相差不大,基本在0.8~1.0之間,說明集成學習模型的預測精度較單一模型精度高。

表6 集成學習模型預測精度評價Table 6 Evaluation of prediction accuracy of ensemble learning model
針對水質數據預測建立了一種基于ARIMA和Prophet的集成學習模型。集成學習模型中的時間序列分析模型可以很好地捕捉水質數據中存在的趨勢性信息,利用BP神經網絡模型進行集成可以對數據施加非線性的處理。這種通過融合不同原理模型預測結果的方式,集成了不同模型的優點,可以學習到更多數據序列存在的信息,從而使得預測結果更為精確。采用長江流域某監測斷面5個水質指標的監測數據進行了驗證,結果顯示集成學習模型的評估指標均優于單一時間序列模型,表明集成學習模型的水質預測精度更高,可以應用于實際水環境管理中的水質預測,為實現更科學、精準的水質自動化預警提供數據支持。