一、什么是指标归因
大家在工作中经常会看很多的报表,在查看报表的过程中会发现指标并不是稳定不变的,而是可能会有各种各样的变化,比如下降、上升或者突变。指标的波动其实反映的是业务的实际波动。所以,一旦发生变化,我们会问一些问题,比如在一个持续下降的图表里面,我们会好奇是什么原因导致指标发生了波动,以及不同原因对指标波动的影响有多大。所以,简单来说,指标归因本质上就是定位指标波动的核心影响因素。
指标归因主要分为三大步骤:首先需要明确问题,其次是分析定位问题,最后是去解决问题。
1. 明确问题
什么是明确问题呢?比如上图中的例子,假设它是一个收入的图表,如果看到收入持续下降,有的人可能会问下降的原因是什么,也有人可能会问收入下降是不是代表现有的模式不再可持续了。针对不同的问题,对应的方法可能是不一样的。像第一个问题,问为什么这一类问题,就属于指标归因的范畴。后者则是更开放性命题,需要做问题拆解后再去看某个子问题是否属于指标归因的范畴。所以首先需要明确面对的问题是不是指标归因的问题,在明确问题之后,再进一步思考这个问题是否能被抽象为一个数学问题,以及可以被抽象为哪一类数学问题,是否有足够的信息进行分析。
2. 分析定位问题
接下来就是选择一个合适的方法来分析问题。针对这样的问题,有哪些方法可供选择,各方法的优缺点分别是什么,哪个方法更优?有了这样的考量之后,通过选择的方法就能分析到一个相对合理的波动原因。
3. 解决问题
定位原因之后,接下来就要去解决问题。因为通过数学方法定位到的原因是一个数学上的解释,所以在解决问题之前首先需要将定位到的原因还原到实际业务上。基于实际问题,讨论有什么样的解决方案,以及每个方案的利弊,最终挑选一个合适的方案去推动执行。
以上是指标归因及基础分析框架的介绍,接下来将详细介绍指标归因的方法。
二、指标归因的基本方法
1. 指标判断
指标归因的第一步是明确问题,判断指标的变动是否真实存在。
指标波动分为两大类:
- 第一类是短期波动,表现是指标暂时性的异常,通过环比的突增/突降点体现出来。从上图可以看到非常明显的突降点,短期波动一般会快速恢复到原来的水平。一般这种情况常见的因素是碰到了比较大的事件,比如突发事件等对经营做调整,会带来一个突变点。
- 第二类是长期波动,体现为中长期的持续上升或下降。这种类型没法快速看到明确的突变时刻,也没有办法和某一个时刻的具体事件做关联,这种情况可能预示了潜在的风险,特别是如果这样的波动不在预期之内,或者说是未知原因的波动,就需要进一步通过归因分析来找到问题所在。
2. 归因方法
如果碰到需要进一步分析的波动,有哪些方法可以选择呢?基于对结论的预期有三类分析方法:
- 第一类是确定性判断。例如互联网平台,在手机、电脑以及电视端都可以使用,总的收入来源于这三个终端。如果发现收入下降了 10%,那么希望知道每一个终端的影响是多少,这就是确定性判断。
- 第二类是可能性判断。继续上面的例子,通过确定性判断已知移动端带来了 80% 的下降,那么下一步可能会想知道移动端的下降主要受什么因素的影响,是因为用户行为发生了改变,还是因为策略调整带来的负面影响,这就是可能性判断。
- 第三类是猜测性判断。假设已知是用户行为变化带来的收入下降,接下来可能会去猜测用户行为为什么发生了变化,是受竞品的影响,还是因为政策调控的影响。
这三类方法在使用上不是完全互斥的,在猜测性判断时,可能会有假设的猜测,猜测性判断提供了很多信息增量,基于这些信息增量不一定能得到非常自信的结论,可以基于猜测进一步通过确定性或者可能性分析的方法去验证猜测,最终得到更完善的结论。所以,在使用过程中,会基于实际情况选择将各种方法进行组合。
在确定性判断和可能性判断下还有多种具体的方法,比如在确定性判断下,可能会使用指标拆解;在可能性判断下,可能会用机器学习和因果推断之类的方法。除了在对结论的预期以外,还要基于具体各种方法的特性做权衡与取舍。比如,非常想有明确的确定性,会选择指标拆解的方法,但是如果选择了指标拆解,就相当于放弃了对因果性的追求。再比如,如果确实非常想去探究因果性,可能就需要放弃一定的确定性,放弃指标拆解这样确定性非常高的方法。在实际的使用当中,需要基于具体情况做平衡与取舍。
3. 确定性判断
可以通过指标拆解来做确定性的判断。指标拆解的优点在于,计算相对容易,效率也比较高;其次,计算出来的贡献度可以量化到具体的数值,每个因素的贡献度都是可以直接相加的,可以得到具体的任何一个因素量化的影响百分比。
指标拆解分为加减乘除四个不同的方法。加法比较容易理解,比如收入波动,可以把收入拆到移动端、PC 端和 TV 端,分别去看每个终端带来的波动分别是多少,然后计算出波动的贡献度。加法相当于是场景的拆解。
减法跟加法类似,是符号上的区别。
乘法与加法最大的区别在于,乘法更侧重于实际业务转化链路上的拆解。以收入为例,从用户进入平台到产生收入会有一系列的转化链路,通过乘法可以看到转化链路中的每个环节的波动比例,从而定位到需要重点关注的环节。乘法下面又包括替换法和 LMD 乘积因子拆解的方法。替换法的局限性在于替代的顺序会影响贡献度的计算,因此如果在意替代的顺序的话更适合选择乘积因子拆解的方法。
除法主要针对比例型的指标,没法直接拆解再相加。一种做法是类似于乘法替换法,拆解出链路中每个环节的贡献度。另一种做法是双因素法,将指标拆解成子场景,其贡献度由波动贡献和结构贡献相加得来。
实际应用中也可以选择多种方法进行组合分析。
比如互联网平台的收入分为广告收入和会员收入,是两个非常不一样的商业模式,在分析整体收入的时候,不能把两者混为一谈。所以,我们会先通过加法的拆解,计算出具体是广告收入对波动的影响更大,还是会员收入的影响更大。在明确了大方向之后,再在这个大方向下做持续的下钻以及拆分。通过横向和纵向的分析组合,可以逐步定位到核心的变化场景,针对核心的问题去做有针对性的方案设计。
4. 可能性判断
可能性判断主要是通过建模分析来做归因分析。它主要分为几大类:
- 第一类是大家比较熟悉的机器学习。机器学习的好处是对相对简单的建模效率较高且可解释性较强。
- 随着模型越来越复杂,机器学习模型的可解释性就会有一定的下降,这时候就需要在机器学习的基础上加 SHAP 值来计算,通过 SHAP 值来计算特征的目标指标贡献。SHAP 值的优点是不管机器学习的模型有多么复杂,都能计算出贡献值,能帮助解释各个特征的贡献度。
- 不论是机器学习还是 SHAP 值都是在解释相关性,这是比较大的一个局限。如果在归因的时候,对因果关系有非常强的需求,则可以考虑因果推断或者贝叶斯网络。
5. 分析落地
在明确了方法,并通过某一个方法得到了相对完善的数据结论后,最后一步就是解决问题了。解决问题时非常重要的一点是要把得到的数据结论和实际的商业逻辑进行结合,这样才能明白当前所面临的问题的本质是什么,找到对应的解决方法。比如,通过分析发现收入下降主要是竞品的降价行为带动的,因为竞品的价格策略左右了广告客户的预算分配,那么会考虑是否可以在产品上增加一些亮点,来争取客户的预算。这就是方案的探讨。
三、指标归因的案例介绍
1. 案例一:基于指标拆解做的确定性判断
第一个案例是基于确定性判断的方法。
第一步仍然是要判断问题是否存在。案例的背景是通过监控发现了我们关心的一个转化指标有非常明显的下降,下降了 3.13%,波动是 -27.8%。看到这样的监控,首先的问题就是这个波动是不是问题,需不需要关注?在这个场景下,它其实是一个非常重要的问题。首先,这个指标监控的是某一个核心场景的转化效率,这个指标反映的是在这个场景下业务的实际效率,是一个非常重要的指标;其次,这个指标代表的是一个效率,效率的下降会削弱业务优化的价值增量;第三,这个指标的趋势是长期下降,从图上可以看到,指标先有短暂的上升,然后持续地在缓慢下降,而且最近降幅在加剧,它反映了潜在的还没有发现的一些问题。所以,这个问题是非常值得关注的。
之后,要选择什么样的方法呢?这个指标是转换率,是比例型的指标。既然是一个衡量转化效率的指标,那就会有非常强的业务转化节点,是层层递进的关系,所以选择通过乘法来做指标拆解,将每一个转化环节的影响因素都量化出来,看具体是在转化过程中的哪一个环节发生了问题。通过乘法替换法的拆解,发现环节 D 和环节 B 是指标波动的核心影响因素,同时我们也发现环节 C 对指标有正向影响,后续也会关注指标 C 为什么提升,以及怎么去强化这种提升。
在使用指标拆解的时候,有一些需要注意的问题。首先,指标得有实际意义。因为从数学的角度来说,不管是加法、乘法还是除法,只要让拆解公式成立,都可以计算出每一个过程指标的贡献度,但是如果只是纯数学逻辑去拆解,得到的归因结论可能没有办法实际落地,没有办法解释指标为什么波动以及最大影响因素的具体含义。一个比较好的做法是,在指标拆解的时候能将每个指标明确到一个具体的负责团队,这样当拆解出一个指标或某个环节的波动比较大的时候,会有对应的人去解决相应的问题。
其次,在做指标拆解的时候指标数量不能太多。在实际的工作当中,业务逻辑会很复杂,涉及到的指标会很多。如果不注意,把过程指标拆得太细,可能发现没有一个指标有非常明显的贡献,每个环节或者每个指标的贡献都是相对均匀的,不利于定位问题。所以比较好的实践方式是先把需要定位的问题分为几个大的环节,如果某一个大的环节的波动明显高于其他环节,再去看这个指标是不是可以做进一步的拆解。
以环节 D 为例,当发现它已经足够具体地指向某一小场景之后,再做场景的下钻,就是维度下钻。比如定位到点击率下降,那么进一步会思考是因为男生的点击率下降,还是女生的点击率下降。或者在互联网平台页面会考虑是因为首页的点击率下降,还是个人中心的点击率下降。可以进一步从不同的维度去看具体某一个子场景的下降是否是最大的影响因素。当业务场景比较复杂时,不同场景下的策略是不一样的,通过场景的下钻可以更准确地找到应该调整的策略或者应该解决的问题。场景和维度的下钻,如果环节 D 是点击量这样的一个绝对值指标,那么就可以用加法来进行维度的下钻,如果是点击率这样一个比例型指标,则可以用双因素法。
在明确了男生的点击率是转化效率下降的核心贡献因素之后,就得思考其业务含义是什么,是不是平台最近的内容是男生不感兴趣的内容,那么下一步可以考虑调整平台内容或推荐策略、分发策略。所以,基于分析的结论,需要结合实际的业务情况做进一步的结论定义,然后找到对应的解决方案。
2. 案例二:可能性判断
接下来举例说明可能性判断的方法。
这一案例的背景是在日常的监控中有一个场景的用户活跃度上升了 6.7%。这是需要关注的问题吗?首先,这个场景是核心的场景,活跃度的提升是直接影响商业变现效率的;其次,这个指标是长期相对稳定的,突然同比上升了 6.7% 是比较异常的;第三,前面的介绍都是关于指标下降,其实在指标上升的时候,我们也会想要知道到底做对了什么,这样未来就可以持续强化这种影响去变得越来越好。所以,这一活跃度的上升是值得分析和关注的。
接下来,明确想要关注的问题,就是什么因素对指标上升的影响最大,以及它是如何影响活跃度的。针对这样的问题,我们当时选择了可能性判断的方法,具体来说就是机器学习加 SHAP 的方法。因为在这种场景下,没有一个相对明确的维度或者链路的拆解,因此用机器学习去探究不同因素之间的相关性是比较好的方法。
具体过程是先做一个预测模型,然后调用特征重要性函数计算 SHAP 值,上图蓝色的柱子代表 SHAP 值绝对值的均值,代表这个特征对y 的影响程度,蓝色柱子越长证明它对 y 的影响越大。从上图可以看出因素 A 对 y 的影响是最大的。在明确了因素 A 的影响最大之后,还想要知道是有正向影响还是负向影响,所以下一步会看特征影响的正负项,通过右边的图表可以看到 y 是随着 A 的增大而增大的。具体来说,红色是特征本身的值,图上的每一个点代表一个样本,颜色越红说明特征本身的数值越大,颜色越蓝说明特征本身的数值越小,所以 y 是随着 A 的增大而增大的。
在此基础上还可以进一步看因素 A 和 y 是什么样的关系,如上图所示,横轴是因素 A 的实际值,纵轴是 SHAP 值,y 随着因素 A 的增长线性增长。通过这样的分析就能看出哪个因素对目标指标的影响最大、它是怎样影响目标指标的,以及它与目标指标的关系是怎样的。
既然已经知道因素 A 是如何影响活跃度的,假设因素 A 代表内容精彩指数,那么应该怎么解读呢?结合互联网平台的特点来说,内容精彩度上升,是否是有优质内容上线了呢?上线的这些内容有什么特性更吸引用户呢?还是平台的运营或者推荐策略有什么调整和优化?基于这样的一些分析,最终就会得出结论,进而进行相应的策略建议。
所以,基于分析的结论,结合实际的业务情况,才能透过数据看到问题的本质,提出更合理的建议。以上就是对指标归因案例的介绍。
四、指标归因的工具应用
接下来介绍互联网平台的指标归因工具。
在实际工作中,有一些图表可能会触发监控或者人为观测到波动,为了明确波动是由什么导致的,需要进行归因分析。
我们的工具上有一个类似于问答式的分析过程,可以在工具上问“某一个指标为什么比前一天更高?”,工具会引导用户去做分析。比如,工具会问用户“你是否想要做指标拆解?”,或者“你是否想要做维度的下钻?”,然后再基于用户的选择给出相应的答案以及相应的结论。