數據出現波動不要慌,手把手教你搭建數據異常監控體系

7 評論 11546 瀏覽 68 收藏 16 分鐘

#本文為人人都是產品經理《原創激勵計劃》出品。

當數據出現波動時,數據分析師不免要對導致數據波動的背后原因進行篩查,進而找到解決路徑。然而,數據異常的原因該怎么找,才是準確且合理的呢?本文作者便總結了一套從0到1搭建數據異常監控體系的有效策略,也許會對你有所幫助。

前言

日常觀察業務數據時,如果數據出現波動,我們心里總會犯嘀咕:這個波動到底是不是在正常范圍內?如果數據與業務預期相差了好幾倍,那我們又頭疼了,原因那么多,到底哪個才是導致數據波動的原因?

別慌,這篇文章中,教你從0-1搭建數據異常監控體系。

數據分析師的面試總是繞不開一類經典的案例題:

如果日活下降了,你會怎么定位問題?

如果銷售額上升了,你會如何尋找原因?

總結一下這類問題的形式:

如果XX指標發生了波動(上升或下降),需要你去定位原因,你的分析思路是什么?

這里大部分人的回答是,我會看看數據具體的波動時間是什么時候?然后看看當天我們有沒有做什么活動或者產品改版?

業務經驗豐富一點的還會說,我會把用戶分成新老用戶,看看具體是哪個人群結構發生了波動?我還會……

這樣回答有問題嗎?沒有,但是回答得好不好呢?可能你自己心里也犯嘀咕,因為我們這種東一榔頭西一棒槌的答法,有沒有漏掉什么我們自己心里也沒有底。

實際上,對于這種數據波動的問題,考察的是你系統性思考的能力,也就是能否站在全局角度,通過嚴謹的邏輯與業務結合來思考問題。

所以,今天和大家分享如何從0-1搭建數據異常監控體系。

一、數據異常檢測

數據異常。所謂異常,可以理解為不符合預期的數據。這里的預期可以分為兩個部分:業務預期合群預期

  • 業務預期:業務上不符合預期;
  • 合群預期:波動或空間上不符合預期。

業務預期比較好理解,有經驗的業務人員在做一次新的運營活動時,心里往往會有個預期的數據值。當實際值在心里預期之外,可能就需要拉著分析師找原因。

合群預期是一種定量的判斷,有兩個條件:

  1. 異常數據跟樣本中大多數數據不太一樣;
  2. 異常數據在整體數據樣本中占比比較小。

所以重點在合群預期的判斷上,轉換成業務語言就是:什么樣的波動才算是異常呢?日活從20w掉到15w算不算異常?

如果我們每天的日活如下圖所示,在20w上下波動,突然掉到15w,算不算異常?

如果我們的日活如下圖所示,具有明顯的周期性波動(工作日在20w左右,節假日在15w左右),那12月12日的日活為15w,算不算異常?

通過上面的例子,我們知道,所謂異常,要結合具體的業務場景來看,對于合群預期,有沒有科學的方法來檢測數據波動導致的異常與否?

答案是有的,對于波動異常檢測的方法主要有:z-score檢測(3sigma準則)、分位數分析、孤立森林、聚類、lof局部異常因子檢測、one-class svm(適用高維空間)等。

下面簡單介紹下常用的3sigma準則是如何判別異常的。

統計學教材中,關于3sigma的定義為:正態分布下,數據落在μ±3σ區間內的概率為99.7%。

所以對于任意一組數據,只要我們知道了μ和σ,那我們就可以設定正常值的上下限(μ-3σ,μ+3σ),只要在這個范圍之外的值,我們就認為是異常值。

關于如何判定異常值還有很多已經成熟的方法,這里不做展開。

二、數據異常定位

從上面我們已經知道了在一組數據中,如何判斷新加入的一個數據是否是異常,那如果出現了異常,我們如何定位?

我們把異常數據的定位分成兩塊去拆解:內部因素外部因素。

1. 外部因素定位

外部因素我們一般采用PEST分析法(宏觀經濟環境分析),即通過四個方面去分析:政治、經濟、社會、技術。

政治層面主要是新頒布的一些政策、法規對數據產生影響。如最近的滴滴上市被叫停,各應用市場禁止上架APP,那么滴滴的新用戶數在政策頒布之后一定會下降。

經濟,這里我為了理解方便,列了三個維度:競品功能上新、競品運營活動上新、競品數據。這里主要是考慮到競品的變動導致了我們數據的波動。

還是以打車軟件為例,A打車軟件最近對全體用戶搞了一個新的運營活動,花1元錢可以購買五張6.5折的打車券,且在工作日無時間限制。

假設這個活動的參與用戶很多,且A軟件和B軟件的重合用戶較多,那么A軟件此次的運營活動就會影響到B軟件的用戶數據,畢竟人是“趨利”的。

假設我們既沒發現競品有功能更新、又沒有新的運營活動呢?那么我們可以看下我們出現波動的指標,在競品中有沒有出現變化。

舉個例子,如果我們發現我們的用戶次日留存在某個時間段出現下降。如果主要競品也出現了同樣特征的波動,在其他條件都一樣的情況下,我們就可以判定是市場情緒出現了波動,大家都“下降”了。

社會因素主要是輿論壓力,用戶生活方式、消費心理變化、價值觀變化的改變對我們的數據造成的影響。

技術層面指的是一些創新技術的問世等帶來的影響。這兩種因素帶來的數據影響一般不會是突然的,用戶生活方式的改變、新技術的應用都需要大量的時間積累才會造就。

所以這兩個因素如果存在的話,在數據上的表現會是緩慢下降的趨勢,而不是突升或突降。

2.?內部因素定位

實際業務過程中,數據波動由內部因素導致的可能性更高。

數據出現波動,那么和數據相關的系統都需要排查是否出現問題。在內部因素的定位中,我們按照數據的生產關系將各參與系統分成:生產者、參與者、加工者三個部分。

其中生產者是用戶。所有用戶的行為都由用戶產生。那么用戶側可能出現什么問題?比較常見的是用戶結構出現變化、渠道來源出現調整,用戶反饋出現變化。

用戶結構指的是我們在對業務過程搭的指標體系中,按照用戶屬性將用戶分成:新用戶、次新用戶、老用戶、流失用戶(當然,這個不同業務形態區分的維度也不同)。

如果我們的新用戶突然變多,本身新用戶的活躍度就比不上老用戶,再加上新用戶占到我們日活的50%,那么這樣的情況反映到數據上就是日活的次日留存降低,整體用戶的活躍度也降低。

當然我們還可以根據用戶地域分布、性別、機型、登錄時段等維度來定位用戶。用戶維度分得越細,我們的定位就會“快”而“準”。

數據參與者是產品側、運營側、BI側

產品側比較好理解。我們產品功能的上新、老功能的下架,已有功能的改版,都會導致數據的波動。

運營側也是同理。雙11我們新運營活動的上線,之前的運營活動下架,已有活動改版之后新的玩法,都會對數據造成波動。

所有的數據可視化基本上都是由BI開發的一個個報表堆砌的,所以BI也是數據的重要參與者。由BI側導致的數據波動大多數出現在口徑不一致的問題上。

這里可能有很多產品和運營的小伙伴深有同感,自己公司的BI經常會在不同時間點給出統一口徑下的兩份不同數據。

這里我為廣大的BI同學們正名一下,作為BI,數據的準確性是我們的紅線,給出準確的數據是我們的義務。但是往往隨著公司業務規模的擴大,之前的底層數據架構開始不堪重負。再加上人員的流動,很多歷史遺留問題開始凸顯。這時,大多數的公司還處在追求業務擴張的階段,不會花時間和資源來處理數據底層架構的問題,畢竟花時間又看不出明確產出。

這個問題的破局只有自上而下,具體在這里不細說。

最后一個生產關系是數據的加工者,即開發側的數據開發、數倉。這是最容易忽視卻是出問題頻率較高的部分。

這里要簡單說下我們的數據生產加工過程。用戶生產的行為、屬性等數據并不是直接生成的可視化報表,需要經過ETL清洗、數據入庫、再到數據處理,最后成為可視化看板。

而在上述的每個環節中,都可能會造成數據丟失的問題。常出現的問題有對接的服務器漏采集數據,傳輸數據的服務器之間未添加白名單導致數據丟失等。

很多時候查到這里確認是這個問題后,我們會恍然大悟。

三、數據異常歸因

經過前面兩步:數據異常檢測、數據異常定位,我們基本上定位到了數據波動的因素,那究竟是不是這個因素導致了我們的波動?

這里舉個例子方便大家理解我們為什么還要做歸因這個步驟。比如五年級的小明在之前幾次月考中數學都在95分左右,但期中考試數學只考了80分,小明媽媽非常不滿意,認為是小明最近一直在玩手游導致的成績下降。小明很委屈,他覺得這次是題目太難了。

媽媽為了證明是手游這個因素影響了小明的成績,從期中考試結束后到期末考試期間,嚴格禁止小明玩手機。結果小明期末考試考了95,達到平時的成績,小明媽媽就更堅定了是手游影響了小明的學習。

這里舉的例子對應到業務中,也就是說在數據異常定位之后,我們還要證明確實是這個因素的變動導致了結果數據的變動。

在這個環節我們都是采用AB實驗的思想,比如我們定位到了是新增用戶變多導致了我們整體次日留存的下降。那我們就可以保證其他因素不動,只是剔除新用戶,再取一下次日留存的數據,看看數據是否依然波動。

四、總結

還記得我們一開始的問題嗎?

如果XX指標發生了波動(上升或下降),需要你去定位原因,你的分析思路是什么?

通過我們前面的講解,我們會這樣回答:

  1. 通過數據異常檢測確認業務所說的波動是否屬于異常波動;
  2. 根據外部因素和內部因素分別進行排查;
  3. 用AB實驗的思想進行數據異常歸因。

其中外部采用PEST分析法,內部因素按照數據生產關系分為生產者、參與者、加工者,在對每個層級分別排查定位問題。

 

微信公眾號:董點數據。分享產品、運營、數據思維。

本文由 @董點數據 原創發布于人人都是產品經理。未經許可,禁止轉載。

本文為人人都是產品經理《原創激勵計劃》出品。

題圖來自 Pexels,基于CC0協議

微信公眾號:董點數據,分享產品、運營、數據思維。

本文由 @董點數據 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 作者寫的很好啊,很系統

    來自上海 回復
    1. 感謝認可~

      來自浙江 回復
  2. 歡迎關注微信公眾號:董點數據

    來自浙江 回復
  3. 1、首先與業務確認數據是否是真正異常
    2、分別從外部、內部來鎖定數據異常的原因
    3、用A、B測試的實驗思想來進行歸因
    4、根據業務或者經驗或者討論給出下一步新勾當方案

    來自廣東 回復
    1. 總結的很好????????

      回復
  4. 學到了學到了,很多時候看到數據波動,第一反應原因就是內容不行。

    來自四川 回復
    1. 不要怕質疑,先看波動是不是異常~

      來自浙江 回復