异动分析(一)如何快速进行异常定位
小P:小H,最近X(某指标)下降的有点狠啊,帮忙找找看原因呗~
小O:小H,今天Y(某指标)怎么没数据了,帮忙查查呗,急~
小H:…
相信大家对这些话应该很熟悉吧,作为一名数据分析师,异动分析是最重要也是最频繁的专题分析场景,狭义上异动分析只涉及指标的异常波动,广义上所有的数据异常都可以归纳到异动分析范畴。本文就给大家介绍下如何快速进行异常定位。
数据传输异常
首先应该确认是否是数据传输造成的异常,一般情况下,指标骤降、数据丢失最有可能的原因就是传输异常造成的。
-
查看调度日志,血缘关系,同步数据情况等
-
调度日志确认是否数仓延迟
-
血缘关系确认上游依赖是否存在执行问题
-
同步数据确认Hive在同步过程是否有丢失情况
-
-
脚本从下往上溯源,查看指标依赖的主表底层逻辑是否出现重复或缺失情况
-
出现缺失情况一般反馈给业务研发
-
出现重复,如果业务逻辑上认可该重复场景,则需修改脚本逻辑,去重规则由业务指定
-
出现重复,业务逻辑上认为是BUG,则交由研发修复
-
-
拉出明细,找出典型case反馈给业务研发进行商讨
-
如果该case是业务逻辑漏洞,要么研发修复,要么数分从脚本上进行逻辑排除
-
如果该case是脚本逻辑BUG,数分修复脚本逻辑
-
如果该case是研发BUG,交由研发修复
-
排除正常波动
数据嘛,带点波动正常的。你只要将周期拉长,你就可能会发现该波动是周期性的或者波动幅度也没那么夸张了,然后你就可以安慰业务不要过于敏感了。
-
周期性波动:一般常见的如周末、行业淡季、特定节假日等
-
正常区间波动:一般采用3-sigma原理、z-score法则、业务Dmin等判断波动是否在正常区间外
-
3-sigma原理:在正态分布中,数据点落在距离平均值3 σ \sigma σ的概率为99.7。如果数据不服从正态分布,则可以描述为远离平均值3倍标准差。(日常业务中,时序数据服从正态的较少,一般需要根据业务设定为k倍标准差)
-
z-score法则:切比雪夫定理中,对于任何分布,约 1 − 1 z 2 1-\frac{1}{z^{2}} 1−z21的数据与均值在 z z z个标准差内,一般的 z = 3 z=3 z=3。
-
业务Dmin:业务经验设定的最小波动。
在方法上,3-sigma原理与z-score法则是基本一致的,选取该datePoint前的T时间窗口的数据,计算其样本均值( x ˉ \bar x xˉ)和样本标准差(S),然后计算datePoint的数值 x x x与样本均值距离样本标准差的距离是否大于3,即 ( x − x ˉ ) / S > 3 (x-\bar x)/S >3 (x−xˉ)/S>3。
工业上检测时间序列异常值的方法很多,可以参考基于时间序列的异常检测,但对于异动分析来说就显得过于复杂了,因此只建议统计上的简单判断。
-
内因分析
如果你查看了调度,任务上下游,脚本逻辑,数据明细,也排除了正常波动还是无法确认异常的原因时,这个时候就需要着手进行专题分析了。一般通过趋势对比+维度下钻+指标拆解
三板斧,并结合业务通过历史数据去挖掘可能的内在原因。
三板斧定义
- 趋势对比也叫纵向对比,一般包含环比和同比,趋势对比是维度下钻和指标拆解的应用基础
- 维度下钻本质上是横向对比,根据MECE原则对相关维度进行穷尽
- 指标拆解一般分为公式拆解和路径拆解,公式一般依赖于业务定义,路径则依赖于转化漏斗(如AARRR)和用户行为路径(如UJM)
分析步骤
-
确定相关指标、维度和时间范围
对异动指标尽可能的拆解,一般是
异动指标=某个初始指标*过程转化率*结束指标
;结合业务尽可能的梳理主要影响维度;确定异动开始的时间(不明确时可用时间范围代替) -
数据抽样
根据相关指标、维度和异动时间,选取包含异动时间的近期历史数据 。
-
对比分析
- 单维对比:选定一个维度进行下钻,通过时间趋势比较各子维度的样本占比是否在异动时间有明显变化;查看是否存在某个子维度异动指标的趋势与其他子维度明显有差异;进一步查看该子维度拆解指标的趋势与其他子维度是否有明显差异;按此步骤依次遍历所有维度。
- 多维对比:对上述维度进行交叉得到更细的维度,查看是否存在细分群体导致的异常。一般不建议过度交叉,因为过度交叉后的细分群体样本极少,少数样本是很难影响大盘走势的。
-
得出结论
-
某个子维度的样本占比变化造成的
-
某个子维度指标变化异常造成的,进一步拆解发现是某个环节的指标异常造成的
-
某个细分群体的样本占比变化造成的
-
某个细分群体指标变化异常造成的,进一步拆解发现是某个环节的指标异常造成的
-
-
业务追溯
将上面的结论给到业务去寻求业务解读,一般情况是业务动作或研发BUG造成的影响。如果业务无法解读该原因,研发也没有查出BUG,那就需要在此结论的基础上进一步进行异动分析。
-
落地跟进
对于最终的结论一般会讨论出解决方案,解决落地后,需要持续追踪该指标的变化是否符合方案预期。
上面的分析步骤尽可能的将问题复杂化了,只有这样才能起到"以偏概全"的效果。实际业务中会先通过报表简单进行维度下钻,查看样本占比变化是否异常,查看异动指标和拆解指标的趋势是否异常,这就是报表的作用,优秀的报表往往能解决大部分的异动分析。
只有在碰到特别棘手的异动情况才会大海捞针似的进行专题分析,挖掘出影响目标的一些主要指标,再对这些指标进行拆解下钻,趋势对比。
如果抽丝剥茧之后还是无法明确原因时,一般就需要考虑经营问题与环境政策了,详见下面的外因分析。
外因分析
外因分析的方法很多,例如通过PEST模型
进行市场环境、政策环境分析;通过SWOT模型
、波特五力模型
进行竞对分析;通过4P理论
、用户5五要素模型
进行自我剖析。实际上很难及时且准确的获得外部数据,所以大多数情况下,外因分析的结论都是定性的,无法定量。
结论
正如开篇中所说的,异动分析是一个综合性分析,因为涉及的场景千变万化,但核心思想总归是对比分析。只要掌握了维度下钻、指标拆解,并结合趋势对比,随便它怎么动~
共勉~