异动归因方案在实际业务应用中的难点及解决方案

        自动化异动归因方案在实际业务应用时,面临着几个难点,首先是加法和除法指标分别用什么方法去定位根因维度更合理;第二单一维度归因结论不满足业务需要时,多维归因如何避免维度爆炸问题;第三维度归因和指标归因到底是什么,怎么理解等。回答好这几个问题,才能更好的将方案推广落地。

1 指标归因与维度归因

1.1 指标归因

        在上篇文章 归因分析中各种指标因子贡献度计算方法总结_归因分析贡献度计算-CSDN博客 中,详细介绍了加法型、乘法型和除法型这三种指标因子贡献度的计算方法,乘法型指标计算每个乘数项贡献度的方法是做log变化转化为加法,除法型指标计算指标波动贡献度、分母波动贡献度的方法是综合贡献法等,这其实都是指标归因,也就是从指标的公式构成上进行贡献度计算。   

        如GMV作为乘法指标时,我们使用公式GMV = 用户数 * 人均单量 * 均价,对公式两边同时做log变化,就能得到各个因子对GMV波动的贡献度,可以从整体上回答到底是哪个大的因素出了问题。

1.2 维度归因

      将指标从A维度、B维度、C维度进行拆分对比,看哪个维度的异常,这个是维度归因。如GMV作为加法指标时,可以从地区、产品类别、销售渠道等多个维度来拆解这个指标,得到是哪些维度的异常影响了整体。

        这两者是回答的是异常波动的两个层面的问题,一个是看哪个指标的异常大,一个是哪个维度出了问题。进一步理解可参考 洞察报告-指标归因--智能数据洞察-火山引擎 【用户指南-洞察决策-核心功能-洞察报告维度归因/指标归因】。

2 定位异常维度用js相对熵还是用gini系数

2.1 js相对熵

        js相对熵度量了两个概率分布的差异程度,是KL相对熵的变体,JS相对熵是对称的,其取值是0到1之间,js相对熵越大两者分布差异越大。计算方法如下:

KL相对熵的计算公式:

D_{KL}(P||Q) =\sum_{x\in X}^{}p(x)log\frac{p(x)}{q(x)}

M = \frac{(P+Q)}{2}JSD(P||Q) = \frac{1}{2}KL(P||M) + \frac{1}{2}KL(Q||M)

将KL相对熵带入公式展开能得到:JSD(P||Q)=\frac{1}{2}p(x)log\frac{p(x)}{(p(x) + q(x))} + \frac{1}{2}q(x)log\frac{q(x)}{(p(x) + q(x))}

        对于加法指标的异常原因定位我们很自然的会从各个维度进行拆解,因为各维度项的可加性,所以可用js相对熵来衡量各维度项前后的分布差异性,如果某维度的差异越大,越可能为异常维度。

2.2 gini系数

        用gini系数归因时的出发点是找到那些维度项较多,并且有主要维度贡献整体波动的维度,这样的维度更可能是根因所在。所以可以用决策树中用来选择划分属性的gini系数,其计算公式是:Gini(D) = \sum_{x\in X}^{}p(x)(1-p(x)) = \sum_{x\in X}^{}(1-p^{2}(x))

        gini系数直观上来看反映了从数据集D中随机抽取两个样本,不一样的概率。因此gini系数越小,代表某个样本的占比越大,所以越应该被定位为异常维度。

2.3 两种方法优缺点总结

2.3.1 两者的优缺点和适用性

        js相对熵:优点是直接衡量实际分布和理论分布的差异,解释性较强。缺点是更适合加法指标,像成功率点击率这样的指标并不是很试用。举例来说整体的成功率由11%下降到9%,从城市维度分析时,各个城市前后成功率差异越大不一定越可能为异常维度,因为有一些业务量比较小的维度项前后成功率差异较大,但不一定是主要的波动原因。

        gini系数:优点是代表随机从数据集中取两个不一样样本的概率,适用性更广,可应用到除法指标中,如上边的例子中,可先计算各个维度下维度项的贡献度,然后用贡献度的gini系数定位异常维度。缺点是更容易把异常归因为维度项多且头部项占比较大的维度,结论更单一。

2.3.2 两者在加法指标中的归因结论对比

        如下日活指标从之前的11000下降到10000,从城市等级和渠道前后的数据来举例说明js散度和gini系数的计算过程,可以发现在这个示例数据中城市等级的js相对熵是0.00412,渠道维度是0.00024,结论是城市维度为下降的根因。而用gini系数时,渠道维度是0.49 小于城市等级维度的0.54,结论是渠道维度为下降的根因。得出矛盾的结论的主要原因是渠道维度中微信的用户规模较大占比77%左右,它的微小波动都对整体的影响很大,但可能并不是异常的原因,其可能的原因是疫情突然爆发对一线城市影响更大,活跃用户占比从31.8%下降到30%,和预期的占比差异较大,更应该为波动的根因。

3 如何实现多维交叉归因

       如分析日活这个指标的异常波动原因,我们可能会从城市、渠道、用户分层、业务板块等维度去分析波动原因,如果单一维度的结论不满足业务需要时,则要继续往下看交叉维度的贡献情况,举例来说有n个维度,如果要完全进行交叉则会有 (1+n)^n种组合,那么在做计算的时候则会面临维度爆炸的问题,对于这个问题如何优化呢,还是要从业务出发去考虑这个问题,一般三个以内的维度交叉就可以解决业务疑惑,所以这个组合数就下降到了(1+n)^3次方以内。

以上就是自动化归因相关的总结,了解更多资料可移步:

如何将数据指标异常监控和归因分析自动化_数据异常检测监控怎么看-CSDN博客

归因分析中各种指标因子贡献度计算方法总结_归因分析贡献度计算-CSDN博客

网易如何做到数据指标异常发现和诊断分析? - 文心AIGC

蚂蚁金服异常检测和归因诊断分析实践

  • 29
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值