注:本文首发于公众号:书剑双修,欢迎关注。
数据异动分析是一类典型的数据分析问题,也是分析师日常工作中会频繁遇到的问题。很多的数据分析面试过程中,都会对这个方面进行考察,以此来判断分析师思考问题的全面性与严谨性。
常见的数据异动,按照MECE原则可以分为以下5大类:
接下来,我们分别对5类情况进行说明:
周期性波动
一个成熟的业务模式,一般都会具有较为稳定的周期性。数据的周期性波动是一种自然形态下的正常波动。比如:
- 对于游戏业务来说,周末,节假日的DAU一般要高于工作日;在一天之内,中午,晚上的活跃也要高于上班时间。
- 对于外卖业务来说,工作日的活跃一般要高于休息日。
- …
因此,遇到数据波动时,首先应该看看是否是由于周期性波动造成的。如果是正常的周期性波动,那么就不用再继续排查了。如果数据波动范围超出了正常周期性的波动范围,那就需要继续排查。
这个原因比较好判断,对业务发展有了基本了解之后,能比较容易识别出周期性波动。比如下图这种情况,从周日到周一,dau下降了约30%,但其实是由于周波动引起的,因此就不属于异常波动。
业务内部因素引起的数据波动
业务内部因素,一般是由公司内部的运营活动引起。比如push/短信的推送召回;拉新、促活、促销活动等引起的短暂的指标变化。
举个例子,比如某段时间,业务方发起了一个老用户短信召回活动,那么短时间内活跃用户数就会有明显的增长。当遇到这种情况时,一般需要和业务方进行协作排查。在真实的工作场景中,业务方在做这些活动之前,都会通知到数据分析师,请分析师帮忙监控数据变化,评估活动效果。
业务外部因素引起的数据波动
除了公司业务方做的运营活动之外,还有一些外部因素也会对数据造成比较明显的变化,常见的有:竞品的策略调整,特殊的节假日,政策变化等。在这里举几个例子:
- 节假日效应:每到大型节假日,比如春节,国庆,中秋,端午等,大部分app的活跃/新增用户都会呈现一些下降的趋势。因为在这些时间点,大家的注意力都集中在节庆上,停留在某些app上的时间就会降低。与此同理的,还有双11、618这些购物节,每当临近这些节点的时候,购物类的app数据会增长,其他类型的app就会逐渐下降。因此app数据的变化,其实最终还是要归因到对用户注意力的争夺。
- 政策变化。近三年来,每个城市都面临了多次的口罩反复,城市封控。每次封控期间,居家办公,减少通勤,都会导致app的数据表现与正常的工作日出现差异。比如,摸鱼时间会增长,导致各类娱乐产品的数据会增长;在裁员背景下,招聘产品的数据会增长。
数据链路异常引起的数据波动
在排除了上述周期性波动、内外部因素影响之后,数据波动还可能受到数据链路异常的影响。这一点在具备完整的数据技术能力的公司不会经常发生,但是在一些中小型公司,或者进行数字化转型中的公司里,是经常发生的事情。
排查监控面板的数据异常,是早期数据分析师的常规工作,也是一家公司数据能力不断完善过程中必不可少的一步。
一般可从监控面板到底层埋点数据进行逆向排查,排查流程如下图所示:
- 数据库中是否有数据;
- 数据调度是否正常;
- 底层数据是否正常产生;
- 客户端/服务端埋点是否存在异常
其他因素引起的数据波动
上述的思考维度,是一些常规性的拆解方法。如果都不能定位到数据波动的原因,那就需要针对具体的数据指标进行拆解,通过维度下钻的方法来定位业务问题。
比如常见的DAU波动问题,可以按照DAU = 新增用户+回流老用户进行拆解。看看是新用户出了问题,还是老用户出了问题。
新用户,可以继续拆分渠道来源,版本分布,地区分布等;
老用户,可以拆分注册时间,地区分布等;
写在最后的总结(重点)
最后,当发现数据异常时,不建议大家一上来就考虑各种影响因素,而应该也确认一下数据的真实性,因为在真实的业务场景中,数据的链路非常长,涉及到非常多的上游环节,每一个步骤出错,都会对最终的数据产生影响。
当确认没有数据异常时,也不建议大家第一步先自己对着数据去拆,影响日活数据的因素很多,不可能把所有维度逐一拆解对比,容易浪费时间却没有任何有价值的发现。做数据异常原因分析的核心就是结合以往经验及各种信息,找出最有可能的原因假设,通过数据的拆分进行多维度分析来验证假设,定位问题所在。过程中可能会在原假设基础上建立新的假设或者是调整原来假设,直到定位原因。
以上就是进行数据异动排查的一般步骤,可以作为大家在遇到这类问题时的一个参考思路,大家也可以在自己的工作中不断完善分析角度,丰富自己的分析思路。