抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

码猿不正经

指标波动归因分析

数据分析师在工作中经常会遇到类似下面的问题

  • 为什么这个月的销售额提升了30%
  • 转化率又降了,竟然同比降低了42%,是什么原因导致的呢?

这类问题可以概括为指标波动归因分析,很多时候数据分析师会用根据经验探索拆分的办法来处理它们,不仅非常花时间,而且数据分析师获得的价值感也不高。如果能够找到一些高效定位指标波动原因的方法,形成自动化判断机制,就能大大释放数据分析师的精力,使其能够把更多时间用在专题分析和推动业务上。

1 指标波动贡献率

什么是贡献率当核心指标发生了波动,比如销售额从100万元上升到1000万元时,分析师的工作就来了。

  • 这个指标的波动可以从多个维度拆解
  • 渠道维度:天猫渠道、京东渠道、线下渠道等。
  • 新老客维度:新客和老客。
  • 用户属性维度:年龄、消费力、兴趣偏好、地区。
  • 其他底层数据能够支持的维度。能拆解的维度有很多,但一般来说,数据分析师根据自身经验,会选择一两个主要的维度优先进行拆解和验证

例如从渠道维度进行拆解,可以进一步细分为A渠道、B渠道、C渠道这3个元素

  • 实际关注的是,每一个渠道销售额的变化对于整体销售额波动到底有多大影响。

为了量化每一个元素对总体波动的影响程度,我们引入了“贡献率”的概念。贡献率主要回答“每一个元素的变化对总体波动的贡献是多少”这个问题。通常,各元素贡献率之和等于100%,正好可以完全解释总体波动。

对于不同类型的指标,有与之对应的不同的贡献率计算方法。

2 可加型指标波动贡献率的计算

1.计算逻辑

可加型指标是指那些数值可以直接相加的指标,例如访客数、销量、销售额。这里以一个简单的案例来介绍可加型指标的计算方法,

渠道 活动前销售额/元 活动后销售额/元 环比增长率
A 11000 12000 9%
B 500 1500 200%
C 300 800 167%
总体 11800 14300 21%

总体销售额从活动前的11800元上升到活动后的14300元,环比增长21%。

总体又可以拆分成A、B、C三个渠道,每个渠道活动前后的销售、环比增长率我们已经计算好了。

从环比波动的角度来看,B和C两个渠道波动较大。不过,由于B、C两个渠道体量和A差了很多,所以它们的波动对于总体波动的影响并不太大,其环比增长率并不能说清楚问题。所以,我们用贡献率来衡量每个渠道对于总体波动的影响。

要计算贡献率,我们先用活动后销售额减活动前销售额,计算出活动前后每个渠道销售额的波动值,

渠道 活动前销售额/元 活动后销售额/元 环比增长率 波动值/元
A 11000 12000 9% 1000
B 500 1500 200% 1000
C 300 800 167% 500
总体 11800 14300 21% 2500

然后用每个渠道的波动值除以总体波动值,得到每个渠道波动占总体波动的比重,即波动贡献率。

  • A渠道的波动贡献率=A渠道波动值/总体波动值=1000/2500=40%,
  • B渠道的波动贡献率也是40%,
  • C渠道的是20%。具体结果如下
渠道 活动前销售额/元 活动后销售额/元 环比增长率 波动值/元 波动贡献率
A 11000 12000 9% 1000 40%
B 500 1500 200% 1000 40%
C 300 800 167% 500 20%
总体 11800 14300 21% 2500 100%

从波动贡献率可以发现,A和B渠道对于总体波动的贡献(也可以说影响程度)都很大,是主要的影响因素。而C渠道虽然环比增长率为167%,但是受限于体量,其波动贡献率只有20%。

2.问题延伸

可加型指标波动贡献率的优缺点都很明显:

  • 优点在于简单方便,数据分析师好计算,业务人员好理解,双方容易达成共识;

  • 缺点则是对于优先级的判定不够明确。

拿上面的案例来说,我们的结论是A和B渠道是影响总体的两大渠道。如果精力有限,我们应该重点关注A渠道还是B渠道呢?既可以说A渠道体量大,更应该关注和优化,也可以说虽然两个渠道的波动贡献率相等,但是B渠道自身的波动远远大于A渠道,B渠道发生异常的可能性更大。

3 乘法型指标波动贡献率的计算

1.计算逻辑

指标拆解的黄金公式吗?销售额=访客数×转化率×客单价。

如果销售额出现了异常波动,业务人员大概率会循着这个公式来定位问题,判断访客数、转化率、客单价中每个指标的波动情况及影响。在这个场景下,可加型指标波动贡献率的计算方式是无法解决问题的,因为各指标之间是乘法关系,而且量纲不同,无法直接相加减。

想要计算出各指标对于总体指标波动的影响,使用对数转换法是条思路

看下表

指标 活动前 活动后 环比增长率
访客数 10000 15000 50%
转化率 5% 8% 60%
客单价/元 350 330 -6%
销售额/元 175000 396000 126%

上表数据中,销售额增长了126%,访客数和转化率分别提升50%、60%,而客单价环比下降6%。要计算这3个指标对于销售额的贡献率,可以使用对数转换法(LN转换)对活动前后访客数、转化率、客单价的每个值进行转换,转换后的值就能够套用可加型指标贡献率的计算方法了。其中LN是以常数e为底数的对数。

指标 活动前 活动后 环比增长率 活动前(LN转换) 活动后(LN转换)
访客数 10000 15000 50% 9.21 9.62
转化率 5% 8% 60% -3.00 -2.53
客单价/元 350 330 -6% 5.86 5.80
销售额/元 175000 396000 126% 12.07 12.89

对活动前的访客数10000用LN(10000)进行转换,得到9.21;对活动后的访客数与其他指标也都进行这样的转换。经过转换之后,相关值的波动是可以直接计算的,我们计算LN波动值(某指标活动后的LN转换值-该指标活动前的LN转换值)

指标 活动前 活动后 环比增长率 活动前(LN转换) 活动后(LN转换) LN波动值
访客数 10000 15000 50% 9.21 9.62 0.41
转化率 5% 8% 60% -3.00 -2.53 0.47
客单价/元 350 330 -6% 5.86 5.80 -0.06
销售额/元 175000 396000 126% 12.07 12.89 0.82

访客数、转化率、客单价的LN波动值之和正好等于销售额的LN波动值。到这一步,我们可以借用上面介绍的波动占比方法来计算贡献度,用每个元素的LN波动值除以总体LN波动值(销售额的LN波动值)

指标 活动前 活动后 环比增长率 活动前(LN转换) 活动后(LN转换) LN波动值 波动贡献率
访客数 10000 15000 50% 9.21 9.62 0.41 49.65%
转化率 5% 8% 60% -3.00 -2.53 0.47 57.55%
客单价/元 350 330 -6% 5.86 5.80 -0.06 -7.21%
销售额/元 175000 396000 126% 12.07 12.89 0.82 100%

因为计算过程中存在四舍五入的关系,这里直接计算结果为99.99%,但实际为100%

最终可以得到:首先是转化率的波动贡献率为57.55%,排名第一;其次是访客数的波动贡献率,为49.65%;而客单价是环比降低的,对应的是负的贡献率。贡献率的总体之和是100%,逻辑自洽。

4 除法型指标波动贡献率的计算

1.计算逻辑

像点击率、转化率这样的指标属于除法型指标,对它们的波动贡献率的计算相对复杂,我们以不同渠道的活动前后转化率数据为例,如小表所示。(表中,channel代表渠道,before_cvr和after_cvr分别代表活动前和活动后的支付转化率。)

channel before_cvr after_cvr 环比增长率
A 20% 20% 0%
B 15% 15% 0%
C 50% 52% 4%
D 10% 4% -60%
整体 27.5% 26.2% -4.7%

由上表可知,整体转化率从活动前的27.5%下滑至活动后的26.2%,环比降低4.7%,其中A渠道和B渠道的转化率没有变化,C渠道略微上涨,而D渠道降幅明显。我们能据此得出“D渠道是造成整体转化率下降的唯一元素”的结论吗?万万不可!因为转化率是一个衍生指标,单看转化率的高低趋势,很容易忽略体量的重要影响。同时,转化率的波动来源于访客数和购买人数两个指标的变化。只有看清楚背后访客数、购买人数的变化情况,才能量化各渠道转化率对总体波动的贡献率。所以,我们需要结合活动前后的访客数uv和购买人数pay来看,如下图所示。

channel before_uv after_uv 环比增长率 before_pay after_pay 环比增长率 before_cvr after_cvr 环比增长率
A 50000 100000 100% 10000 20000 100% 20% 20% 0%
B 10000 10000 0% 1500 1500 0.0% 15% 15% 0%
C 30000 30000 0% 15000 15000 0.0% 50% 50% 0%
D 10000 10000 0% 1000 1000 0.0% 10% 10% 0%
整体 100000 150000 50% 27500 37500 36.4% 27.5% 25.0% -9.1%

由访客数和购买人数可以发现,A、B渠道虽然转化率都未发生变化,但这只是水面的平静。实际上A渠道活动后访客数和购买人数均是活动前的2倍,而B渠道的相关数据完全没有变化。我们需要把镜头从平静的水面移到水底,看看波澜起于何方。

2.波动贡献率剖析

要综合访客数、购买人数指标,更好地量化每个渠道转化率对整体转化率的影响,这里我们采用一种类似于控制变量的方法。

首先,我们研究A渠道波动对于整体的影响。假设只有A渠道的数据活动前后发生了变化,其他渠道均未发生任何变化,即活动后数据与活动前相等,如下图所示。

channel before_uv after_uv 环比增长率 before_pay after_pay 环比增长率 before_cvr after_cvr 环比增长率
A 50000 100000 100% 10000 20000 100% 20% 20% 0%
B 10000 10000 0% 1500 1500 0.0% 15% 15% 0%
C 30000 50000 66.7% 15000 26000 73.3% 50% 52% 4%
D 10000 25000 150% 1000 1000 0.0% 10% 4% -60%
整体 100000 185000 85% 27500 48500 76.4% 27.5% 26.2% -4.7%

结果显而易见:

  • A渠道访客数环比增长100%,将整体访客数从10万提升到15万,环比上涨50%。
  • A渠道的购买人数成倍增长,推动整体购买人数环比提升36.4%。

访客数和购买人数变化一致,因此A渠道转化率不变,但A渠道访客数和购买人数对整体产生结构性的影响,造成整体转化率环比降低9.1%,这9.1%的降幅可以看作A渠道活动前后数据变化对于整体的影响。

根据同样的逻辑,我们对其他渠道进行控制和计算,如下图所示。

channel before_uv after_uv 环比增长率 before_pay after_pay 环比增长率 before_cvr after_cvr 环比增长率
A 50000 50000 0.0% 10000 10000 0.0% 20% 20% 0%
B 10000 10000 0.0% 1500 1500 0.0% 15% 15% 0%
C 30000 30000 0.0% 15000 15000 0.0% 50% 50% 0%
D 10000 10000 0.0% 1000 1000 0.0% 10% 10% 0%
整体 100000 100000 0.0% 27500 27500 0.0% 27.5% 27.5% 0.7%

只有B渠道发生变化 (这里实际上没有变化)

  • B渠道活动前后数据均未发生变化,因此对于整体转化率的影响是0.0%;
channel before_uv after_uv 环比增长率 before_pay after_pay 环比增长率 before_cvr after_cvr 环比增长率
A 50000 50000 0.0% 10000 10000 0.0% 20% 20% 0%
B 10000 10000 0.0% 1500 1500 0.0% 15% 15% 0%
C 30000 50000 66.7% 15000 26000 73.3% 50% 52% 4%
D 10000 10000 0.0% 1000 1000 0.0% 10% 10.0% 0%
整体 100000 120000 20.0% 27500 38500 40.0% 27.5% 32.1% 16.7%

只有C渠道发生变化

  • C渠道对于整体转化率有16.7%的正向影响;
channel before_uv after_uv 环比增长率 before_pay after_pay 环比增长率 before_cvr after_cvr 环比增长率
A 50000 50000 0% 10000 10000 0.0% 20% 20% 0%
B 10000 10000 0% 1500 1500 0.0% 15% 15% 0%
C 30000 30000 0% 15000 15000 0.0% 50% 50% 0%
D 10000 25000 150% 1000 1000 0.0% 10% 4% -60%
整体 100000 115000 15% 27500 27500 0.0% 27.5% 23.9% -13%

只有D渠道发生变化

  • D渠道自身转化率就有大幅下滑,对于整体转化率的影响则是-13.0%。把各渠道的影响汇总一下,得到如下表所示的结果。
channel before_cvr after_cvr 环比增长率 影响
A 20% 20% 0% -9.1%
B 15% 15% 0% 0.0%
C 50% 52% 4% 16.7%
D 10% 4% -60% -13.0%
整体 27.5% 26.2% -4.7%

通过控制变量,我们得到了每个渠道对于整体转化率的影响。不过,一般提到贡献率的计算,总是希望各渠道贡献率加总接近于100%。所以,我们用各渠道的影响值除以汇总的影响值,计算对应的贡献率。以A渠道为例,用-9.1%除以各渠道影响值的汇总,等于166.3%,其他渠道亦是如此,如下表所示。

channel before_cvr after_cvr 环比增长率 影响 贡献率
A 20% 20% 0% -9.1% 166.3%
B 15% 15% 0% 0.0% 0.0%
C 50% 52% 4% 16.7% -304.8%
D 10% 4% -60% -13.0% 238.6%
整体 27.5% 26.2% -4.7% 100%

需要注意的是,由于整体转化率是负值,如A渠道贡献率为正,则意味着该渠道对整体转化率的负向变化是有贡献的,或者说拉低了整体转化率。反之,如C渠道贡献率为负,则代表该渠道对于整体转化率是有拉升作用的。

很多内容来自网络,侵权联系邮箱

评论