做物流网站的公司,百度推广个人能开户吗,网站建设的十点优势,张家港做网站费用大家好#xff0c;我是阿粥 “为什么这个月销售额提升了30%#xff1f;” “为什么转化率又降了#xff0c;同比竟然降低了42%#xff0c;什么原因导致的呢#xff1f;” 这些都是数据分析师在工作中经常会遇到的问题#xff0c;甚至有些基础岗的数据分析师要花80%以上的… 大家好我是阿粥 “为什么这个月销售额提升了30%” “为什么转化率又降了同比竟然降低了42%什么原因导致的呢” 这些都是数据分析师在工作中经常会遇到的问题甚至有些基础岗的数据分析师要花80%以上的精力处理这类问题指标降低或者提升了多少以及波动的原因是什么。 这类问题可以概括为指标波动归因分析很多时候用的是根据经验探索拆分的办法非常占用数据分析师的时间而且数据分析师获得的价值感也不高。 如果能够找到一些高效定位指标波动原因的方法形成自动化判断机制就能大大解放数据分析师的精力使其能够把更多时间用在专题分析和推动业务上。 今天先讲解几种常见的计算指标波动贡献率的方法量化波动来源。 一、什么是指标波动贡献率 当核心指标发生了波动例如销售额从100万元上升到1000万元分析师的活儿就来了这个指标的波动可以从多个维度拆解。 渠道维度天猫渠道、京东渠道、线下渠道等。新老用户维度新用户和老用户。用户属性维度不同年龄、消费力、兴趣偏好、地区。其他底层数据能够支持的维度 能拆解的维度很多很多一般来说数据分析师根据自身经验会选择一两个主要的维度优先进行拆解和验证。 例如从渠道维度进行拆解可以进一步细分为A渠道、B渠道、C渠道三个元素。我们实际关注的是A、B、C每一个渠道销售额的变化对于整体销售额波动到底有多大影响。 为了量化每一个元素对总体波动的影响程度我们引入了“贡献率”的概念。贡献率主要回答“每一个元素的变化对总体波动的贡献是多少”这个问题。通常各元素贡献率之和等于100%正好可以完全解释总体波动。 需要强调的是为了避免概念产生歧义在本章的销售拆解中渠道、用户、地区是指不同的维度而渠道下面具体的渠道值A、B、C称为不同的元素。 对于不同类型的指标有与之对应的不同的贡献率计算方法。 二、可加型指标 1、计算逻辑 可加型指标是指那些数值可以直接相加的指标例如访客数、销量、销售额。这里以一个简单的案例来介绍可加型指标的计算方法案例数据如表14-1所示。 表14-1 可加型指标基础数据 总体销售额从活动前的11800元上升到活动后的14300元环比提升21%。总体又可以拆分成A、B、C三个渠道每个渠道活动前后的销售、环比值我们已经计算好了。 从环比波动的角度来看B和C两个渠道波动较大。不过由于B、C两个渠道体量和A差了很多虽然它们本身波动很大但对于总体波动的影响并不太大其环比无法说清楚问题。所以我们用贡献率来衡量每个渠道对于总体波动的影响。 要计算贡献率我们先用活动后销售额减活动前销售额计算出每个渠道销售前后的波动值如表14-2所示。 表14-2 可加型指标计算波动值 然后用每个渠道的波动值除以总体波动值得到每个渠道波动占总体波动的比重也就是我们所说的波动贡献率。A渠道的波动贡献率A渠道波动值/ 总体波动值1000/2500 40%B渠道的波动贡献率也是40%C渠道的是20%。具体结果如表14-3所示。 表14-3 可加型指标波动贡献率结果 从波动贡献率可以发现A和B渠道对于总体波动的贡献也可以说影响程度都很大是最主要的影响因素。而C渠道虽然环比波动167%但是受限于体量其波动贡献率只有20%。 2、可加型指标波动贡献率的Pandas实现 我们构造上面的案例数据before和after分别指代活动前、后销售额 d1 pd.DataFrame({渠道:[A,B,C],before:[11000,500,300],after:[12000,1500,800]}) 直接计算环比、波动值、波动贡献率 d1[环比] (d1[after] - d1[before]) / d1[before]
d1[波动值] d1[after] - d1[before]
d1[波动贡献率] d1[波动值] / d1[波动值].sum()
#用每一行波动值除以总体波动值汇总得到贡献度
print(d1) 代码运行结果如下 渠道 before after 环比 波动值 波动贡献率
0 A 11000 12000 0.090909 1000 0.4
1 B 500 1500 2.000000 1000 0.4
2 C 300 800 1.666667 500 0.2 三、乘法型指标 1、计算逻辑 还记得我们在电商理论部分提到的指标拆解的黄金公式吗销售额 访客数 X 转化率 X 客单价。 如果销售额出现了异常波动业务人员大概率会循着这个公式来定位问题判断访客、转化率、客单价每个指标的波动情况及影响。 在这个场景下可加型指标波动贡献率的计算方式是无法解决问题的因为各指标之间是乘法关系而且量纲不同无法直接相加减。想要计算出各指标对于总体指标波动的影响使用对数转换法是条思路。 下面我们一起来看案例数据如表14-4所示。 表14-4 乘法型指标案例数据 案例数据中销售额增长了126%访客数和转化率分别环比提升50%、60%而客单价环比下降6%。 这三个指标对于销售额贡献率的计算可以使用对数转换法对数LN转换 将活动前后访客数、转化率、客单价每个值进行对数转换转换后的值就能够套用可加型指标贡献率的计算方法。其中LN是以常数e为底数的对数例如在Excel中可以直接输入LN(数值)就可以完成转换计算结果如表14-5所示。 表14-5 乘法型指标LN转换 将活动前访客数10000用LN(10000)进行转化得到9.21对活动后的访客数与其他指标也都做这样的转化。经过转化之后相关值的波动是可以直接计算的我们计算LN的差值LN活动后-LN活动前如表14-6所示。 表14-6 计算LN转化后的差值 访客数、转化率、客单价的LN差值之和正好等于销售额的LN差值。到这一步我们可以借用上面介绍的波动占比方法来计算贡献度用每个元素的LN差值除以总体LN差值销售额的LN差值如表14-7所示。 表14-7 乘法型指标波动贡献率的计算 最终可以得到转化率的波动贡献率为57.55%排名第一其次是访客数的波动贡献率为49.65%而客单价是环比降低的对应的是负的贡献率。贡献率的总体之和是100%逻辑自洽。 2、乘法型指标波动贡献率的Pandas实现 依然先构造数据这次我们把销售额也直接构造出来 d2 pd.DataFrame({指标:[访客数,转化率,客单价,销售额],before:[10000,0.05,350,175000],after:[15000,0.08,330,396000]}) 计算环比、LN后的值和波动贡献率 import numpy as np #numpy的log可以直接计算一个数组d2[环比] (d2[after] - d2[before]) / d2[before]
d2[LN_before] np.log(d2[before])
d2[LN_after] np.log(d2[after])
d2[LN波动值] d2[LN_after] - d2[LN_before]
d2[波动贡献率] d2[LN波动值] / d2[LN波动值][3].sum()
#总体数据索引是3因此这里用3来找到总体值print(d2) 运行结果如下。 这样就得到了每个指标对于销售额的波动贡献率。 以上。 上面核心内容来自于我的新书《Python电商数据分析实战从电商实际案例出发洞悉数据分析全流程》的第十四章指标波动归因实战的部分内容。 书中这一章还会详细介绍了除法型指标的计算方法以及如何用经典算法实现自动指标波动归因。 附上本书的章节目录按照从后往前顺序感兴趣的朋友可滑动查看 左右滑动查看更多 最后我跟出版社争取的京东限时5折福利原价89元现在只需要44.5元只剩最后1天不要错过了~