指标波动归因分析
数据分析师在工作中经常会遇到类似下面的问题
- 为什么这个月的销售额提升了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渠道贡献率为负,则代表该渠道对于整体转化率是有拉升作用的。
很多内容来自网络,侵权联系邮箱