劉 杰,房 俊,雷峰津
1.北方工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,北京100144
2.大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京100144
異常數(shù)據(jù)(Outlier)的定義由Hawkins 于1980 年給出,它指的是在數(shù)據(jù)集中偏離絕大部分?jǐn)?shù)據(jù)的數(shù)據(jù),由于其偏離了絕大多數(shù)數(shù)據(jù)以至于人們常常懷疑這些數(shù)據(jù)是由與大多數(shù)數(shù)據(jù)完全不同的機(jī)制產(chǎn)生的[1]。
電能質(zhì)量異常數(shù)據(jù)檢測(cè)識(shí)別作為國(guó)家電網(wǎng)“電網(wǎng)諧波監(jiān)測(cè)分析模塊”的重要研究?jī)?nèi)容,其在電網(wǎng)安全隱患發(fā)現(xiàn),運(yùn)維檢修輔助決策等方面起著至關(guān)重要的作用。從長(zhǎng)期(如季、年)來看,電網(wǎng)系統(tǒng)是一個(gè)不斷變化的系統(tǒng);從短期(如天、月)來看,它是一個(gè)相對(duì)穩(wěn)定的系統(tǒng),同一個(gè)監(jiān)測(cè)點(diǎn)的同一指標(biāo)數(shù)據(jù)都以天為周期呈現(xiàn)規(guī)律性的變化,具有一定的時(shí)序特性,如圖1 所示(數(shù)據(jù)來源:由國(guó)家電網(wǎng)“電網(wǎng)諧波監(jiān)測(cè)分析模塊”采集的2018年6月1日至4日電壓偏差數(shù)據(jù))。
圖1 電壓偏差日數(shù)據(jù)變化對(duì)比
目前數(shù)據(jù)異常識(shí)別方法主要有經(jīng)驗(yàn)閾值法、基于數(shù)據(jù)挖掘的方法和基于數(shù)理統(tǒng)計(jì)的方法[2-3]。經(jīng)驗(yàn)閾值的確定具有一定的主觀性,一旦閾值確定就不輕易更改;基于數(shù)據(jù)挖掘方法通常是根據(jù)數(shù)據(jù)的特點(diǎn)進(jìn)行建模,然后進(jìn)行數(shù)據(jù)的異常檢測(cè);基于數(shù)理統(tǒng)計(jì)的方法要求數(shù)據(jù)具備一定的統(tǒng)計(jì)特性,服從一定的分布[2-5]。由于電能質(zhì)量數(shù)據(jù)的特殊性和以上方法自身的局限性,無論是經(jīng)驗(yàn)閾值、數(shù)據(jù)挖掘還是數(shù)理統(tǒng)計(jì)方法都無法完整、有效地識(shí)別出電能質(zhì)量數(shù)據(jù)中的異常數(shù)據(jù)。
控制圖(如圖2 所示)是一種將顯著性統(tǒng)計(jì)原理應(yīng)用于控制生產(chǎn)過程的圖形方法[6-7]。它利用從可重復(fù)過程所得到的數(shù)據(jù),建立由中心線(CL)、上控制線(UCL)和下控制線(LCL)組成的一個(gè)帶狀區(qū)域來識(shí)別過程的穩(wěn)定性和控制過程的調(diào)整。控制圖在建立上下控制線的過程中會(huì)剔除訓(xùn)練數(shù)據(jù)中的異常數(shù)據(jù),使控制線處于穩(wěn)定狀態(tài)。在在線數(shù)據(jù)異常檢測(cè)過程中,過程控制圖可以在O(1)時(shí)間復(fù)雜度內(nèi)滾動(dòng)更新控制線。統(tǒng)計(jì)控制圖方法成熟,在生產(chǎn)程序控制中得到廣泛運(yùn)用并取得良好效果,其經(jīng)驗(yàn)參數(shù)具有很好的實(shí)用價(jià)值,并形成了相關(guān)國(guó)標(biāo)[7-8]。
圖2 傳統(tǒng)控制示意圖
控制圖在生產(chǎn)過程控制和產(chǎn)品質(zhì)量檢測(cè)中都有廣泛的運(yùn)用,在這些運(yùn)用領(lǐng)域,數(shù)據(jù)大多均值恒定,樣本總體服從正態(tài)分布。但是,電能質(zhì)量數(shù)據(jù)與工業(yè)生產(chǎn)產(chǎn)生的數(shù)據(jù)存在較大差別:(1)電能質(zhì)量數(shù)據(jù)呈現(xiàn)周期性變化的特點(diǎn);(2)短時(shí)間內(nèi)的數(shù)據(jù)波動(dòng)范圍較大(如圖1 所示)。因此,傳統(tǒng)控制圖在對(duì)具備上述特征的數(shù)據(jù)的異常檢測(cè)方面適應(yīng)性較差。本文根據(jù)電能質(zhì)量數(shù)據(jù)的特點(diǎn),結(jié)合控制圖和時(shí)間序列數(shù)據(jù)預(yù)測(cè),對(duì)控制圖進(jìn)行了改進(jìn),提出了基于控制圖的動(dòng)態(tài)閾值電能質(zhì)量異常數(shù)據(jù)在線檢測(cè)方法。
本文的主要?jiǎng)?chuàng)新點(diǎn)有:
(1)改進(jìn)控制圖中控制線的計(jì)算方式,將控制圖控制線化直為曲,以適應(yīng)數(shù)據(jù)的變化趨勢(shì)。
(2)將控制圖和時(shí)間序列預(yù)測(cè)相結(jié)合,實(shí)現(xiàn)控制圖控制線的動(dòng)態(tài)調(diào)整,實(shí)現(xiàn)電能質(zhì)量異常數(shù)據(jù)的在線檢測(cè)。
從Hawkins 提出異常數(shù)據(jù)的概念開始,很多專家和學(xué)者分別針對(duì)各自面對(duì)的研究問題提出了不同的異常數(shù)據(jù)的檢測(cè)算法和檢測(cè)思路,其中也不乏針對(duì)電力行業(yè)數(shù)據(jù)的異常檢測(cè)研究,但是這些方法都無法完整、有效地檢測(cè)出電能質(zhì)量數(shù)據(jù)中的異常數(shù)據(jù)。根據(jù)待檢測(cè)數(shù)據(jù)的有序性可將這些檢測(cè)辦法分為無序數(shù)據(jù)集的異常檢測(cè)和有序數(shù)據(jù)集的異常檢測(cè)兩類。
無序數(shù)據(jù)集的異常檢測(cè)方法大致可分為基于數(shù)理統(tǒng)計(jì)的異常檢測(cè)方法和基于數(shù)據(jù)挖掘的異常檢測(cè)方法?;跀?shù)理統(tǒng)計(jì)的異常檢測(cè)方法以統(tǒng)計(jì)學(xué)的統(tǒng)計(jì)量作為判斷異常值的準(zhǔn)則,其基本思路是假定數(shù)據(jù)服從某種分布,然后建立概率模型,并將低概率區(qū)的數(shù)據(jù)判定為異常值。相關(guān)文獻(xiàn)有[4-5,9-11]。文獻(xiàn)[4]針對(duì)總體樣本方法確定的異常閾值受樣本隨機(jī)不確定性影響較大以及總體樣本方法對(duì)正常數(shù)據(jù)波動(dòng)正常數(shù)據(jù)波動(dòng)檢測(cè)失效問題,提出了一種基于云模型檢測(cè)諧波電流異常數(shù)據(jù)的方法;文獻(xiàn)[5]針對(duì)諧波電流監(jiān)測(cè)數(shù)據(jù)經(jīng)常偏離正態(tài)分布,利用正態(tài)分布確定的異常閾值不適用問題,采用三參數(shù)威布爾分布模型確定異常數(shù)據(jù)閾值;文獻(xiàn)[9]通過對(duì)供電端和用戶端的數(shù)據(jù)計(jì)算用戶用電欺詐系數(shù),實(shí)現(xiàn)異常檢測(cè);文獻(xiàn)[10]通過計(jì)算數(shù)據(jù)協(xié)方差矩陣中元素的變化實(shí)現(xiàn)異常數(shù)據(jù)的檢測(cè);文獻(xiàn)[11]利用中位數(shù)原理估計(jì)方差殘差序列的期望和方差實(shí)現(xiàn)了數(shù)據(jù)的異常檢測(cè);文獻(xiàn)[12]提出了一種動(dòng)態(tài)閾值的變壓器異常狀態(tài)檢測(cè)算法,通過計(jì)算不同電壓等級(jí)、裝機(jī)容量下變壓器運(yùn)行參數(shù)閾值,并計(jì)算不同狀態(tài)發(fā)生的概率來實(shí)現(xiàn)異常檢測(cè)。基于數(shù)據(jù)挖掘的異常值檢測(cè)方法較多,但是基本可以歸為分類和聚類兩類,基于分類的異常檢測(cè)需要大量的異常數(shù)據(jù)樣本;基于聚類的異常檢測(cè)結(jié)果受聚類結(jié)果的影響較大,如果聚類簇結(jié)果較差,異常檢測(cè)結(jié)果也較差;異常點(diǎn)對(duì)聚類個(gè)數(shù)敏感,不同的聚類簇個(gè)數(shù)可能會(huì)導(dǎo)致識(shí)別出差異較大的異常點(diǎn)。相關(guān)參考文獻(xiàn)有[13-14]。文獻(xiàn)[13]針對(duì)快速密度峰值聚類算法用于異常值檢測(cè)時(shí)未考慮數(shù)據(jù)的局部特點(diǎn)以及局部密度依賴于截?cái)嗑嚯x選取的不足,提出了基于KNN 的快速密度峰值異常檢測(cè)算法;文獻(xiàn)[14]提出了一種基于神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)建模方法識(shí)別火電廠中鍋爐的異常行為,但其實(shí)質(zhì)還是對(duì)數(shù)據(jù)進(jìn)行分類。
有序數(shù)據(jù)集的異常檢測(cè)方法主要是時(shí)間序列檢測(cè)算法?;舅枷胧菍?duì)時(shí)間序列進(jìn)行預(yù)測(cè),然后通過估計(jì)值與測(cè)量值的差值來確定異常值。相關(guān)文獻(xiàn)有[15-17]。文獻(xiàn)[15]采用基于高階統(tǒng)計(jì)量的時(shí)間序列挖掘算法檢測(cè)異常數(shù)據(jù),但閾值的確定受滑動(dòng)窗口大小的影響。文獻(xiàn)[16]提出了一種基于時(shí)間序列提取和維諾圖的異常數(shù)據(jù)檢測(cè)方法,但是該方法適用于高維電能質(zhì)量數(shù)據(jù)的異常檢測(cè),并且方法中的重要點(diǎn)分段時(shí)間序列提取算法中參數(shù)k 的選擇對(duì)結(jié)果影響較大;文獻(xiàn)[17]提出了一種基于數(shù)據(jù)曲線斜率變化率進(jìn)行異常檢測(cè)的辦法,其本質(zhì)是突變檢測(cè)。
控制圖在電力行業(yè)的研究相對(duì)較少,文獻(xiàn)[18]提出了基于控制圖的電能質(zhì)量數(shù)據(jù)動(dòng)態(tài)限值分析方法,是控制圖在電能質(zhì)量數(shù)據(jù)分析中的典型應(yīng)用,但是其研究的時(shí)間窗口較大(如:月、季、年),通過該方法得到的限值仍然無法有效識(shí)別出更小時(shí)間窗口內(nèi)(如:天)的異常值;文獻(xiàn)[19]給出了一種根據(jù)數(shù)據(jù)變化周期動(dòng)態(tài)調(diào)整異常值閾值的方法(本文簡(jiǎn)稱周期模型法),但是該方法主要是從整體上判定某一天狀態(tài)是否可控,而非檢測(cè)某一天的所有數(shù)據(jù)是否異常。
在使用控制圖進(jìn)行異常數(shù)據(jù)檢測(cè)前,首先需要利用歷史數(shù)據(jù)對(duì)控制圖進(jìn)行訓(xùn)練使其達(dá)到初始穩(wěn)態(tài)。在利用具備周期性變化規(guī)律、數(shù)據(jù)波動(dòng)范圍大的特點(diǎn)的電能質(zhì)量數(shù)據(jù)進(jìn)行控制圖訓(xùn)練時(shí),由于數(shù)據(jù)波動(dòng)較大,大量數(shù)據(jù)會(huì)被整組剔除以至于幾乎無法達(dá)到初始穩(wěn)態(tài),因此具備上述特點(diǎn)的原始電能質(zhì)量數(shù)據(jù)不能用于計(jì)算控制圖的控制線,傳統(tǒng)控制圖對(duì)此類數(shù)據(jù)的異常識(shí)別適應(yīng)性較差。
雖然傳統(tǒng)控制圖在進(jìn)行具備周期性變化規(guī)律且波動(dòng)范圍較大的電能質(zhì)量數(shù)據(jù)異常檢測(cè)適應(yīng)性差,但是,結(jié)合數(shù)據(jù)的周期性變化規(guī)律,可以將控制圖的中心線化直為曲,用數(shù)據(jù)的變化趨勢(shì)線替代控制圖的中心線,然后計(jì)算出控制圖的上下控制線,通過判斷數(shù)據(jù)是否處于上線控制線之間而判斷數(shù)據(jù)是否異常,改進(jìn)控制圖示意圖如圖3所示。
圖3 改進(jìn)控制圖示意圖
利用如圖3 所示的改進(jìn)控制圖對(duì)電能質(zhì)量異常數(shù)據(jù)進(jìn)行在線檢測(cè)可分為兩個(gè)階段:第一階段為數(shù)據(jù)預(yù)處理及控制圖初始穩(wěn)態(tài)訓(xùn)練;第二階段利用穩(wěn)態(tài)控制圖對(duì)在線數(shù)據(jù)進(jìn)行異常檢測(cè)。整個(gè)電能質(zhì)量異常數(shù)據(jù)在線檢測(cè)任務(wù)可分為以下四個(gè)步驟:
(1)對(duì)電能質(zhì)量歷史數(shù)據(jù)進(jìn)行計(jì)算,獲得電能質(zhì)量數(shù)據(jù)變化趨勢(shì)數(shù)據(jù)(即改進(jìn)控制圖的中心線)。
(2)利用趨勢(shì)數(shù)據(jù)和電能質(zhì)量歷史數(shù)據(jù)訓(xùn)練控制圖,讓其達(dá)到初始穩(wěn)態(tài)。
(3)預(yù)測(cè)下一時(shí)刻的趨勢(shì)數(shù)據(jù)。經(jīng)過步驟(1)和步驟(2),控制圖已經(jīng)達(dá)到初始穩(wěn)態(tài)。此時(shí)如果已知下一時(shí)刻的電能質(zhì)量數(shù)據(jù)變化趨勢(shì)數(shù)據(jù),即可計(jì)算出控制圖上下控制線,通過對(duì)比下一時(shí)刻的實(shí)測(cè)數(shù)據(jù)和上下控制線的值就能判斷數(shù)據(jù)是否異常。但是,下一時(shí)刻的趨勢(shì)數(shù)據(jù)在當(dāng)前時(shí)刻無法直接獲得,因此需要對(duì)下一時(shí)刻的變化趨勢(shì)數(shù)據(jù)進(jìn)行預(yù)測(cè)。
(4)當(dāng)下一時(shí)刻電能質(zhì)量數(shù)據(jù)到達(dá)時(shí),檢測(cè)數(shù)據(jù)是否異常,如果正常則更新控制圖。
定義(平滑度SD)平滑度描述了二維平面中曲線L上相鄰兩個(gè)點(diǎn)之間數(shù)值的平均變化量。設(shè)L是二維平面上的一條曲線,P=(X,Y)是曲線L上的點(diǎn),令集合Points={pi,1 ≤i ≤n}是曲線上的n個(gè)點(diǎn),并且pi=(xi,yi),其中xi表示第i 個(gè)點(diǎn)的橫坐標(biāo),yi表示縱坐標(biāo),pi-1、pi、pi+1之間滿足關(guān)系式:xi-xi-1=xi+1-xi,則曲線L 的平滑度SD定義如下:
平滑度SD 越小,表示曲線越平滑,當(dāng)SD=0 時(shí),L退化成為一條水平直線。
雖然電能質(zhì)量數(shù)據(jù)變化波動(dòng)性較大,但數(shù)據(jù)變化具有一定的特點(diǎn):如圖4 所示,數(shù)據(jù)大致呈帶狀分布,數(shù)值的增減具有一定的趨勢(shì),并且原始數(shù)據(jù)在其趨勢(shì)線上下均勻分布。因此,數(shù)據(jù)趨勢(shì)線的計(jì)算可采用數(shù)據(jù)平滑的方法。常見的數(shù)據(jù)平滑算法有中值濾波、均值濾波、高斯濾波、移動(dòng)窗口最小二乘多項(xiàng)式平滑和滑動(dòng)平均值平滑[20]等,本文采用滑動(dòng)平均值平滑法對(duì)數(shù)據(jù)進(jìn)行平滑,算法如下所示。
圖4 電壓偏差日數(shù)據(jù)趨勢(shì)圖
算法1 數(shù)據(jù)平滑算法
Input:
souPoints,原始數(shù)據(jù)集
k,數(shù)據(jù)窗口大小,k >0
ε,平滑度控制下限,0 <ε <SD(原數(shù)據(jù)平滑度)
Output:
trendPoints,平滑后的數(shù)據(jù)集
1.begin
2.SD:=computeSD(souPoints);//計(jì)算原數(shù)據(jù)的平滑度
3.trendPoints=[]
4.while True:
5.if SD <ε:
6. break;
7.for i in range(souPoints.size()):
8. sum:=0;
9. if i <k:
10. for j in range(i):
11. sum:=sum+souPoints[i];
12. mean:=sum/k;
13. trendPoints.add(mean);
14. else if souPoints.size()-i <k:
15. for j from i to souPoints.size():
16. sum:=sum+souPoints[i];
17. mean:=sum/k;
18. trendPoints.add(mean);
19. else
20. for j from i-k/2 to i+k/2:
21. sum:=sum+souPoints[i];
22. mean:=sum/k;
23. trendPoints.add(mean);
24.end for
25.souPoints:=trendPoints
26.SD:=computeSD(souPoints)
27.end while
28.return trendPoints
29.end
在算法中用前k-1個(gè)周期的數(shù)據(jù)與當(dāng)前時(shí)刻的數(shù)據(jù)的均值來替代當(dāng)前時(shí)刻的數(shù)據(jù),其實(shí)質(zhì)是將當(dāng)前時(shí)刻平移k/2個(gè)周期。如果k 值過大,則平移的周期較長(zhǎng),平滑后數(shù)據(jù)與原數(shù)據(jù)誤差較大,無法作為原數(shù)據(jù)的趨勢(shì)數(shù)據(jù);如果k 值較小,局限性較大、平滑效果較低且容易受異常數(shù)據(jù)的干擾,如極端情況下k 取1 則平滑數(shù)據(jù)與原始數(shù)據(jù)一致,通常情況下,k 的取值建議控制在3 至8 之間,具體情況需看數(shù)據(jù)采樣周期而定。
ε控制著數(shù)據(jù)的平滑程度,其取值介于0和1倍原始數(shù)據(jù)的平滑度SD 之間,如果ε 取值太大,則平滑效果不明顯,尤其是數(shù)據(jù)出現(xiàn)抖動(dòng)的情況下,容易受抖動(dòng)數(shù)據(jù)的影響,不能正確反應(yīng)數(shù)據(jù)的變化趨勢(shì);當(dāng)ε 取值太小時(shí),數(shù)據(jù)平滑過渡,接近于一條水平直線,無法體現(xiàn)數(shù)據(jù)的波動(dòng)性,也不能作為原數(shù)據(jù)的趨勢(shì)數(shù)據(jù)。通常情況下,ε取值建議控制在0.2至0.5倍原數(shù)據(jù)的平滑度下。
通過對(duì)原始數(shù)據(jù)souPoints的平滑操作,得到原始數(shù)據(jù)的變化趨勢(shì)數(shù)據(jù)trendPoints。原始數(shù)據(jù)本身是非平穩(wěn)的,如果直接用原始數(shù)據(jù)訓(xùn)練控制圖可能用盡所有數(shù)據(jù)最終也無法使控制圖達(dá)到穩(wěn)態(tài),因此,將原始數(shù)據(jù)和趨勢(shì)數(shù)據(jù)中的每個(gè)對(duì)應(yīng)的點(diǎn)進(jìn)行差值運(yùn)算得到新的數(shù)據(jù)集dataSet={}用于控制圖的訓(xùn)練。差值運(yùn)算規(guī)則如下:
其中,psi和pti分別表示原始數(shù)據(jù)和趨勢(shì)數(shù)據(jù)的第i 個(gè)點(diǎn)。
控制圖的中心線和上下線的確定過程也是穩(wěn)態(tài)控制圖的訓(xùn)練過程,該過程需要經(jīng)歷數(shù)據(jù)分組、統(tǒng)計(jì)特征計(jì)算、判斷數(shù)據(jù)是否穩(wěn)定等過程,求解步驟如下:
(1)準(zhǔn)備歷史數(shù)據(jù)樣本并對(duì)樣本進(jìn)行分組。選取需要分析的某個(gè)指標(biāo)某粒度的歷史數(shù)據(jù)樣本,數(shù)據(jù)可分為m 組樣本組(m 的選擇參考文獻(xiàn)[6]中合理子組的選擇),每組數(shù)據(jù)點(diǎn)數(shù)為n(n >2),n的取值取決于分析窗寬。以電壓偏差為例,數(shù)據(jù)粒度為1 min,分析窗是0.5 h,則0.5 h 內(nèi)的數(shù)據(jù)為一組,每組數(shù)據(jù)點(diǎn)數(shù)n=30,假如取25組數(shù)據(jù),則訓(xùn)練樣本的時(shí)間跨度是12.5 h。
(2)對(duì)每組數(shù)據(jù)進(jìn)行統(tǒng)計(jì)特征值計(jì)算(計(jì)算均值Xˉ和標(biāo)準(zhǔn)差S)。計(jì)算每組樣本數(shù)據(jù)的均值和標(biāo)準(zhǔn)差,設(shè)共有m 組樣本組,每組數(shù)據(jù)點(diǎn)數(shù)為n,則第i 組樣本點(diǎn)的均值和標(biāo)準(zhǔn)差Si的計(jì)算公式如下:
(3)計(jì)算S統(tǒng)計(jì)控制參數(shù)并繪制S控制圖;計(jì)算所有樣本組的均值X?和平均標(biāo)準(zhǔn)差Sˉ,公式如下:
計(jì)算標(biāo)準(zhǔn)差圖(S 圖)的上控制限(UCL)、中心線(CL)、下控制限(LCL)。差值運(yùn)算產(chǎn)生的數(shù)據(jù)具有非負(fù)性,并且僅僅需要確定一個(gè)數(shù)據(jù)波動(dòng)的最大范圍即可完成正常數(shù)據(jù)范圍的界定,因此只需要求得控制圖的上控制線(UCL)就能確定控制圖的中心線(CL)和下控制線(LCL)。三條控制線的計(jì)算公式如下:
其中,系數(shù)計(jì)算公式如下,當(dāng)n >25時(shí):
當(dāng)2 ≤n ≤25,B4取值參見文獻(xiàn)[6]。
(4)在S控制圖上打點(diǎn),判斷數(shù)據(jù)是否穩(wěn)定,如果不穩(wěn)定則轉(zhuǎn)到步驟(5),否則轉(zhuǎn)到步驟(6)。本步驟以及步驟(7)的數(shù)據(jù)穩(wěn)定與否的評(píng)判標(biāo)準(zhǔn)為:數(shù)據(jù)處在上控制線或者下控制線以外判定為不穩(wěn)定,否則判定為穩(wěn)定。
(5)剔除不穩(wěn)定樣本數(shù)據(jù)組,補(bǔ)充備用樣本數(shù)據(jù)組并回到步驟(2)。
當(dāng)2 ≤n ≤25 時(shí),A3取值參見文獻(xiàn)[6],當(dāng)n >25 時(shí),系數(shù)計(jì)算公式如下:
(7)在Xˉ控制圖上判斷數(shù)據(jù)是否穩(wěn)定,如果不穩(wěn)定回到步驟(5),否則繼續(xù)。
(8)形成穩(wěn)態(tài)Xˉ,S統(tǒng)計(jì)控制圖。
ARIMA(Autoregressive Integrated Moving Average model)模型是經(jīng)典的時(shí)間序列預(yù)測(cè)模型,它包含三個(gè)參數(shù)p、d 和q,也記做ARIMA(p,d,q),其中p為自回歸階數(shù),d 為差分次數(shù),q 為移動(dòng)平均階數(shù)。ARIMA 模型在預(yù)測(cè)具備周期性變化規(guī)律的數(shù)據(jù)方面準(zhǔn)確率較高。電能質(zhì)量數(shù)據(jù)的趨勢(shì)數(shù)據(jù)是本文所提方法的核心數(shù)據(jù),趨勢(shì)數(shù)據(jù)能否真正反映數(shù)據(jù)的變化趨勢(shì)對(duì)該方法檢測(cè)效果好壞起著決定性的作用。結(jié)合ARIMA模型和電能質(zhì)量數(shù)據(jù)的特點(diǎn),文章選擇ARIMA 模型進(jìn)行電能質(zhì)量趨勢(shì)數(shù)據(jù)的預(yù)測(cè)。
ARIMA預(yù)測(cè)的關(guān)鍵是確定p、d、q的取值,d 的取值可以通過單位根檢驗(yàn)(Augmented Dickey-Fuller,ADF)來確定,如果ADF檢驗(yàn)的結(jié)果小于1%、5%、95%置信區(qū)間臨界值則當(dāng)前的差分次數(shù)d 就是模型的最終差分次數(shù)。p和q的值可以通過計(jì)算自相關(guān)系數(shù)和偏自相關(guān)系數(shù)并通過觀察它們是拖尾還是截尾來確定,通過觀察通常只能得到p和q的取值范圍,具體的取值需要從p和q的范圍中選擇,選擇的標(biāo)準(zhǔn)是模型的信息準(zhǔn)則(Akaike Information Criterion,AIC)值最小。為了降低模型選擇的難度,本文給出了ARIMA模型選擇算法如下。
算法2 ARIMA模型選擇算法
Input:
ts:趨勢(shì)歷史數(shù)據(jù)
P,p的候選值,P={x|x ∈N}
Q,q的候選值,Q={x|x ∈N}
Output:
p,d,q:最優(yōu)ARIMA模型的三個(gè)參數(shù)
1.begin
2.dif_n:=0//差分次數(shù)
3.isStable:=False//數(shù)據(jù)穩(wěn)定標(biāo)志
4.do
5. adf:=computeADF(ts)//單位根檢驗(yàn)
6. criVal:=computeCritical(ts)//計(jì)算臨界值
7. isStable:=check(adf,criVal)//檢驗(yàn)數(shù)據(jù)是否平穩(wěn)
8. if isStable==False:
9. ts:=diff(ts)//差分
10. dif_n:=dif_n+1
11. end if
12.while(isStable==False)
13.AIC:=INF//初始化AIC為無窮大
14.for temp_p in P:
15. for temp_q in Q:
16. model:=ARIMA(ts,temp_p,dif_n,temp_q)//創(chuàng)建ARIMA模型
17. result:=model.fit()//ARIMA模型訓(xùn)練
18. temp_AIC:=result.aic
19. if temp_AIC 20. p:=temp_p 21. q:=temp_q 22. d:=dif_n 23. end if 24. end for 25.end for 26.return p,d,q 27.end 由于數(shù)據(jù)的不斷變化,在進(jìn)行數(shù)據(jù)的在線異常檢測(cè)過程中,需要不斷地更新控制圖參數(shù)??刂茍D參數(shù)的更新依賴數(shù)據(jù)異常檢測(cè)的結(jié)果。當(dāng)數(shù)據(jù)被判定為異常時(shí),保持當(dāng)前控制圖參數(shù)不變;當(dāng)數(shù)據(jù)被判定為正常時(shí),將差分?jǐn)?shù)據(jù)與歷史穩(wěn)定數(shù)據(jù)進(jìn)行合并,并重新計(jì)算控制圖的UCL、CL 和LCL,實(shí)現(xiàn)控制圖參數(shù)的動(dòng)態(tài)更新,更新算法如下。 算法3 穩(wěn)態(tài)控制圖參數(shù)動(dòng)態(tài)更新算法 Input: groupSize:歷史穩(wěn)態(tài)數(shù)據(jù)的組數(shù) ts:新穩(wěn)態(tài)數(shù)據(jù) Output: UCLS,CLS,LCLS,UCLXˉ,CLXˉ,LCLXˉ:更新后的控制圖參數(shù) groupSize':新穩(wěn)態(tài)數(shù)據(jù)組數(shù) 1.begin 6.UCLS= 7.CLS=0 8.LCLS=- 9.UCLXˉ= 10.CLXˉ=0 11.LCLXˉ=- 12.groupSize′=groupSize+1//數(shù)據(jù)組數(shù) 14.end 實(shí)驗(yàn)分為兩個(gè)部分,第一部分為ARIMA 時(shí)間序列預(yù)測(cè),通過計(jì)算預(yù)測(cè)結(jié)果平均絕對(duì)百分比誤差驗(yàn)證本文預(yù)測(cè)方法的可用性;第二部分為異常數(shù)據(jù)檢測(cè)結(jié)果對(duì)比分析。 本文的異常檢測(cè)辦法實(shí)質(zhì)上是基于閾值的異常檢測(cè)辦法,基于機(jī)器學(xué)習(xí)的檢測(cè)辦法和大多數(shù)基于數(shù)理統(tǒng)計(jì)的方法與本文的方法均不屬于一個(gè)體系,故本文不作比較?;谠颇P偷漠惓z測(cè)方法[4]和基于正態(tài)分布的異常檢測(cè)辦法(目前項(xiàng)目中使用的方法)都是基于靜態(tài)閾值的異常檢測(cè)辦法;文獻(xiàn)[21]提出EWMA(指數(shù)加權(quán)平均)控制圖方法(簡(jiǎn)稱EWMA 方法),是控制圖的典型研究成果,它和文獻(xiàn)[19]中的方法都屬于動(dòng)態(tài)閾值方法。本文將本文方法和上述四個(gè)方法進(jìn)行了對(duì)比,最后計(jì)算各自方法的查全率和查準(zhǔn)率驗(yàn)證本文方法的有效性。 準(zhǔn)確的預(yù)測(cè)數(shù)據(jù)的變化趨勢(shì)是實(shí)現(xiàn)數(shù)據(jù)異常檢測(cè)的關(guān)鍵。本文選取河南某監(jiān)測(cè)點(diǎn)電壓偏差、電壓有效值等多個(gè)指標(biāo)一個(gè)月的數(shù)據(jù)進(jìn)行預(yù)測(cè)對(duì)比,圖5 為電壓偏差(左圖)和電壓有效值(右圖)的某一天的預(yù)測(cè)結(jié)果對(duì)比圖(由于預(yù)測(cè)結(jié)果與原始數(shù)據(jù)較接近,為了區(qū)分原始數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù),故采用雙坐標(biāo)軸分別展示,左坐標(biāo)軸均代表原始值,右坐標(biāo)軸均代表預(yù)測(cè)值),其中電壓偏差和電壓有效值預(yù)測(cè)平均絕對(duì)百分比誤差分別為1.54%和3.29%,預(yù)測(cè)結(jié)果較好。 圖5 電壓偏差和電壓有效值A(chǔ)RIMA預(yù)測(cè)結(jié)果對(duì)比圖 實(shí)驗(yàn)數(shù)據(jù)為河南省某監(jiān)測(cè)點(diǎn)2018 年6 月15 日的數(shù)據(jù)。選取的指標(biāo)有電壓偏差、電壓有效值、零序電壓、電壓總諧波畸變率、基波電流有效值等。由于篇幅有限,本文只對(duì)電壓偏差和零序電壓實(shí)驗(yàn)結(jié)果進(jìn)行展示。 圖6 為電壓偏差數(shù)據(jù)和零序電壓數(shù)據(jù)散點(diǎn)圖,其中零序電壓數(shù)據(jù)中正常數(shù)據(jù)441 個(gè),異常數(shù)據(jù)39 個(gè);電壓偏差數(shù)據(jù)中正常數(shù)據(jù)1 060 個(gè),異常數(shù)據(jù)380 個(gè)。針對(duì)上述數(shù)據(jù),實(shí)驗(yàn)分別采用前文提到的四種方法以及本文方法對(duì)測(cè)試數(shù)據(jù)進(jìn)行異常檢測(cè),其中圖7 為五種異常檢測(cè)辦法分別對(duì)電壓偏差和零序電壓進(jìn)行檢測(cè)的結(jié)果,左圖為電壓偏差檢測(cè)結(jié)果,右圖為零序電壓檢測(cè)結(jié)果;表1為五個(gè)模型檢測(cè)結(jié)果,表2 為五種檢測(cè)方法對(duì)測(cè)試數(shù)據(jù)進(jìn)行檢測(cè)的對(duì)應(yīng)的查全率和查準(zhǔn)率。 圖6 測(cè)試數(shù)據(jù)集 圖7 電壓偏差和零序電壓下五種方法檢測(cè)結(jié)果對(duì)比 從圖7 和表1、表2 的對(duì)比結(jié)果可以看出,云模型和正態(tài)模型判定異常時(shí)都以某一個(gè)固定的閾值作為異常判定標(biāo)準(zhǔn),沒有充分考慮數(shù)據(jù)的波動(dòng)是正常波動(dòng)還是異常波動(dòng),沒有充分考慮到時(shí)序數(shù)據(jù)的變化趨勢(shì),導(dǎo)致把本該判定為異常的數(shù)據(jù)也判定為正常,本該判定為正常的數(shù)據(jù)反而判定為異常,檢測(cè)結(jié)果較差;周期模型雖然是動(dòng)態(tài)閾值檢測(cè)方法,但是如圖8 所示,相較于本文提出的方法產(chǎn)生的趨勢(shì)數(shù)據(jù),周期模型的產(chǎn)生趨勢(shì)數(shù)據(jù)受異常數(shù)據(jù)影響較大,最終導(dǎo)致波動(dòng)性較大,不夠平滑,無法真正描述原始數(shù)據(jù)的變化趨勢(shì),因此檢測(cè)結(jié)果較差;EWMA 模型雖然也考慮到動(dòng)態(tài)調(diào)整閾值,但是該方法也只是微調(diào)控制圖上下線,并未從根本上突破傳統(tǒng)控制圖的限制,針對(duì)本文這種波動(dòng)范圍較大的數(shù)據(jù),檢測(cè)結(jié)果仍然較差。本文提出的方法充分考慮了時(shí)序數(shù)據(jù)的變化趨勢(shì),并且在更新控制圖參數(shù)的過程中動(dòng)態(tài)地改變異常值判定閾值,能很好地適應(yīng)數(shù)據(jù)的變化趨勢(shì),檢測(cè)結(jié)果較好,無論是查全率還是查準(zhǔn)率都較高,在針對(duì)具有周期性變化規(guī)律并且波動(dòng)范圍較大等特征的數(shù)據(jù)的異常值檢測(cè)方面具有較大的優(yōu)勢(shì)。 表1 三種方法異常檢測(cè)結(jié)果 表2 三種檢測(cè)方法查全率、查準(zhǔn)率對(duì)比 % 圖8 周期模型和本文模型趨勢(shì)數(shù)據(jù)對(duì)比 本文針對(duì)常規(guī)的異常數(shù)據(jù)檢測(cè)方法無法有效檢測(cè)變化范圍較大且具有周期性變化規(guī)律特征的電能質(zhì)量異常數(shù)據(jù)的問題,將傳統(tǒng)控制圖的控制線化曲為直并結(jié)合時(shí)間序列預(yù)測(cè)方法,提出了基于控制圖和動(dòng)態(tài)閾值的電能質(zhì)量異常數(shù)據(jù)在線檢測(cè)方法。實(shí)驗(yàn)證明該方法針對(duì)具備波動(dòng)范圍較大且具有周期性變化規(guī)律的時(shí)序數(shù)據(jù)的異常檢測(cè)效果較好。 本文方法準(zhǔn)確檢測(cè)出異常值的前提是能準(zhǔn)確地預(yù)測(cè)數(shù)據(jù)趨勢(shì)的變化。為了保證預(yù)測(cè)的準(zhǔn)確性,本文采用每次進(jìn)行趨勢(shì)數(shù)據(jù)預(yù)測(cè)前都重新訓(xùn)練ARIMA模型的方法,雖然這種方法預(yù)測(cè)準(zhǔn)確性較高,但是這種方式存在潛在的性能問題:通常P、Q 的參數(shù)取值較少,模型可以正常工作,但是當(dāng)給定的參數(shù)P、Q 取值較多時(shí),訓(xùn)練模型的時(shí)間成本增大,可能造成數(shù)據(jù)堆積,本文希望在以后的研究中對(duì)其進(jìn)行改進(jìn)。3.4 電能質(zhì)量異常數(shù)據(jù)檢測(cè)及參數(shù)更新
4 實(shí)驗(yàn)效果評(píng)價(jià)
4.1 ARIMA時(shí)間序列數(shù)據(jù)趨勢(shì)預(yù)測(cè)
4.2 異常數(shù)據(jù)檢測(cè)結(jié)果對(duì)比
5 結(jié)論