導(dǎo)讀:
先舉個(gè)例子,體溫37.4度vs體溫36.5度,只有2.5%的波動(dòng),可如果有人在測(cè)溫點(diǎn)被發(fā)現(xiàn)體溫37.4度,估計(jì)馬上就被拉走做核酸。為啥?因?yàn)槿藗儾皇桥?.5%的波動(dòng),而是怕新冠!
所以:指標(biāo)波動(dòng)不可怕,指標(biāo)波動(dòng)代表的業(yè)務(wù)場(chǎng)景才可怕!脫離業(yè)務(wù)場(chǎng)景談指標(biāo)波動(dòng)就是耍流氓。
在各種業(yè)務(wù)指標(biāo)中,數(shù)據(jù)往往不是靜止不變的,尤其是當(dāng)一些核心的指標(biāo)發(fā)生了變化、波動(dòng)時(shí),就需要判斷這樣的波動(dòng)是否屬于異常的情況。那么波動(dòng)了多大才能算是異常?本文將結(jié)合一些實(shí)際業(yè)務(wù)場(chǎng)景,來(lái)說(shuō)明數(shù)據(jù)波動(dòng)的異常判別方法。
指標(biāo)數(shù)據(jù)波動(dòng),是各種業(yè)務(wù)場(chǎng)景下都會(huì)遇見(jiàn)的情況,如每日GMV、每日訂單量等,都是在不斷變化的。大多數(shù)情況下,變化是“正?!钡牟▌?dòng),但有一些波動(dòng),源于突然發(fā)生的外部原因或其他未被預(yù)期的因素,導(dǎo)致其表現(xiàn)出不同于正常模式的異常狀態(tài)。若能準(zhǔn)確地識(shí)別異常波動(dòng),從而做出波動(dòng)預(yù)警,并及時(shí)應(yīng)對(duì),就能一定程度上保證所關(guān)心的業(yè)務(wù)場(chǎng)景系統(tǒng)的整體穩(wěn)定性。
1
波動(dòng)類型
數(shù)據(jù)波動(dòng)繞不開(kāi)時(shí)間特性。業(yè)務(wù)中最常遇到的就是今天的指標(biāo)是什么樣子?過(guò)去幾天是什么趨勢(shì)?未來(lái)一段時(shí)間會(huì)怎么樣的變化?數(shù)據(jù)+時(shí)間構(gòu)成了波動(dòng)的兩個(gè)基本屬性。
根據(jù)時(shí)間的不同特征,常見(jiàn)的波動(dòng)類型有:
一次性波動(dòng):偶發(fā)的、突然性的波動(dòng)。一般是由于短期、突發(fā)的事件而影響的指標(biāo)的波動(dòng),比如說(shuō)某頭部主播在某次直播里上了嚴(yán)選的商品、某明星的同款商品在嚴(yán)選有庫(kù)存等,就會(huì)造成訂單量臨時(shí)性的超出預(yù)期的上漲。
這樣的波動(dòng)影響時(shí)間短,往往幾天的時(shí)間便會(huì)恢復(fù)正常波動(dòng)。舉個(gè)單量的例子,在大促期間都是單量的爆發(fā)期,大促即為一次“偶發(fā)事件”,此時(shí)單量的波動(dòng)即為一次性波動(dòng)。其具有如下的特征圖:
周期性波動(dòng):這種波動(dòng)和時(shí)間節(jié)點(diǎn)強(qiáng)相關(guān),且經(jīng)常以周或者季、年為循環(huán)節(jié)點(diǎn)。如羽絨服秋冬季節(jié)賣的比較好,到了春天銷量就下降,夏天幾乎沒(méi)有銷量,且每年幾乎都是這樣。
持續(xù)性波動(dòng):從某一時(shí)間開(kāi)始,指標(biāo)一直呈現(xiàn)上漲/下降趨勢(shì)。如從今年4月開(kāi)始,浴室香氛品類的銷售量一直呈現(xiàn)上漲趨勢(shì),這就屬于持續(xù)性波動(dòng)。而持續(xù)性波動(dòng)背后的原因往往是更深刻的,如訂單結(jié)構(gòu)的變化、環(huán)境因素的影響,從而出現(xiàn)了這種持續(xù)性趨勢(shì)。
2
異常識(shí)別
那么什么樣的波動(dòng)可以看作是“異?!蹦??異常識(shí)別也可以認(rèn)為是異常檢測(cè)。這里主要從絕對(duì)值預(yù)警、相對(duì)值預(yù)警兩個(gè)方面來(lái)說(shuō)明。
2.1 絕對(duì)值預(yù)警
絕對(duì)值預(yù)警,即是通過(guò)設(shè)定一定的閾值,當(dāng)指標(biāo)低于/高于閾值的時(shí)候,就認(rèn)為此時(shí)指標(biāo)波動(dòng)為異常,并進(jìn)行預(yù)警。
舉個(gè)例子,嚴(yán)選作為一個(gè)品牌,毛利是其核心的一個(gè)指標(biāo)。對(duì)毛利可設(shè)置絕對(duì)值預(yù)警:當(dāng)毛利為負(fù)時(shí),就認(rèn)為此時(shí)是異常的情況,需要探究其發(fā)生的原因,并解釋這種異常的波動(dòng)。通過(guò)對(duì)毛利的絕對(duì)值預(yù)警,嚴(yán)選及時(shí)發(fā)現(xiàn)了部分用戶利用咖啡機(jī)進(jìn)行薅羊毛、從而導(dǎo)致咖啡機(jī)毛利為負(fù)的行為,并完善了規(guī)則減少了嚴(yán)選的損失。
不僅可以設(shè)置低于某一個(gè)定值,也可以當(dāng)指標(biāo)高于某一定值的時(shí)候進(jìn)行預(yù)警,比如在供應(yīng)鏈中,某個(gè)大倉(cāng)的分倉(cāng)比高于40%,就會(huì)導(dǎo)致倉(cāng)庫(kù)負(fù)荷過(guò)重從而影響生產(chǎn)。
絕對(duì)值預(yù)警往往是一次性的波動(dòng),這樣的異常判定比較簡(jiǎn)單,只需要設(shè)定對(duì)應(yīng)的閾值即可。而閾值的設(shè)定可以根據(jù)具體的業(yè)務(wù)的不同和規(guī)則而變化。
目前在有數(shù)BI中可以直接設(shè)置絕對(duì)值預(yù)警:
2.2 相對(duì)值預(yù)警
然而實(shí)際業(yè)務(wù)中,絕對(duì)的閾值只能提供一個(gè)“底線”。除了一些非常確定性的業(yè)務(wù)場(chǎng)景外,在其他情況下,過(guò)高的“底線”就會(huì)導(dǎo)致誤報(bào),過(guò)低的“底線”可能會(huì)漏掉很多需要預(yù)警的情況。于是作為絕對(duì)值預(yù)警的補(bǔ)充,相對(duì)值預(yù)警可以根據(jù)歷史數(shù)據(jù)及波動(dòng)情況,來(lái)判斷當(dāng)前的波動(dòng)是否為異常。
(1)同比環(huán)比
同比環(huán)比是業(yè)務(wù)場(chǎng)景中比較常用的一種異常檢測(cè)方式,利用當(dāng)前時(shí)間周期與前一個(gè)時(shí)間周期(同比)和過(guò)去的同一個(gè)時(shí)間周期(同比)比較,超過(guò)一定的閾值即認(rèn)為該點(diǎn)是異常的。實(shí)際中常用周/日環(huán)比、年同比來(lái)進(jìn)行比較。
如上圖,(1)的數(shù)據(jù)為所要判斷的值。當(dāng)(1)的數(shù)值為百分比時(shí),如來(lái)源于主站訂單的比例,則同比環(huán)比一般為:
環(huán)比:(1)-(2) pt
同比:(1)-(3) pt
而當(dāng)(1)的數(shù)值為非百分比時(shí),如來(lái)源于主站的訂單數(shù)量時(shí):
環(huán)比:((1)-(2))/(2) %
同比:((1)-(3))/(3) %
根據(jù)值得正負(fù)來(lái)判斷是上漲還是下降。通過(guò)與上周/昨天和去年同期的數(shù)據(jù)表現(xiàn)進(jìn)行對(duì)比,計(jì)算波動(dòng)值,再將波動(dòng)值和閾值進(jìn)行對(duì)比,從而得到當(dāng)前時(shí)刻數(shù)值是否在正常的波動(dòng)中(閾值的設(shè)定方法在后面介紹)。
如在上述的周期性波動(dòng)的例子中,在11月環(huán)比波動(dòng)都會(huì)較大,這時(shí)設(shè)置同比波動(dòng)預(yù)警會(huì)比設(shè)置環(huán)比波動(dòng)預(yù)警更為合理。于是在波動(dòng)判別中,需要注意業(yè)務(wù)實(shí)際背景。
(2)周期平滑
同比/環(huán)比僅使用1~2個(gè)時(shí)間點(diǎn)的數(shù)據(jù),容易受到數(shù)據(jù)本身質(zhì)量的影響:當(dāng)歷史同期或上個(gè)周期的數(shù)據(jù)本身就是“異?!钡臅r(shí)候,用“異?!钡臄?shù)據(jù)來(lái)判斷是否“異?!本筒惶线m。
一個(gè)很自然的想法就是將所參考的時(shí)間點(diǎn)拓展,利用多個(gè)時(shí)間點(diǎn)的周期數(shù)據(jù)進(jìn)行平滑,得到當(dāng)前時(shí)刻指標(biāo)的對(duì)比值。如:
則比較值:
其中為平滑系數(shù),當(dāng)都為相同的值的時(shí)候,此時(shí)即為平均值。也可越靠近所研究時(shí)間點(diǎn),賦予更高的平滑系數(shù)。所選的時(shí)間點(diǎn)可以根據(jù)業(yè)務(wù)需求自行定義。
利用比較值b和所研究的值(1)對(duì)比,超過(guò)一定的閾值即可認(rèn)為是“異?!?,其波動(dòng)需要關(guān)注。
(3)假設(shè)檢驗(yàn)(3σ原則)前面提到比較值需要和所研究的值進(jìn)行對(duì)比,通過(guò)閾值來(lái)判斷波動(dòng)是否異常。閾值的定義方法和預(yù)警方法類似,分為絕對(duì)值閾值和自適應(yīng)(相對(duì)值)閾值。
絕對(duì)值閾值:根據(jù)歷史正常情況下的數(shù)據(jù)波動(dòng)情況,計(jì)算比較值和所研究的值之間的差異情況,從而定義一個(gè)上/下限值,即為閾值。
自適應(yīng)閾值:根據(jù)數(shù)據(jù)波動(dòng)情況而變化的閾值,其理論基礎(chǔ)為假設(shè)檢驗(yàn)和大數(shù)定律,來(lái)判斷是否為異常。
不妨假設(shè)當(dāng)前時(shí)間點(diǎn)的指標(biāo)數(shù)據(jù)為b,歷史用于對(duì)比的指標(biāo)數(shù)據(jù)為:
其中:
分別表示對(duì)比數(shù)據(jù)的平均水平和波動(dòng)情況。則根據(jù)大數(shù)定律和假設(shè)檢驗(yàn),當(dāng)
即可認(rèn)為當(dāng)前時(shí)間點(diǎn)的指標(biāo)數(shù)據(jù)為異常波動(dòng)。其中z為置信水平所對(duì)應(yīng)的值,如當(dāng)z=1.96時(shí),置信水平為95%,即可認(rèn)為在100次的波動(dòng)下,有95次是在正常范圍內(nèi)波動(dòng)的(置信水平及其對(duì)應(yīng)的值可參考標(biāo)準(zhǔn)正態(tài)分布表)。當(dāng)z=2.58,置信水平為99%,即為著名的“3σ原則”。
3.3 其他方法
除了以上所介紹的一些常用的、便捷的方法外,也可以通過(guò)時(shí)間序列、算法模型等來(lái)判斷異常值。異常值判別是比較常見(jiàn)的研究場(chǎng)景,但由于實(shí)操的復(fù)雜性,這里僅做一個(gè)介紹。
(1)時(shí)間序列業(yè)務(wù)上的數(shù)據(jù)往往具有時(shí)間屬性,如單量隨時(shí)間的變化、GMV隨時(shí)間的變化等。那么在時(shí)間序列中,通過(guò)異常檢測(cè)的方法,也可以對(duì)當(dāng)前波動(dòng)是否異常做出判斷。常用的方法有:
平均法:移動(dòng)平均、加權(quán)移動(dòng)平均、指數(shù)加權(quán)移動(dòng)平均、累加移動(dòng)平均等。和上述的“周期平均”的方法類似,可自定義窗口大小和加權(quán)系數(shù)。
ARIMA模型:自回歸移動(dòng)平均模型(ARIMA)是時(shí)間序列中一個(gè)基礎(chǔ)模型,利用過(guò)去的幾個(gè)數(shù)據(jù)點(diǎn)來(lái)生成下一個(gè)數(shù)據(jù)點(diǎn)的預(yù)測(cè),并在過(guò)程中加入一些隨機(jī)變量。使用該模型需要確定ARIMA所需的參數(shù),即需要對(duì)數(shù)據(jù)點(diǎn)進(jìn)行擬合。利用擬合后的方程確定下一個(gè)時(shí)間點(diǎn)的數(shù)據(jù)的區(qū)間,從而判斷當(dāng)前波動(dòng)是否為異常。
此外還有ESD、S-ESD、S-H-ESD、STL分解等算法,來(lái)檢測(cè)異常點(diǎn)。
(2)算法模型
基于分類方法:根據(jù)歷史已有的數(shù)據(jù),將其分為正常、異常的兩類,之后產(chǎn)生的新的觀測(cè)值,就可以使用分類的方法去判斷新的觀測(cè)值是否為異常。如使用距離判別的K-means算法、SVM算法等。
神經(jīng)網(wǎng)絡(luò)方法:可以對(duì)具有時(shí)間特性進(jìn)行建模的LSTM算法、用卷積神經(jīng)網(wǎng)絡(luò)來(lái)做時(shí)間序列分類的Time Le-Net,以及各種的監(jiān)督式模型,都是能夠?qū)Ξ惓?shù)據(jù)進(jìn)行識(shí)別的算法。
3
總結(jié)
在實(shí)際應(yīng)用中,還需要結(jié)合業(yè)務(wù)背景來(lái)進(jìn)行方法的選擇。一般來(lái)說(shuō),判斷異常的主要方法有:
- EOF -
審核編輯 :李倩
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100713 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7002瀏覽量
88941 -
閾值
+關(guān)注
關(guān)注
0文章
123瀏覽量
18490
原文標(biāo)題:數(shù)據(jù)分析終極一問(wèn):指標(biāo)波動(dòng)多大才算是異常?
文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論