胡衍坤,王 寧,劉 樞,姜秋俚,張 楠
1(中國科學(xué)院大學(xué),北京 100049)
2(中國科學(xué)院 沈陽計算技術(shù)研究所,沈陽 110168)
3(遼寧省生態(tài)環(huán)境監(jiān)測中心,沈陽 110161)
4(阜新市生態(tài)環(huán)境保護(hù)服務(wù)中心,遼寧 阜新 123000)
河流為人類提供了賴以生存的水資源以及水產(chǎn)資源.工業(yè)化進(jìn)程的不斷加快,導(dǎo)致河流水環(huán)境受到嚴(yán)重破壞.由于河流水質(zhì)變化與氣候環(huán)境、季節(jié)更替以及人類活動密切相關(guān),因此河流水質(zhì)變化呈現(xiàn)出漸變性,非線性,和不確定性等特點[1].水質(zhì)預(yù)測能夠幫助我們更好地了解河流水質(zhì)變化,從而更好的保護(hù)河流水資源.近年來,國內(nèi)外很多專家學(xué)者已針對水質(zhì)預(yù)測做了大量的研究,并取得了較好的成果.傳統(tǒng)的水質(zhì)預(yù)測模型主要包括時間序列模型、灰色系統(tǒng)理論模型、回歸分析模型以及神經(jīng)網(wǎng)絡(luò)模型等.謝建輝等人[2]將ARIMA模型應(yīng)用到對河流水質(zhì)主要監(jiān)測指標(biāo)化學(xué)需氧量和氨氮的預(yù)測分析上,較為準(zhǔn)確的反映了河流水質(zhì)的變化趨勢.趙林等人[3]使用BP神經(jīng)網(wǎng)絡(luò)模型對桃林口水庫出庫站7項水質(zhì)指標(biāo)進(jìn)行預(yù)測,效果良好.此外,隨著深度學(xué)習(xí)以及人工智能的快速發(fā)展,深度學(xué)習(xí)模型也越來越多的應(yīng)用到水質(zhì)預(yù)測研究中.涂吉昌等人[4]應(yīng)用基于門控型循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU)的水質(zhì)預(yù)測模型進(jìn)行水質(zhì)預(yù)測,顯著提高了水質(zhì)預(yù)測精度.除單一模型外,組合模型也被應(yīng)用到水質(zhì)預(yù)測的研究.肖榮平等人[5]使用多算法組合的河流水質(zhì)預(yù)測方法進(jìn)行水質(zhì)預(yù)測,結(jié)果表明,組合模型的預(yù)測精度顯著提高,能夠更好的適用于復(fù)雜水域的水質(zhì)預(yù)測.
ARIMA模型是經(jīng)典的時間序列預(yù)測方法,能夠較好的體現(xiàn)時間序列數(shù)據(jù)中的線性特征.但是,單一的ARIMA模型對河流水質(zhì)的非線性變化難以充分有效的處理,需要結(jié)合其他算法.在深度學(xué)習(xí)算法中,LSTM模型由于其特殊的網(wǎng)絡(luò)結(jié)構(gòu),在處理時間序列問題時,比傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)更快更易收斂到最優(yōu)解,非常適合處理河流水質(zhì)指標(biāo)這種時序數(shù)據(jù)[6].李艷萍等人[7]基于LSTM神經(jīng)網(wǎng)絡(luò)模型較為準(zhǔn)確的預(yù)測了空氣質(zhì)量AQI指數(shù).因此,本文建立了ARIMA與LSTM組合模型以及SARIMA與LSTM組合模型進(jìn)行河流水質(zhì)預(yù)測的研究,并結(jié)合實際河流監(jiān)測數(shù)據(jù),分析河流水質(zhì)變化趨勢.通過比較兩種組合模型對河流水質(zhì)預(yù)測的結(jié)果,探究更好的河流水質(zhì)預(yù)測方法,從而更好的保護(hù)河流水環(huán)境.
ARIMA模型全稱為差分自回歸移動平均模型(Autoregressive Integrated Moving Average Model,簡記為ARIMA).其中AR是自回歸,p為自回歸項;MA為移動平均,q為移動平均項數(shù);把非平穩(wěn)的時間序列轉(zhuǎn)化為平穩(wěn)序列需要進(jìn)行d階差分[8].ARIMA模型的一般形式為:
(1)
該模型中包括自回歸AR(p)和移動平均回歸MA(q)兩個過程.在上式中,γi(i=0,1,2,…,p)和θi(i=0,1,2,…,q)是待求參數(shù),p為自回歸過程的滯后階數(shù),q為移動平均過程的滯后階數(shù),μ為常數(shù)項系數(shù),t為隨機(jī)擾動項序列,通常要求為白噪聲序列,表示為t~WN(0,σt2).ARIMA模型在建模時要求時間序列必須為平穩(wěn)序列,對于非平穩(wěn)時間序列數(shù)據(jù)要進(jìn)行d階差分后再進(jìn)行建模.所以,完整的差分自回歸移動平均過程ARIMA(p,d,q)在引入滯后因子后的模型表示為:
(2)
式(2)中L表示滯后因子,其定義為Lnyt=yt-n,(1-L)d為d階差分運算.在建立ARIMA模型時首先要檢測數(shù)據(jù)的平穩(wěn)性,對于非平穩(wěn)時間序列首先進(jìn)行差分操作,從而確定d的值;然后根據(jù)自相關(guān)函數(shù)(ACF)和偏自相關(guān)函數(shù)(PACF)的截尾和拖尾性確定p值和q值;然后采用最小二乘法對參數(shù)進(jìn)行估計;最后根據(jù)AIC、BIC、殘差檢驗等方式確定最優(yōu)的p、q值用于模型的訓(xùn)練.
SARIMA模型是在ARIMA模型的基礎(chǔ)上添加了季節(jié)項,主要針對具有季節(jié)性或周期性變化的時間序列進(jìn)行建模[9].SARIMA乘積模型的一般表達(dá)形式為:
SARIMA=(p,d,q)×(P,D,Q)s
(3)
式(3)中p為自回歸階數(shù),q為移動平均階數(shù),d為差分階數(shù),P,Q,D分別為季節(jié)求和自回歸移動平均模型中的自回歸、移動平均回歸和差分的值,s為季節(jié)周期和循環(huán)長度.在進(jìn)行SARIMA建模時,首先進(jìn)行差分操作,從而確定d和D的值;然后通過ACF來確定p和P的值,通過PACF來確定q和Q的值;然后采用平均法或者移動平均趨勢剔除法對季節(jié)性時間序列數(shù)據(jù)進(jìn)行分解,從而確定s的值;最后在得到所有參數(shù)后,使用參數(shù)估計模型進(jìn)行模型校驗,得到最終模型.
圖1 LSTM神經(jīng)網(wǎng)絡(luò)
LSTM模型在RNN的基礎(chǔ)上添加了3個門控結(jié)構(gòu),分別為“遺忘門”,“輸入門”和“輸出門”[12].LSTM的第一步是確定將從節(jié)點狀態(tài)中丟棄哪些信息,該判定由稱為“遺忘門”的Sigmoid層決定.它查看ht-1和Xt,并為單元狀態(tài)Ct-1中的每個數(shù)字輸出0-1之間的數(shù)字,0代表“不允許任何量通過”,1代表“允許任何量通過”.Sigmoid函數(shù)的輸出值決定前一個狀態(tài)的值是否丟棄,表達(dá)式為:
ft=σ(Wf·[ht-1,xt]+bf)
(4)
下一步是確定我們將在單元節(jié)點狀態(tài)中存儲哪些信息,包含兩個部分.“輸入門”的sigmoid函數(shù)決定將更新哪些值,tanh函數(shù)創(chuàng)建可以添加到狀態(tài)的新候選值C~t的向量(一個在-1與1之間的值)并與sigmoid函數(shù)的值相乘,最后輸出確定要輸出的那部分.其表達(dá)式為:
it=σ(Wi·[ht-1,xt]+bi)
(5)
(6)
最后我們需要通過“輸出門層”來決定輸出的內(nèi)容.首先運行一個sigmoid層,它決定我們要輸出的單元狀態(tài)的哪些部分.然后將單元狀態(tài)置于tanh(將值推到介于-1和1之間)并將其乘以sigmoid們的輸出,最終得到將要輸出的部分.其表達(dá)式為:
ot=σ(Wo·[ht-1,xt]+bo)
(7)
ht=ot*tanh(Ct)
(8)
河流水質(zhì)預(yù)測組合模型設(shè)計圖如圖2所示.
圖2 組合模型
2.3.1 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理過程主要處理原始數(shù)據(jù)中的缺失值以及異常值,首先對數(shù)據(jù)進(jìn)行離群點檢測,將異常值視為缺失值,從而使用拉格朗日插值法對缺失值進(jìn)行填補.
處理措施:提前向海事部門申請《水上水下作業(yè)許可證》,并向港航局通航處申請發(fā)布關(guān)于“水上施工”的航行通告,及時將有關(guān)工程情況對相關(guān)單位進(jìn)行宣傳、報道,便于航運單位掌握信息,提高安全航行程度。加強(qiáng)同船閘管理處的聯(lián)系與溝通,及時了解開閘通行、停運、高峰期等關(guān)鍵時間點,根據(jù)船閘管理處相關(guān)信息對鋼板樁施工作業(yè)時間進(jìn)行調(diào)整,盡量避免在船只通行時進(jìn)行打樁作業(yè)。根據(jù)上下游船閘開放時間,盡量減少船只通行對施工造成的干擾,同時最大程度減少施工對通航的影響。在施工區(qū)域周圍設(shè)置警示線,并在施工區(qū)靠航道一側(cè)打設(shè)一排臨時防護(hù)樁,將施工區(qū)域進(jìn)行封閉。
水質(zhì)監(jiān)測數(shù)據(jù)具有線性特征以及非線性特征[13],將水質(zhì)數(shù)據(jù)記為Zt,則可將其分解為線性部分Xt和非線性部分Yt,記為:
Zt=Xt+Yt
(9)
2.3.2 組合模型建模分析
1)時間序列模型建模
(10)
2)LSTM殘差預(yù)測
3)模型組合
(11)
2.3.3 模型評價指標(biāo)
本文對于ARIMA模型和SARIMA模型以及組合模型分別計算模型預(yù)測結(jié)果的均方誤差(MSE)、均方根誤差(RMSE)[14]和平均絕對百分比誤差(MAPE),來量化模型預(yù)測的準(zhǔn)確性.
MSE計算公式為:
(12)
RMSE計算公式為:
(13)
MAPE計算公式為:
(14)
其中pi為模型預(yù)測值,xi為訓(xùn)練集真實值,n為訓(xùn)練集個數(shù).
本次實驗基于Windows操作系統(tǒng),使用python語言進(jìn)行編碼,版本為python3.7,編程工具使用Jupyter Notebook,其中ARIMA與SARIMA模型使用statsmodels包實現(xiàn),LSTM模型使用TensorFlow框架實現(xiàn).
實驗水質(zhì)數(shù)據(jù)來源于遼寧省阜新市細(xì)河高臺子斷面2013年1月-2020年3月監(jiān)測數(shù)據(jù),選取的污染物指標(biāo)為化學(xué)需氧量(COD)和氨氮(NH3-N).取2013年1月-2018年12月數(shù)據(jù)作為模型的訓(xùn)練集,2019年1月-12月數(shù)據(jù)作為模型的測試集,2020年1月-3月數(shù)據(jù)作為模型預(yù)測的驗證集.
在ARIMA模型建模時,首先對時間序列訓(xùn)練數(shù)據(jù)進(jìn)行ADF檢測和白噪聲檢驗,接下來繪制原始時間序列的自相關(guān)(ACF)圖和偏自相關(guān)(PACF)圖,觀察可知模型p值為1,q值也為1.最后確定模型為ARIMA(1,0,1),進(jìn)行模型訓(xùn)練、檢驗、評估及預(yù)測,得到ARIMA的擬合預(yù)測序列,然后使用原始數(shù)據(jù)減去擬合的預(yù)測數(shù)據(jù)得到ARIMA模型預(yù)測后的殘差序列,并以滑動窗口的方式將殘差序列切分成n段長度為t的序列,然后應(yīng)用LSTM模型進(jìn)行殘差序列模型的訓(xùn)練和預(yù)測得到預(yù)測結(jié)果,最后將ARIMA模型預(yù)測結(jié)果與LSTM殘差預(yù)測結(jié)果相加得到最終預(yù)測結(jié)果.結(jié)果如圖3、圖4所示.
圖3 ARIMA-LSTM模型預(yù)測結(jié)果
圖4 ARIMA-LSTM模型預(yù)測結(jié)果
計算可得組合模型化學(xué)需氧量預(yù)測值均方誤差和均方根誤差分別為5.13和2.26,平均百分比誤差為4.77%.氨氮預(yù)測值均方誤差為0.14,均方根誤差為0.19,平均百分比誤差為5.26%,說明ARIMA和LSTM組合模型預(yù)測相較于單獨使用ARIMA模型得到了很好的預(yù)測結(jié)果.
在進(jìn)行SARIMA建模時需要先提取時間序列數(shù)據(jù)中的趨勢、季節(jié)和隨機(jī)效應(yīng),從而判斷殘差序列的穩(wěn)定性以及確定季節(jié)項系數(shù).由ARIMA模型建模過程可知,原始化學(xué)需氧量和氨氮數(shù)據(jù)均為平穩(wěn)數(shù)據(jù);根據(jù)化學(xué)需氧量和氨氮數(shù)據(jù)自相關(guān)圖和偏自相關(guān)可知,p值分別為1和2,q值都為1;根據(jù)從數(shù)據(jù)中提取的季節(jié)性可知,季節(jié)項系數(shù)都為12.通過網(wǎng)格搜索并依據(jù)AIC準(zhǔn)則,可以得到化學(xué)需氧量序列SARIMA模型最優(yōu)參數(shù)組合為SARIMA(1,0,1)×(1,0,1,12),氨氮序列SARIMA模型最優(yōu)參數(shù)組合為SARIMA(2,0,1)×(2,0,1,12).進(jìn)行SARIMA模型訓(xùn)練和預(yù)測得到預(yù)測值序列,并計算預(yù)測得到的殘差序列,在此基礎(chǔ)上繼續(xù)建立SARIMA與LSTM組合模型進(jìn)行預(yù)測,預(yù)測結(jié)果如圖5、圖6所示.
圖5 SARIMA-LSTM模型預(yù)測結(jié)果
圖6 SARIMA-LSTM模型預(yù)測結(jié)果
經(jīng)計算可得SARIMA和LSTM組合模型對化學(xué)需氧量預(yù)測值的均方誤差為3.17,均方根誤差為1.37,平均百分比誤差為2.81%,氨氮預(yù)測值的均方誤差為0.10,均方根誤差為0.13,平均百分比誤差為3.16%.各模型預(yù)測結(jié)果對比如圖7、圖8和表1所示.
表1 各模型預(yù)測精度對比
圖7 各模型預(yù)測結(jié)果對比
圖8 各模型預(yù)測結(jié)果對比
綜上可知,組合模型相較于單一時間序列模型在對河流水質(zhì)指標(biāo)中的化學(xué)需氧量和氨氮進(jìn)行預(yù)測時的精度都有了明顯提高.其中ARIMA和LSTM組合模型比ARIMA模型的預(yù)測精度提高了約7%,SARIMA和LSTM組合模型比SARIMA模型的預(yù)測精度提高了約6%,SARIMA和LSTM組合模型的預(yù)測精度比ARIMA和LSTM組合模型的預(yù)測精度提高了約2%.所以,經(jīng)過試驗分析,在本次試驗數(shù)據(jù)集的基礎(chǔ)上得到的河流水質(zhì)預(yù)測最優(yōu)模型為SARIMA和LSTM組合模型,該模型預(yù)測準(zhǔn)確度較高,泛化能力強(qiáng).
傳統(tǒng)的時間序列模型ARIMA和SARIMA能夠較好的體現(xiàn)時間序列數(shù)據(jù)中的線性特征,LSTM模型能夠很好的處理時間序列數(shù)據(jù)中的非線性特征,本文在使用ARIMA模型和SARIMA模型建模的基礎(chǔ)上提出了ARIMA和LSTM組合模型以及SARIMA和LSTM組合模型,并進(jìn)行了實驗分析.經(jīng)過實驗分析可知,組合模型對于河流水質(zhì)指標(biāo)中的化學(xué)需氧量和氨氮的預(yù)測精度優(yōu)于單一時間序列模型的預(yù)測精度.SARIMA模型在ARIMA模型的基礎(chǔ)上增加了季節(jié)項,由于考慮了季節(jié)性因素對河流水質(zhì)變化的影響,SARIMA模型的預(yù)測精度優(yōu)于ARIMA模型.SARIMA與LSTM組合模型的預(yù)測精度比ARIMA模型的預(yù)測精度提高了10%左右,能夠較為準(zhǔn)確的擬合以及預(yù)測河流水質(zhì)參數(shù)指標(biāo),從而為保護(hù)河流水環(huán)境提供較為準(zhǔn)確的參考依據(jù).