顧 杰,王 嘉,鄧俊暉,王榮昌
(1. 浙江嘉科信息科技有限公司,浙江嘉興 314000;2. 同濟大學環境科學與工程學院,長江水環境教育部重點實驗室,上海 200092)
對水質預測,目前普遍是根據現在值和某一變量對未來值進行預測。兩種主要工具,一是根據時間序列方法進行預測,二是利用灰色系統原理進行預測[1]。這兩種方法預測結果相比,精度更高的是時間序列方法[2]。由于ARIMA模型的靈活性、簡單性以及可行性,在時間序列預測方法中已經成為主要的時間預測方法[3]。在現實中絕大多數時間序列含有非線性的因素,但是,ARIMA模型中時間序列變量的未來值被認為是變量過去觀測值和隨機誤差值的線性函數。因此,單獨使用該模型進行預測會產生較大的誤差。通過大量數據的訓練,神經網絡模型能夠挖掘數據背后復雜的非線性關系,具有較強的學習能力,已經在數據預測領域得到廣泛的應用,并成為一種主要的預測方法[4]。實際研究中總是或多或少地含有非線性因素,當非線性因素影響較小,或在某一范圍內影響較小時,尚可采用線性模型來描述或逼近。但是,非線性影響較大或用線性逼近也得不到較好結果時,非線性時間序列模型的運用就顯露了其特有的優勢。神經網絡模型為非線性模型預測提供了新思路。由于是具備自動學習、逼近能夠反映樣本數據規律的最優函數,且當函數形式越復雜時,神經網絡預測的效果越好[5],其在預測高復雜度的非線性時間序列方面明顯優于傳統的線性預測方法。為了規避單個預測模型無法充分捕獲時間序列中所包含的信息缺陷,通過組合不同預測模型的優勢,盡可能多的獲取時間序列數據中的信息[6]。有學者將上述方法集成進行時間序列預測研究,以提高模型的預測效果,例如,趙成柏等[2]基于ARIMA和BP神經網絡組合模型的我國碳排放強度預測。因此,本文提出了一種基于ARIMA方法和改進的BP神經網絡組合模型對水質進行預測,提高預測的精度。采集的待預測流域水質時間序列數據可能包含多種季節性等特點,線性數據使用ARIMA自回歸積分滑動平均模型預測,對于非線性數據,使用BP神經網絡預測。考慮到水質數據中大部分是非線性數據,在BP神經網絡中加入氣象因素對模型進行訓練[7]。最后,將ARIMA自回歸積分滑動平均模型預測值與BP神經網絡模型誤差值結果在待預測各時間點的值進行相加,得到最終的水質預測結果。本文采用2019年1月1日—2019年11月19日嘉興市某站點水質歷史數據和嘉興周邊氣象數據,建立ARIMA和BP神經網絡組合預測模型,并分別利用單個ARIMA模型和ARIMA-BP組合模型對2019年11月20日—2019年12月7日該站點水質電導率、溶解氧、總磷、總氮、高錳酸鹽、氨氮進行預測。
ARIMA (auto regressive integrated moving average) 方法可對時間序列進行預測,常被用于需求預測和規劃中。博克思(Box)和詹金斯(Jenkins)于70年代初提出這一著名的時間序列預測方法,又稱box-jenkins模型、博克思-詹金斯法[8],可用來對隨機過程的特征隨著時間變化而非固定、導致時間序列非平穩的原因是隨機而非確定的問題。為了得到一個平穩的序列,假設從平穩的時間序列開始,首先應當做差分。模型的思想就是從歷史的數據中學習到隨時間變化的模式來預測未來。其中ARIMA(p,d,q)稱為差分自回歸移動平均模型,d是差分的階數,用來得到平穩序列[9];AR是自回歸,p為相應的自回歸項;MA為移動平均,q為相應的移動平均項數。
建立ARIMA時間序列模型包括3個步驟。
(1)數據的平穩性處理
判斷樣本的平穩性,需對一個時間序列進行ARIMA(p,d,q)模型建模,如果不是平穩序列,需利用一次或多次差分將其轉化為平穩序列。原序列值相距一期的兩個序列值之間的減法運算是一階差分;相距K期的兩個序列值之間相減是k階差分;差分平穩序列表現為一個時間序列經過差分運算后有平穩性,可以使用ARIMA模型進行分析。
(2)確定模型參數
參數估計主要有3種方法:矩估計、最小二乘法和極大似然法。3種方法各有利弊,為達到最佳的模型擬合效果,需對這3種方法進行嘗試,最后根據樣本數據選取最優估計方法[10]。
(3)模型驗證
驗證所擬合的時間序列模型的參數估計值是否有顯著性和驗證所擬合的時間序列模型的殘差序列是否是白噪聲序列,即殘差序列的獨立性檢驗。
BP神經網絡是一種通過BP算法實現的人工神經網絡。人工神經網絡是受自然神經元靜息和動作電位產生機制啟發而建立的一個運算模型。神經元大致可以分為樹突、突觸、細胞體和軸突,神經元通過位于樹突上的突觸接受信號[11]。當信號量超過某個閾值時,細胞體就會被激活,產生電脈沖。電脈沖沿著軸突并通過突觸傳遞到其他神經元,且可能激活別的神經元,神經元生理結構如圖1所示。

圖1 神經元生理結構Fig.1 Physiological Structure of Neuron
人工神經元模型已經把自然神經元的復雜性進行了高度抽象的符號性概括。神經元模型基本上包括多個輸入(類似突觸),這些輸入分別被不同的權值相乘(收到的信號強度不同),然后被一個數學函數用來計算決定是否激發神經元,該函數被稱作激活函數[12],如圖2所示。人工神經網絡把這些人工神經元融合一起用于處理信息。

圖2 人工神經網絡激活函數Fig.2 Activation Function of Artificial Neural Network
權值越大表示輸入的信號對神經元影響越大。通過調整權值可得到固定輸入下需要的輸出值。調整權重的過程稱為“學習”或“訓練”[13]。
以最簡單的一維線性函數y=wx+b為例,通過調整w和b兩個參數可以使該函數左右上下移動,在引入激活函數σ(wx+b)后,線性函數即可變成更復雜的非線性函數[14],如圖3所示。

圖3 神經網絡模型及對應的函數1Fig.3 Neural Network Model and Corresponding Functions 1
在神經網絡神經元上運行的函數即為激活函數,主要負責將神經元的輸入映射到輸出端。常見的激活函數包括TanHyperbolic(tanh)、Sigmoid、TanHyperbolic(tanh)、ReLu、 TanHyperbolic(tanh)以及softmax函數[15]。非線性函數作為這些函數的的共同點,引入非線性函數作為激勵函數,神經網絡就可以逼近任意函數。
基于神經網絡算法可以構造出任意復雜函數的理論依據[16],可以建立一個特定的神經網絡模型,使用前幾天水質誤差數據和氣象數據作為特征值,對應當天水質誤差數據作為特征標簽,進行訓練并不斷調整網絡模型的權重,擬合出一個對應的函數,然后使用該函數做校準[17]。
本文使用的BP神經網絡訓練數據包括水質誤差數據和氣象數據,每個維度之間的數量級差別較大,直接訓練會導致每一維的梯度下降不同,使用同一個學習率也很難迭代到代價函數最低點。經過歸一化處理后,易進行梯度下降,便于提高訓練速度[18]。常用歸一化方法有最大-最小標準化、Z-score標準化、函數轉化等[19]。使用最大-最小標準化對原始數據進行線性變換,設minA和maxA分別為A的最小值和最大值,將A的一個原始值x通過最大-最小標準化映射到區間[0,1]的值x′,如式(1)。
(1)
其中:x——(-∞,+∞)的實數值;
A——原始數據值。

本文只描述水質電導率指標的建模過程,其他幾個指標的建模過程類似,不再描述。整個建模過程采用R語言實現,建模流程如圖4所示。

圖4 建模流程圖Fig.4 Flow Chart of Modeling
(1)數據準備
本次觀測對象為嘉興市某水質站點采集的水質電導率時間序列日均指標,時間為2019年1月1日—2019年11月19日,時間序列有323個數據。
(2)數據導入
data<-read.xlsx("水質電導率數據.xlsx",sheetName=“Sheet1”,header=T,encoding="UTF-8")
(3)平穩性檢驗
根據以上信息,運用R語言中的繪圖程序,繪制水質電導率指標隨時間的趨勢圖(圖5)。
data1<-data[-1]
ddl<-ts(data1,start=2019-01-01)
dev.off()
plot(ddl)

圖5 水質電導率趨勢Fig.5 Trend Diagram of Water Quality Conductivity
如圖5所示,水質電導率指標圍繞一個常數上下波動,是一個平穩序列。因此,不需要對時間序列進行差分,確定d=0。
(4)自相關圖和偏自相關圖
確定好階數d的選擇后,再確定ARIMA模型中的參數p與q。時間序列的自相關系數(ACF)與偏自相關系數(PACF)可以判斷參數p與q。 對平穩后的時間序列繪制自相關圖與偏自相關圖(圖6)。
自相關圖顯示自相關值基本沒有超過虛線邊界值,雖然有個別介數自相關值超出邊界,但很可能屬于偶然出現,其他均沒有超出顯著邊界。偏自相關圖顯示,基本上也沒有超過邊界值。可以考慮p=2,q=0,即ARIMA(2,0,0)模型。
(5)白噪聲檢驗
Box.test(arima200$residual,type="Box-Pierce",lag=5)
對殘差序列進行白噪聲檢驗,得出p值=0.457 2>0.05,殘差序列白噪聲檢驗說明,模型顯著成立,ARIMA(2,0,0) 模型對該時間序列擬合成功。
(6)模型預測
運用上述得到的 ARIMA(2,0,0)模型,調用forecast函數預測2019年11月20日—2019年12月7日數據。
predict.fore<-forecast(arima200,h=20)

圖6 水質電導率自相關圖和偏自相關圖Fig.6 ACF Diagram and PACF Diagram of Water Quality Conductivity
predict.fore
(7)模型擬合
使用auto.arima函數自動生成擬合參數進行擬合:
auto.arima(ddl)
auto.arima給出的建議參數是(2,0,0)(1,1,1)[12]
fit<-arima(data,order=c(2,0,0),seasonal=list(order=c(1,1,1),period=12)) #
擬合結果如圖7所示,實線為真實值,虛線為擬合值。

圖7 水質電導率真實值和擬合值Fig.7 Real Value and Fitted Value of Water Quality Conductivity
本文只描述了水質電導率指標誤差的BP神經網絡建模過程,其他幾個指標的建模過程類似不再描述。
(1)準備數據
通過ARIMA模型的擬合結果,可以生成323個由原始值減去擬合值的誤差數據以及對應每日嘉興市的氣溫、氣壓、降雨量作為訓練樣本數據。
(2)構建模型

(3)訓練模型
模型訓練部分R語言代碼片段如下。
# 讀取訓練數據
input <- read.csv("水質電導率誤差訓練樣本數據.csv",header=TRUE,sep=",")
# 設置訓練參數
dataCol <- “ddl_error_day1_before”
labelCol <- “ddl_error_now”
inputCols <-c(dataCol,“ddl_error_day2_before”,“ddl_error_day3_before”,“temperature”,“pressure”,“rainfall”)
# 設置訓練數據樣本比率
trainingSetRatio <-0.9
# 歸一化
Maxs <- apply(input,2,max)
Mins <- apply(input,2,min)
# 訓練神經網絡模型
net<-Training(input,trainingSetRatio,dataCol, labelCol,inputCols, 0.0111)
# 讀取驗證數據
ca_input <- read.csv("水質電導率誤差驗證數據.csv",header=TRUE,sep=",")
# 使用訓練好的模型驗證數據
predict<-Calibrate(net,ca_input,inputCols,Maxs,Mins,labelCol)
# 計算性能指標
label<-as.data.frame(ca_input[labelCol])
r2<-RSquare(predict,label)
mse<-Mse(predict,label)
運用模型預測統計分析方法,對比水質指標預測數據與實際水質指標監測數據,分別計算平均百分比誤差值[式(2)]、均方根誤差值[式(3)]、平均偏差值[式(4)],對水質預測數據準確率進行分析。
(2)
其中:MRE——平均百分比誤差;
Gi,o——實測值;
Gi,m——預測值;
n——數量。
(3)
其中:RMSE——均方根誤差;
Gi,o——實測值;
Gi,m——預測值;
n——數量。
(4)
其中:MBE——平均偏差;
Gi,o——代表實測值;
Gi,m——預測值;
n——數量。
分別利用建立的ARIMA模型預測嘉興某個水質站點2019年11月20日—2019年12月7日各項水質參數的值,得出某個水質站點電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮的預測數據分析結果,如圖8~圖13所示。

圖8 電導率預測分析預測結果對比Fig.8 Comparison Chart of Prediction Results of Conductivity Prediction Analysis

圖9 溶解氧預測分析預測結果對比Fig.9 Comparison Results of Dissolved Oxygen Prediction Analysis
將嘉興某個水質站點2019年11月20日—2019年12月7日各項水質參數(溶解氧、總磷、總氮、高錳酸鹽指數、氨氮)的實際監測數據和模型預測數據進行對比,分析MRE(平均百分比誤差)、RMSE(均方根誤差)、MBE(平均誤差)3個誤差統計參數,如表1所示。

圖10 總磷預測分析預測結果對比Fig.10 Comparison Results of Total Phosphorus Prediction Analysis

圖12 高錳酸鹽指數預測分析預測結果對比Fig.12 Comparison Chart of Prediction Results of Permanganate Index Prediction Analysis

圖11 總氮預測分析預測結果對比Fig.11 Comparison Results of Total Nitrogen Prediction Analysis

圖13 氨氮預測分析預測結果對比Fig.13 Comparison Chart of Prediction Results of Ammonia Nitrogen Prediction Analysis

表1 ARIMA水質預測數據模型統計分析Tab.1 Statistical Analysis of ARIMA Water Quality Forecast Data Model
分析各項水質監測指標的平均百分比誤差[式(2)],得出電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮對應指標的平均百分比誤差,分別為4.61%、13.50%、16.60%、40.77%、15.56%、38.59%。其中,總氮的平均百分比誤差最大,其次為氨氮、總磷、高錳酸鹽指數、溶解氧,電導率平均百分比誤差最小。
分析各項水質監測指標的均方根誤差[式(3)],得出電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮對應的均方根誤差,分別為25.019、1.066 0、0.026 2、1.472 5、0.890 5、0.148 1。其中,電導率的均方根誤差最大,其次為總氮、溶解氧、高錳酸鹽指數、氨氮,總磷的均方根誤差最小。
分析各項水質監測指標的平均誤差[式(4)],得出電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮對應的平均誤差,分別為-0.738、-0.082 5、-0.002 0、0.012 5、-0.020 0、-0.010 0。其中,電導率的平均誤差絕對值最大,其次為總氮、溶解氧、高錳酸鹽指數、氨氮,總磷的平均誤差絕對值最小。

圖14 電導率預測分析預測結果對比Fig.14 Comparison Results of Conductivity Prediction Analysis

圖16 總磷預測分析預測結果對比Fig.16 Comparison Results of Total Phosphorus Prediction Analysis

圖18 高錳酸鹽指數預測分析預測結果對比Fig.18 Comparison Results of Permanganate Index Prediction Analysis

圖15 溶解氧預測分析預測結果對比Fig.15 Comparison Results of Dissolved Oxygen Prediction Analysis

圖17 總氮預測分析預測結果對比Fig.17 Comparison Results of Total Nitrogen Prediction Analysis

圖19 氨氮預測分析預測結果對比Fig.19 Comparison Chart of Prediction Results of Ammonia Nitrogen Prediction Analysis
利用建立的ARIMA模型和改進的BP神經網絡模型組合方式,預測嘉興某個水質站點2019年11月20日—2019年12月7日各項水質參數的值,得出某個水質站點電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮的預測數據分析結果,如圖14~圖19所示。
將嘉興某個水質站點2019年11月20日—2019年12月7日各項水質參數(溶解氧、總磷、總氮、高錳酸鹽指數、氨氮)的實際監測數據和模型預測數據進行對比,分析MRE(平均百分比誤差)、RMSE(均方根誤差)、MBE(平均誤差)3個誤差統計參數,如表2所示。

表2 水質預測數據模型統計分析Tab.2 Statistical Analysis of Water Quality Forecast Data Model
分析各項水質監測指標的平均百分比誤差[式(2)],得出電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮對應的平均百分比誤差,分別為2.23%、5.49%、8.64%、31.86%、5.23%、22.61%。其中,總氮的平均百分比誤差最大,其次為氨氮、總磷、溶解氧、高錳酸鹽指數,電導率平均百分比誤差最小。
分析各項水質監測指標的均方根誤差[式(3)],得出電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮對應的均方根誤差,分別為15.607 6、0.451 0、0.015 2、1.305 5、0.271 4、0.105 7。其中,電導率的均方根誤差最大,其次為總氮、溶解氧、高錳酸鹽指數、氨氮,總磷的均方根誤差最小。
分析各項水質監測指標的平均誤差[式(4)],得出電導率、溶解氧、總磷、總氮、高錳酸鹽指數、氨氮對應的平均誤差,分別為0.137 5、0.153 0、-0.005 0、0.008 5、-0.049 5、0.050 8。其中,溶解氧的平均誤差絕對值最大,其次為電導率、氨氮、高錳酸鹽指數、總氮,總磷的平均誤差絕對值最小。
從試驗結果看,使用ARIMA-BP組合模型預測的各項指標的平均百分比誤差和均方根誤差比單獨使用ARIMA模型預測的各項指標的平均百分比誤差和均方根誤差有顯著的減小。因此,采用ARIMA模型預測水質的線性規律,用改進的BP神經網絡預測水質的非線性規律,形成的組合模型預測水質指標,達到優勢互補。相對于單一模型,該模型不但預測精度高、結果也更為可靠、合理,是實現科學分析水質監測數據的重要依據。
(1)使用ARIMA、BP神經網絡對嘉興某個水質站點2019年11月20日—2019年12月7日的水質各項參數進行預測。試驗結果表明,與傳統的ARIMA預測模型相比,ARIMA-BP組合模型相結合的方法對水質的預測達到了更好的趨勢和精度。
(2)未來的研究方向:可以考慮使用集成算法將ARIMA算法和更加復雜的神經網絡算法進行結合,使用組合模型;同時,提取水質數據的線性和非線性規律,達到更好的預測效果。