国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于 ARIMA 模型與 3 σ 準則的取水異常檢測方法

2022-03-09 04:44趙和松王圓圓孫愛民
水利信息化 2022年1期
關(guān)鍵詞:平穩(wěn)性用水算法

趙和松 ,王圓圓 ,孫愛民

(1.水利部信息中心,北京 100053;(2.北京金水信息技術(shù)發(fā)展有限公司,北京 100053;(3.河海大學計算機與信息學院,江蘇 南京 211100)

0 引言

截至 2021 年 1 月統(tǒng)計的國家水資源監(jiān)控能力建設項目一期建設水資源取用水監(jiān)測點約為 17 000 個,每年產(chǎn)生近 1.5 億條監(jiān)測記錄,這些監(jiān)測值存在超出預設極值等異?,F(xiàn)象,也存在缺報漏報情況。隨著取水點的不斷增加、取水設備的不斷改進和取水周期的不斷縮小,判斷這些異常值和預設極值的難度越來越大,同時也加大了對今后取用水的規(guī)劃難度。異常值[1]是指偏離于大部分數(shù)據(jù)集的數(shù)據(jù),產(chǎn)生這部分數(shù)據(jù)的原因有很多,因此需要對其進行異常檢測,找出原因。

目前對于檢測數(shù)據(jù)的異常判別種類比較單一,主要是基于有限的業(yè)務規(guī)則和傳統(tǒng)統(tǒng)計學的人工判別方法。人工判別方法先通過日取水量數(shù)據(jù)的業(yè)務邏輯規(guī)則進行數(shù)據(jù)清洗和預處理,再通過統(tǒng)計學的方法判斷數(shù)據(jù)是否異常。這種方法需要消耗大量的人力、時間和財力,而且處理效率低下,不能及時檢測出異常數(shù)據(jù),也不能對異常數(shù)據(jù)給出合理的參考修正值。

近年來,隨著機器學習在數(shù)據(jù)挖掘、自然語言處理和語音識別等領域的快速發(fā)展,取用水異常分析成為機器學習的一種應用領域,相比傳統(tǒng)的統(tǒng)計方法和簡單的規(guī)則,取用水異常分析技術(shù)能夠更好地識別偏離分布規(guī)律等的復雜異常。通過對水資源取用水監(jiān)測數(shù)據(jù)進行橫向和縱向分析,深度挖掘規(guī)律,取用水異常分析技術(shù)可精準識別異常值。對于簡單的異常,則在數(shù)據(jù)清洗過程中設置規(guī)則直接過濾。因此,取用水異常分析技術(shù)能明顯提高取用水數(shù)據(jù)采集的整體和數(shù)據(jù)等質(zhì)量評價工作的效率。

異常檢測也稱為異常挖掘[2],即從數(shù)據(jù)集中找出異常值。異常值可以分為單變量和多變量異常值。當查看單個特征空間中的值分布時,可以找到單變量異常值;多變量異常值可以在n維空間中找到。

異常值檢測有很多方法,主要包括:

1)基于 k-means 算法的異常檢測。k-means 算法[3]是無監(jiān)督的聚類算法,對于給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個簇,將不屬于簇內(nèi)的點判定為異常點。k-means 算法過度依賴簇的選取,因此正確率和效率都不高。

2)基于距離的異常值檢測。這種檢測方法規(guī)定如果 1 個數(shù)據(jù)點的周圍沒有其他的點,可認為這是1 個異常點。Ngo 等[4]提出針對時間序列可變長度的異常檢測算法,該方法的時間復雜度小,但對于局部存在的異常點,檢測效果不佳。

3)基于密度的異常值檢測[5]。該檢測方法通過研究對象及其相鄰對象的密度進行異常檢測,但需要將對象周圍的密度與其局部周圍的密度進行比較,因此需要較高的時間復雜度。

4)基于時間序列數(shù)據(jù)的異常值檢測模型方法。牛麗肖等[6]提出一種基于小波變換和差分整合移動平均自回歸模型(ARIMA)[7]的短期電價混合預測模型,該模型能夠很好地檢測出突變點,但對時間序列的非線性部分檢測仍然存在不足。單偉等[8]采用自相關(guān)和偏自相關(guān)系數(shù)的拖尾建立 AIRMA 模型,并用于預測和異常檢測,這種方法是假定數(shù)據(jù)集符合所用的模型,存在著很大的局限性。孫建樹等[9]提出基于 ARIMA-SVM 的水文時間序列異常值檢測方法,該方法能很好地處理線性部分的數(shù)據(jù),同時使用支持向量回歸(SVR),但可能導致異常值不能被完全檢測出來。丁小歐等[10]提出基于相關(guān)性的異常檢測算法,實現(xiàn)對復雜模式的異常數(shù)據(jù)精準識別,但對于有限標簽的弱監(jiān)督異常檢測方法需要進一步改進。任勛益等[11]提出一種基于向量機和主元分析的異常檢測,在異常數(shù)據(jù)較多時,檢測效果并不好。溫粉蓮[12]利用K均值聚類算法對歷史數(shù)據(jù)進行劃分,同時利用曲線擬合和 ARIMA 得出數(shù)據(jù)中的異常值,能夠較好地發(fā)現(xiàn)異常數(shù)據(jù)。胡珉等[13]總結(jié)現(xiàn)有多維時間序列異常算法,提出異常檢測的研究難點和趨勢。

基于上述內(nèi)容,本研究基于 ARIMA 對用水異常值進行檢測,使用高斯分布的 3σ準則判斷日取水量中的異常值,并通過時間序列分解算法 STL[14]判斷異常值附近的取水量趨勢。

1 取水異常檢測預備知識

1.1 ARIMA 模型

ARIMA 模型中,AR 是自回歸,MA 為滑動平均。模型的基本思想是用現(xiàn)有的平穩(wěn)時間序列數(shù)據(jù)去預測將來的值,即通過現(xiàn)有的穩(wěn)定時間序列數(shù)據(jù)求出未來的數(shù)據(jù)。ARIMA 模型表示為式中:p為預測模型中采用的時間序列數(shù)據(jù)本身的滯后數(shù);q為預測模型中采用的預測誤差的滯后數(shù):Фi為自回歸參數(shù);θi為移動平均的參數(shù);εt為誤差項,通常是獨立的;Xt為時間序列數(shù)據(jù);d為時間序列數(shù)據(jù)需要進行差分的次數(shù),d∈Z,d >0;L為滯后算子。

本研究構(gòu)建 ARIMA 模型的步驟如下:

1)對時間序列數(shù)據(jù)進行預處理和清洗。

2)對時間序列數(shù)據(jù)進行平穩(wěn)性處理,如果數(shù)據(jù)為平穩(wěn)性數(shù)據(jù),則進入下一步,如果日取水量數(shù)據(jù)為非平穩(wěn)性數(shù)據(jù),則通過差分的方法進行處理,直到該數(shù)據(jù)為平穩(wěn)性數(shù)據(jù),同時差分的次數(shù)為模型參數(shù)d的值。

3)確定 ARIMA 模型中參數(shù)p,q的值,將數(shù)據(jù)輸入自相關(guān)和偏相關(guān)函數(shù)可以得到p和q的取值范圍,從而找出最優(yōu)的參數(shù)p和q。

4)確定 ARIMA 模型的擬合函數(shù),通過函數(shù)可以確定該時間序列的整體走勢。

1.2 3 σ 準則

若隨機變量X服從 1 個位置參數(shù)為μ(均值)、尺度參數(shù)為σ(標準偏差)的概率分布,且其概率密度函數(shù)為

則這個隨機變量為正態(tài)隨機變量,正態(tài)隨機變量服從正態(tài)分布,即高斯分布,記作X~N(μ,σ2)(N為樣本數(shù)),其概率密度函數(shù)圖像如圖1 所示。

圖1 高斯分布概率函數(shù)曲線圖

3σ準則是先假設 1 組檢測數(shù)據(jù)只含有隨機誤差,對其進行計算處理得到σ和μ,確定 1 個區(qū)間(μ- 3σ,μ+ 3σ),該組數(shù)據(jù)在(μ- 3σ,μ+ 3σ)區(qū)間的概率為 99%,即可將超過這個區(qū)間的值判定為異常值。

1.3 STL 算法

STL 為時間序列分解中一種常見的算法,將時間序列的某一時刻數(shù)據(jù)Yi分解成趨勢分量Yt、周期分量Ys和余項Yr,即:

式中:i的取值為所有大于 0 的正整數(shù),且該模型為加法模型,分解的分量互不影響。

本研究通過 STL 分解時間序列數(shù)據(jù),觀察時間序列數(shù)據(jù)的走勢。

2 取水異常檢測方法

取水異常檢測方法主要分為數(shù)據(jù)的收集和預處理、模型參數(shù)的確定及實驗結(jié)果分析等 3 個部分,取水異常檢測模型建立的流程圖如圖2 所示。

圖2 取水異常檢測方法建立過程

2.1 數(shù)據(jù)預處理

本研究的數(shù)據(jù)分為兩部分:第一部分數(shù)據(jù)是來自帶有異常標簽的時間序列數(shù)據(jù),用于對實驗模型的檢驗,且該部分數(shù)據(jù)不需要進行預處理;第二部分數(shù)據(jù)是水利部門收集的全國 15 000 個取水點的1.5 億條取水數(shù)據(jù),需進行預處理及缺失數(shù)據(jù)的填充。數(shù)據(jù)預處理及填充規(guī)則如下:

1)清洗取水量小于 0 的日取水量的值,使用該日前后 3 d 的平均值代替;

2)清洗取水量為空的值,使用該日前后 3 d 的平均值代替;

3)清洗取水量為 NA(無值)的值,使用該日前后 3 d 的平均值代替;

4)清洗日取水量為重復出現(xiàn)的值,直接將重復值刪去;

5)清洗小時取水量數(shù)據(jù)出現(xiàn)日期推后的數(shù)據(jù);

6)清洗當天的小時取水量累計值與當天日取水量不符的值,并用當天的小時取水量累計值作為日取水量數(shù)據(jù);

7)小時取水量重復出現(xiàn)超過一定次數(shù)需要根據(jù)預處理結(jié)果進行優(yōu)化,現(xiàn)階段根據(jù)七點控制原則,擬定為連續(xù)出現(xiàn)大于等于 7 次需要優(yōu)化;

8)以同種類型的用水戶對應的正常取用水量數(shù)據(jù)為分析依據(jù),清洗數(shù)據(jù)與正常取用水量不符合的日取水量數(shù)據(jù)(用例本身被其他的條件所覆蓋)。

預處理后的數(shù)據(jù)需進行平穩(wěn)性判斷,通常采用單位根檢驗法判斷。如果數(shù)據(jù)為平穩(wěn)性數(shù)據(jù)則不做處理,否則對時間序列數(shù)據(jù)做差分處理,每次差分后都要進行平穩(wěn)性判斷,直到最后的數(shù)據(jù)具有平穩(wěn)性,同時記錄差分次數(shù)。

2.2 模型參數(shù)確定

ARIMA 模型中有參數(shù)p,d,q,對第一部分數(shù)據(jù)進行平穩(wěn)性處理時記錄的差分次數(shù)即模型參數(shù)d的值,通過自相關(guān)和偏相關(guān)函數(shù)圖像中曲線與置信區(qū)間的交點求出參數(shù)p和q的值。

確定 ARIMA 模型參數(shù)的值,則可以擬合出時間序列數(shù)據(jù)趨勢圖,使用 3σ準則判斷原始數(shù)據(jù)與擬合數(shù)據(jù)殘差,如果殘差在區(qū)間(μ-3σ,μ+ 3σ),則判定為正常值,否則為異常值。

使用 STL 算法可以得到該時間序列的點在時間上的分布走勢,如果 2 個離得很近的異常值在該時間區(qū)間上存在上升或下降的趨勢,則可以判斷該區(qū)間上所有的時間序列的點為異常點,這樣可以很好地彌補漏判的情況。

2.3 結(jié)果分析

通過異常值及擬合曲線能夠判斷模型的準確程度,若擬合較好,則說明模型可以對異常值提供較好的參考修正值,且通過異常值的判斷可分析取水點產(chǎn)生異常數(shù)據(jù)的原因。

3 取水異常檢測實驗

為驗證基于 ARIMA 模型與 3σ準則的取水異常檢測方法的有效性,說明本研究提出的模型可以對異常值提供較好的參考修正值,且通過異常值的判斷可分析取水點產(chǎn)生異常數(shù)據(jù)的原因,取兩部分數(shù)據(jù)中具有代表性取水點的數(shù)據(jù)用于實驗數(shù)據(jù)分析,研究提出的方法在數(shù)據(jù)中的表現(xiàn)。

本研究實驗環(huán)境具體如下:CPU 為 Inter Corei5-7500,內(nèi)存為 4 GB,操作系統(tǒng)為 Ubuntu18.04,軟件使用 MySQL,Python,研究模型在 Pycharm 平臺上開發(fā)并調(diào)試。

3.1 實驗一

取 6 組來自雅虎帶標簽的時間序列的數(shù)據(jù),選取其中具有代表性的數(shù)據(jù),具體過程分析如下:

1)對 6 組數(shù)據(jù)進行平穩(wěn)性檢測,即 ADF 檢測(單位根檢驗),變量為數(shù)據(jù)中自帶的標簽,計算得到的平穩(wěn)性數(shù)據(jù)參數(shù)值如表1 所示,表中:K為延遲的具體數(shù)值;T為統(tǒng)計量;P為統(tǒng)計量對應的概率值;C1,C2,C3分別為 3 個置信度(1%,5%,10%)的臨界統(tǒng)計值。

表1 平穩(wěn)性數(shù)據(jù)參數(shù)及值

2)對帶有異常標簽的雅虎的數(shù)據(jù)集進行平穩(wěn)性檢測,可以得到統(tǒng)計量的值顯著小于 3 個置信度(1%,5%,10%)的臨界統(tǒng)計值,所以該組數(shù)據(jù)是平穩(wěn)性時間序列數(shù)據(jù)。

得到的自相關(guān)和偏相關(guān)函數(shù)圖像分別如圖3 和4 所示,其中,水平虛線是為了在特定的函數(shù)相關(guān)性取值時取相關(guān)系數(shù)的值。這 2 個圖說明:通過自相關(guān)和偏相關(guān)函數(shù)圖像可以求出自相關(guān)系數(shù)p的值可能為 351 或 352,偏相關(guān)函數(shù)系數(shù)q的值可能為 5 或 6。通過對參數(shù)p,d,q的組合,可以得到ARIMA模型的最佳參數(shù)組合為(352,0,5)。

圖3 自相關(guān)函數(shù)圖像

圖4 偏相關(guān)函數(shù)圖像

3)通過 ARIMA 模型中的擬合函數(shù)求出該時間序列的擬合趨勢,得到的時間序列數(shù)據(jù)擬合曲線如圖5 所示。從圖5 可以看出預測值和真值能夠較好地擬合在一起,說明 ARIMA 模型效果較好。然后通過擬合曲線中的擬合值和原始值作差得到殘差,最后通過 3σ準則判斷殘差是否在區(qū)間(μ-3σ,μ+3σ),即可以求出異常值。

圖5 時間序列數(shù)據(jù)擬合曲線

4)通過 STL 算法將時間序列數(shù)據(jù)分解為趨勢分量Yt、周期分量Ys和余項Yr,分解的結(jié)果圖如圖6所示。

圖6 STL 分解圖

圖 a 中,可以通過觀察 2 個離得很近的異常值在該時間區(qū)間存在的趨勢,判斷該區(qū)間上所有的時間序列是否有異常點;圖 b 可看出數(shù)據(jù)潛在的周期性;圖 c 可看出當有非平緩趨勢被檢測到,原始數(shù)據(jù)去除周期、趨勢后,殘差項將增加一段陡坡。

5)使用 ARIMA 模型、3σ準則及時間序列分解算法進行分析,定義TPR為真正類率,又叫真陽率,代表預測是異常實際也是異常的樣本數(shù)占實際總異常數(shù)的比值,即該值越大性能越好。定義FPR為假正類率,又叫假陽率,代表預測是異常但實際是正常的樣本數(shù)占實際正??倲?shù)的比值,即該值越小性能越好。定義TNR為真陰率,表示預測對的負樣本數(shù)占全體負樣本數(shù)的比例,TNR= 1-FPR。TP,F(xiàn)N,F(xiàn)P,TN的具體定義如表2 所示。

表2 異常檢測結(jié)果分類

以具有代表性的 3 組帶有異常標簽的數(shù)據(jù)集進行實驗分析,實驗結(jié)果如表3 所示。

表3 實驗結(jié)果

TP在總樣本中有較高的比例,而TN占比較低,說明模型判定標簽的正確率較高,模型有良好的可用性,TPR均值在 80% 以上,并且TNR誤差率在 0.60% 內(nèi),說明模型性能良好,對時間序列數(shù)據(jù)異常檢測有較高的準確性。

3.2 實驗二

通過異常檢測分析,取汕頭市自來水公司2013 年度(該年度的數(shù)據(jù)具有代表性)日取水量進行分析,分析流程如下:

1)對實驗數(shù)據(jù)進行預處理。

2)對數(shù)據(jù)進行平穩(wěn)性檢測,可以得到該取水點數(shù)據(jù)是平穩(wěn)性時間序列數(shù)據(jù),也可以得到模型參數(shù)d的值為 0。檢測結(jié)果如表4 所示。

表4 平穩(wěn)性數(shù)據(jù)參數(shù)及值

3)通過自相關(guān)和偏相關(guān)函數(shù),求出p的值為 4 或 5,q的值為 1 或 2,函數(shù)圖像分別如圖7 和 8 所示。

圖7 自相關(guān)函數(shù)圖像

圖8 偏相關(guān)函數(shù)圖像

4)通過組合參數(shù)p,d,q的值可以找到ARIMA 的最佳組合(4,0,2),擬合曲線圖和原始數(shù)據(jù)并通過時間序列分解算法分解趨勢,得到的擬合曲線如圖9 所示,分解圖如圖10 所示。

圖9 時間序列數(shù)據(jù)擬合曲線

圖10 STL 分解圖

5)通過 3σ準則和 STL 分解的趨勢圖可以判斷異常值,并通過擬合曲線給出異常值的參考修正值。異常值及參考修正值信息如表5 所示。

表5 取水異常值及參考修正值

通過汕頭市自來水公司 2013 年度的取水異常檢測流程,可以找出其他取水機構(gòu)(如石梁水庫、通遼熱電有限公司、重慶市渝寧水利水電站開發(fā)有限公司等取水點)的異常檢測結(jié)果,最終結(jié)果如表6 所示。

表6 取水異常時間及參考修正值

4 異常值原因分析

日取水量數(shù)據(jù)的異常值可能導致取水數(shù)據(jù)的分析出現(xiàn)錯誤,影響取水點用水決策,以及取用水數(shù)據(jù)采集整體和數(shù)據(jù)等質(zhì)量評價工作的效率。因此,對于異常值的判斷可以很大程度地提高取用水的使用效率,通過判斷取水異常的原因,可改進取用水的采集方法。

異常數(shù)據(jù)可能產(chǎn)生的原因很多,經(jīng)過分析可能的原因如下:

1)取水設備的傳感器出現(xiàn)故障;

2)取水設備出現(xiàn)老化,導致取值結(jié)果出現(xiàn)較大的誤差;

3)取水點的取水操作員出現(xiàn)操作失誤;

4)出現(xiàn)自然災害等非人為因素,導致取水設備嚴重不符合取水的日常值。

通過對這些原因的分析,每個取水點可以針對產(chǎn)生異常值的原因進行改進,從而提高取水監(jiān)測數(shù)據(jù)的質(zhì)量。

5 結(jié)語

以取水異常檢測實驗為依據(jù),本研究完整指出了以下內(nèi)容:ARIMA 模型能夠很好地模擬日取水量數(shù)據(jù)關(guān)于時間的走勢,通過 ARIMA 模型預測值和原始數(shù)據(jù)的差值可以很好地將時間序列數(shù)據(jù)轉(zhuǎn)化為非時間序列數(shù)據(jù);通過 3σ準則,可以判斷出異常值;最后通過 STL 分解取水的時間序列數(shù)據(jù),可以更好地判斷出異常值。

實驗結(jié)果表明:本研究可以較好地判斷出取用水數(shù)據(jù)中的異常值,滿足工業(yè)取水異常檢測的需求。未來工作可以對多維數(shù)據(jù)檢測做進一步研究,并逐步提高異常樣本的檢測率。

猜你喜歡
平穩(wěn)性用水算法
哪些火災不能用水撲滅?
哪種算法簡便
校園宿舍洗浴用水余熱回收節(jié)能分析
節(jié)約洗碗用水
城軌車輛運行平穩(wěn)性狀態(tài)監(jiān)測與性能演化分析*
不同計算時間下的平穩(wěn)性指標對比研究
CR400AF動車組車載平穩(wěn)性監(jiān)控裝置誤報警分析處理
Travellng thg World Full—time for Rree
進位加法的兩種算法
廣州地鐵電客車運行平穩(wěn)性測試及評價