時間序列在數據智能上的應用——轉轉獬豸
本篇文章針對轉轉內部的數據實時監控系統——獬豸進行了全面的分析,這項應用不僅能夠監控核心指標,而且還擁有自定義指標和日志監控的能力。
一、什么是獬豸
性別曲直。見人斗,觸不直者。聞人爭,咋不正者。
——「漢·異物志」
獬豸是轉轉內部關于數據實時監控的一整套系統,為轉轉各項業務發展,風險控制等保駕護航。
在通用的核心指標同環比監控之外,它還提供業務方自定義指標和日志監控的能力,并且根據時間序列模型進一步開發出智能監控功能,大幅優化了準確率和靈敏度兩項指標。
二、時間序列的定義
傳統的同環比監控存在各種弊端。他們雖靈活簡單,但存在選擇合適閾值,選擇對比周期及誤報率較高的情況,適用于簡單場景,但在一些對準確度和靈敏度要求比較高的環境下就不適合了。
在這種前提下,我們選擇了時間序列模型來作為突破點。時間序列也稱動態序列,是指將某種現象的指標數值按照時間順序排列而成的數值序列。
它由兩個組成要素構成:
- 第一個要素是時間要素;
- 第二個要素是數值要素。
根據時間和數值性質的不同,還可以分為時期時間序列和時點時間序列。在時間序列的研究上,一般會有兩種做法:分解預測和模型解析。
分解預測適用于趨勢性和周期性明顯的非平穩時間序列。它的核心思想是將整個時間序列分解為長期趨勢,季節變動,循環變動和不規則變動四種類型,對每種變動進行單獨的研究和預測,最后再合稱為復合型的時間序列。
其中,季節變動一般以周,月,季為單位,呈現出一種周期性變動。指數平滑模型分為加和模型和乘積模型,取決于隨著時間推移波動幅度是否越來越大。
模型解析適用于平穩時間序列,它更偏向于通過回歸方式,找到當前周期的變量與之前周期的統計關系,主要有 ARMA 模型和 ARIMA 模型。
前者全稱為 Auto Regression Moving Average,即自回歸移動平均,可再細分為 AR 模型,MA 模型和 ARMA 模型;后者多出來的 I 為 Integrated,意為整合自回歸移動平均。
三、指數平滑模型
移動平均模型建立在當前數據可以由歷史數據推演而來的前提上,根據移動時間窗口的大小和系數不同,還會分為周期移動平均,加權移動平均和全期平均。
指數平滑是加權移動平均的一種,采用全期數據,但會根據歷史數據和當期數據時間的距離,逐漸降低該該部分的影響程度。
這個在下面的公式展開時會聊到。拆解時間序列時,它所包含的時間序列類型越豐富,模型會越復雜。按類型不同,可分為一次平滑,二次平滑和三次平滑。
其中,一次平滑模型:水平項 + 不規則變動(誤差項)二次平滑模型,即霍爾特(Holt)模型;增加長期趨勢三次平滑模型,即霍爾特溫特斯(Holt-Winters)模型;在二次平滑模型的基礎上,再增加季節變動。
一次平滑模型
二次平滑模型
三次平滑模型
s為平滑(smooth)值,x為觀察值,i為周期數,α,β和γ均為平滑參數。
指數平滑模型中,一般會選擇若干個周期做平均作為初始平滑值。
在一次平滑模型里,我們可以看到當前周期的平滑值等于當前周期的觀測值和上個周期的平滑值加上一定的權重系數 α 得到,即平滑參數。所得出的平滑值將作為下個周期的預測值。
根據這個公式我們可以得出兩個關鍵點:首先,α 介于 0 到 1 間,越趨近于 0 越平滑,此時每個周期的平滑值都相等。
此外,對公式進行展開后, 你會發現每個周期的觀測值x都對當前周期的平滑值產生了影響,且隨著周期越遠而呈(1-α)冪次增大,因此整個方法被稱為「指數平滑法」。
一次平滑法比較簡單,但因為預測值均來自歷史數據,指數平滑值序列會出現一定的滯后偏差。我們可以通過調整 α 的大小來減少這種偏差,但當如果 α 調整到最大即 α=1 仍舊無法解決問題時,便需要對模型進行修正。
在一次指數平滑的基礎上再加上趨勢變動的部分,因此也稱為二次指數平滑。
原理和一次平滑法相近,即在α的基礎上再平滑一次,產生一個二次平滑值β。同理,在二次平滑的基礎上,加上季節變動的平滑值便成為三次平滑。
在實際的應用過程中,指數平滑因其簡單和可解釋性,被廣泛地應用在各種指標監控和智能運維場景中。
四、ARMA 及 ARIMA 模型
有些時間序列可能不存在明顯的波動特征,而且一步步去試探分離出對應的波動類型過程也比較繁瑣,因此在模型預測里,就直接采用模型回歸擬合的方法,來實現對平穩時間序列的預測。
獬豸最后采用了平滑指數模型,ARMA 這塊沒有深入研究,僅在這里解釋下具體的定義和應用方向。
AR(p):即 Auto regressive,自回歸模型。含義是當前時間點的值等于過去若干個時間點的值的回歸。因為只依賴于自己過去的歷史值,故稱為自回歸;如果依賴過去最近的 p 個歷史值,稱階數為 p,記為 AR(p) 模型。
MA(q):即 Moving Average,移動平均模型。含義是當前時間點的值等于過去若干個時間點的預測誤差的回歸。預測誤差=模型預測值-真實值;如果序列依賴過去最近的q個歷史預測誤差值,稱階數為q,記為MA(q)模型。
AR 和 MA 兩個模型疊加在一起即為 ARMA(p,q) 模型,表示隨機變量的取值不僅與以前 p 期的序列值有關還與前 q 期的隨機擾動有關。
因為 ARMA 模型要求平穩性,不平穩的序列需要通過一定手段轉化為平穩序列,一般采用的手段是差分。平穩程度可通過肉眼觀測或 DF (Dickey-Fuller)方法進行檢測。因此對于一些不平穩序列,一般會采取 ARIMA(p,q,d) 模型,其中 d 即差分階數,它的定義如下:
I(d):即 Integrated。含義是模型對時間序列進行了差分。d 表示差分的階數,t時刻的值減去t-1時刻的值,得到新的時間序列稱為1階差分序列。
1階差分序列的1階差分序列稱為2階差分序列,以此類推,直至差分之后的時間序列變得平穩。另外,還有一種特殊的差分是季節性差分S,即一些時間序列反應出一定的周期T,讓t時刻的值減去t-T時刻的值得到季節性差分序列。
五、應用場景及優化
因為互聯網產品的指標存在明顯的不平穩性,所以我們采取了指數平滑模型來做獬豸的核心模型,它被廣泛應用在:指標預測智能監控智能運維。
在指標預測中,我們先通過某個核心指標的近一段時間的曲線形狀,判斷應該適合二次平滑指數模型,
在擬合過程中,我們發現整體預測效果不錯,但是在凌晨和傍晚數據連續下降和上升的時候,預測值存在一定的滯后性。
觀測到凌晨和傍晚有明顯的上升趨勢,因此增加在周期性因子里加上趨勢變量,即周期性趨勢(非全周期趨勢)。最后的擬合趨勢已經非常接近了,效果如下:
在智能監控上,還需要加上對誤差的監控,這涉及到比較器的設計。經過我們分析預測誤差值呈正態分布。如果誤差分布在99%范圍之外,即min(μ – 2.58δ, -0.06t), max(μ + 2.58δ, 0.06t),系統便會認為數據異常,觸發報警。
時間序列在以上介紹兩大類方法外,還有 LSTM 模型,格蘭杰因果模型(Granger Causality)等等。
本文只做了常見模型的簡單介紹,有需求可以參考以下文章深入了解。
參考文獻:
- 數據分析技術:時間序列分析;時間是把殺豬刀
- Holt Winter 指數平滑模型;
- 基尼系數Wiki定義
- 《商務與經濟統計方法(第15版)》時間序列挖掘;
- 預測算法-三次指數平滑法(Holt-Winters)
- ARIMA模型詳解;
- 陳水平基于時間序列的短期數據預測—ARMA模型的設計與實現;
- 猜你喜歡數據分析的基本方法論;
- 三個步驟告訴你如何設計高效Dashboard;
- 4年估值20億美元的大數據公司:Domo的神秘國度;
- 三個步驟告訴你如何設計高效Dashboard。
作者:陳新濤,現任轉轉數據負責人,曾任美團外賣首任數據產品經理。公眾號:三生萬數(ID:ourStone)
本文由 @陳新濤 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
- 目前還沒評論,等你發揮!