「经验」如何30min内排查出指标异动的原因

2022-06-30 16:03:51 浏览数 (2)

预计阅读时间:9min

你好,我是小火龙。

00

序言

当针对业务搭建好指标体系后,作为产品/运营同学,通常会选择1-2个「北极星指标」来度量产品的健康度。而作为数据同学,我们需要协助产品来监控日常指标波动,如果发现指标波动不符合预期,则需要对其进行查询。

作为数据同学,最大的问题可能有以下两点:

1、指标本身会自然波动,如何一眼就知道当日指标不正常?

2、当感知到指标异常后,如何快速对N多维度进行拆解,给出量化结论?

最开始,针对一些比较棘手的问题,我们有时会花半天到一天的时间进行排查,后来随着整套方案的落地及工具化,给出初步结论大概在30min以内。

下面将和大家分享一下我们之前的排查方案,希望能够对你有所帮助~~

01

如何快速发现指标异常

当指标在某天发生波动时,我们如何判断波动属于正常范围还是异常范围,往往是通过口口相传的经验判断的,核心在于「经验」。经验固然是判断指标波动阈值的核心,但对数据同学来说,我们可以更好的利用数据,「量化度量 经验」 进行判断,往往会更加标准化一些。

量化的方式可以涵盖很多种,这里我们主要根据 均值 标准差 进行衡量,以APP某功能CTR指标为例,如下图:

▲ ctr近30日波动趋势

步骤一:选取过去30日内的CTR指标作为近期趋势,时间不宜过长,主要度量近期情况。

步骤二:计算指标的均值和标准差,并且根据以往经验,初步选取加减一倍标准差作为正常区间范围,以上图为例,大概是均值±1%。(一般情况下,离线调研一次,心里大体有个数,指标的正常波动在什么范围内;如果追求精准,可以每天根据过去一段时间的趋势,动态评估)。

步骤三:在日常数据评估中,当指标波动大于阈值时,可重点关注。当然,并不代表波动小指标就不存在问题,这里解决的主要是概率的问题。

02

如何定位异动原因

当发觉指标的波动远远超过我们经验的阈值时,一般情况,会对指标进行下钻分析,通过维度的下钻,聚焦问题点。定位问题的方式也非常多的,这里主要向大家介绍一种相对通用且高效的排查思路,涵盖六步,如下图:

▲ 归因分析流程图

从图中我们可以看到,整个排查思路是一个从 宏观→微观→宏观 的流程,最终目的是给出量化的数据结论。

步骤一:宏观-多维钻取

当某天指标波动异常,我们下意识会想到是某个维度变化所导致的,例如:某天pv下降,可能是某个渠道、某个小时、某些类目所导致等。相信很多同学都是根据经验进行的判断。

其实维度钻取本身并不难,难点在于如何全面、高效的将所有维度进行钻取,并且可以精准的定位问题。因此,为了达到全面、高效的目的,需要做以下两点:

其一:维度累积。这个主要靠日常工作中我们对于业务的理解,将所有可能影响指标的维度提取出来,并且对核心维度进行交叉组合,作为多维钻取的养料。

例如:业务维度(渠道、品类);时间维度(小时、上午/下午/晚上);人群维度(年龄、性别)等。

其二:工具沉淀。要完成以上众多维度的高效钻取,通过一段段写SQL查询,效率会很低,因此我们需要一套可例行的多维分析工具,这部分内容会在下面几期进行详细介绍。

通过以上两个方面,我们就可以实现全面、高效的将可能触及问题的维度挖掘出来,产出内容包括但不限于:维度波动分数(例如:JSD分数)、当天pv、同期pv、pv变化绝对diff、pv变化相对diff等。

步骤二:宏观-异常聚焦

当完成多维钻取,产出各维度涨降幅数据后,需要将细分维度对大盘的影响进行量化度量,即我们常说的:贡献度度量,核心在于量化

例如:整体pv增长100w,其中男性pv增长50w,则男性对整体大盘pv的贡献度为50%,在结论中需要体现量化结果。

其中贡献度在不同类型指标上有不同的计算方式,这个也会在下面几期进行分享。

在常规业务分析中,一般到此步骤,已经能解决80%左右的实际波动问题。而这两步也可以封装成例行“核心指标监控工具”,每日产出,快速定位数据问题。

但如果很不幸遇上了另外20%的情况,即:通过以上维度的下钻,各维度值均表现出普涨/普降的情况,这时就要考虑下钻到微观层面探索问题的本质。

步骤三:微观-Case分析

微观case层面主要是通过用户详细行为数据或者轻度汇总数据进行挖掘,这一步主要的目的在于发现可能的异常问题。但由于是单用户行为,会存在诸多干扰的情况,很容易被带偏,所以此步骤的核心在于发现问题,快速试错

例如:我们通过随机抽取100个用户行为数据,维度涵盖底层数据表已有的所有维度,发现这些用户在某些版本上的行为分布明显较低,则可以将此维度作为聚合维度进行上卷,重复步骤一二的步骤。

到这一步,大概可以解决90%左右的实际波动问题

步骤四:微观-假设及场景模拟

如果到此步,还没能找出核心的问题点,则说明此问题相对隐蔽,并且是我们日常维度累积中没有涉及到的。这个时候就需要我们根据业务场景,假设问题出现的原因,并尝试找到可度量的维度进行验证。

到这一步,基本可以解决95%左右的实际波动问题

步骤五:宏观-维度上升

当进行完步骤三和步骤四之后,我们已经对可能的问题有了一定的累积,这个时候就可以将此维度上升到宏观层面,利用多维钻取工具进行挖掘,判断是否此问题,导致的指标大幅波动。

如果仍然不是此问题,那非常遗憾,仍然需要重复步骤三和步骤四,直至找到相应问题。

步骤六:宏观-输出结论

最后也是最为重要的一步,则是对问题下结论,正所谓“没有结论的分析都是耍流氓”。结论输出需要涵盖“数据发现问题”和“业务解释问题“,在与产运方沟通后,得出“业务化”的结论,这样才能更对老板的口味。

不好的结论:pv下降原因,50%是由于母婴类目影响。

好的结论:pv下降原因,50%是由于母婴类目影响,主要由于母婴频道上线推广活动所导致,预计下周将恢复往期水位。

另外一个需要注意的,则是大盘指标变动往往受到多方因素的影响,无法100%精确解释,或多或少会存在预估的成分,这个属于正常情况

以上就是指标问题常规定位的方式,大家可以参考借鉴。

====干货结束,来个案例====

03

案例分析

以某垂类APP为例,对「人均访问次数」指标进行异常监控及排查。

1、发现问题

步骤一:根据调研,指标近1个月均值维持在10左右,标准差0.3左右,因此 [9.7, 10.3] 的范围认为是相对正常波动范围。

步骤二:11月11月,该指标同比上周相对降幅达到7%,远大于我们认知的自然波动区间,因此需要对其问题进行详细查询。

2、排查问题

步骤三:首先针对指标进行多维钻取,通过相对熵的方式挖掘异常维度,并结合指标贡献度定位到可能的问题维度。

其中:城市维度-深圳、广州等南方城市降幅贡献度相对明显;类目方面-呈现普降,某些类目降幅相对较大;其他维度均存在普降的情况。

在这样的数据表象上,考虑可能的问题:

  • 当天为双十一,用户更多的精力去购物消费?
  • 南方城市降温,是否会影响用户?
  • 产品出现改版,是否对用户有一定影响?

但以上的猜测都不足以说明真实结论,因此我们选择下钻探索。

步骤四:随机抽取100个用户的行为详情,发现人均相对较低的大多集中在4g网络上,而wifi网络抽取的case来看,人均相对较高。两种可能性:

  • 一种可能是这两种网络人群本身存在差异,属于正常现象。
  • 另一种可能,则是4g网络的人均下降,导致问题的出现。

通过这个启示点,我们尝试将网络维度加入到维度钻取中

步骤五:通过对网络维度的钻取,发现4g网络的降幅贡献度达到了整体的80%,远远大于以上任意维度中维度值的贡献,因此该问题大概率出现在网络类型上面。

步骤六:最后我们根据网络类型结合南方降温因素,基本可以解释问题发生的原因是由于降温所影响用户在户外的应用,所以最终给出的结论为“人均相对下降7%,主要由于南方天气降温所导致,贡献总降幅的80%;另外双十一及改版因素均有影响,但影响程度低于10%;预计下周指标恢复正常水位”。

以上就是本期的内容分享,如果大家有其他的方式和经验,也欢迎私信沟通探讨~~

END

【下期预告】本期遗留了两个问题,一个是「如何快速定位异常维度」;另一个是「针对不同类型指标,如何给出量化结论」。下期,将会和大家分享第一点。静待下期分享~~

【作者简介】互联网大厂数据分析专家,本系列「经验」类文章,会和大家分享一些近些年从事数据分析工作的一些心得体会,希望能够帮助到同行的同学,同时也渴望和大家在此沟通探讨。

0 人点赞