网易首页 > 网易号 > 正文 申请入驻

如何计算指标波动贡献率?(附Pandas实现)

0
分享至

大家好,我是阿粥

“为什么这个月销售额提升了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.41 B 500 1500 2.000000 1000 0.42 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天!!!不要错过了~

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
当石油收入归零:全面封锁下的伊朗,一场窒息式博弈

当石油收入归零:全面封锁下的伊朗,一场窒息式博弈

民间胡扯老哥
2026-07-19 08:42:49
罗马诺确认:曼联拒绝放人,24岁攻击手被标为非卖品

罗马诺确认:曼联拒绝放人,24岁攻击手被标为非卖品

绿茵狂热者
2026-07-20 00:55:00
色字头上一把刀!45岁邹市明的现状,给所有已婚男星提了个醒

色字头上一把刀!45岁邹市明的现状,给所有已婚男星提了个醒

秋姐居
2026-07-18 16:43:28
年入百万补课老师吐实情:多数家长补课血汗钱,全都白白打水漂

年入百万补课老师吐实情:多数家长补课血汗钱,全都白白打水漂

鬼菜生活
2026-07-18 17:06:11
知名剧评人北小京离世,行业“嘴替”退场

知名剧评人北小京离世,行业“嘴替”退场

北青网-北京青年报
2026-07-19 18:26:08
央行例会释放出五大信号!看懂的人已经开始调仓了!有股民偷偷行动了!

央行例会释放出五大信号!看懂的人已经开始调仓了!有股民偷偷行动了!

坠入二次元的海洋
2026-07-19 20:05:23
体坛丑闻!中国花样游泳奥运金牌教练贺晓初落马,罪恶行为被曝光

体坛丑闻!中国花样游泳奥运金牌教练贺晓初落马,罪恶行为被曝光

傲傲讲历史
2026-07-16 20:53:56
安全工程师把密码破解工具Hashcat塞进GBA:每秒727次哈希,比现代GPU慢3000万倍

安全工程师把密码破解工具Hashcat塞进GBA:每秒727次哈希,比现代GPU慢3000万倍

硅屿手记
2026-07-19 01:41:21
难怪邹市明上不了沪籍查了才知道

难怪邹市明上不了沪籍查了才知道

趣味萌宠的日常
2026-07-20 06:10:46
英国当年抢走了中国5块领土,只归还了香港,另外4块地分别在哪?

英国当年抢走了中国5块领土,只归还了香港,另外4块地分别在哪?

文史达观
2026-07-10 09:07:41
两大能源央企合体,万亿级重组收官!

两大能源央企合体,万亿级重组收官!

新浪财经
2026-07-20 07:53:46
大结局要来?蒋万安号召蓝白联手,郑丽文火力全开,赖清德沉默了

大结局要来?蒋万安号召蓝白联手,郑丽文火力全开,赖清德沉默了

兰妮搞笑分享
2026-07-20 00:44:14
25分惨败世界第20!日本女篮吞耻辱一战 1.63米核心哑火日媒沮丧发声

25分惨败世界第20!日本女篮吞耻辱一战 1.63米核心哑火日媒沮丧发声

颜小白的篮球梦
2026-07-19 09:07:17
嫁富豪隐婚真相大白,张小斐背后男人曝光,难怪40岁能搭档周星驰

嫁富豪隐婚真相大白,张小斐背后男人曝光,难怪40岁能搭档周星驰

胡一舸南游y
2026-07-18 18:25:02
回归“一页纸”,清华大学录取通知书到了

回归“一页纸”,清华大学录取通知书到了

澎湃新闻
2026-07-17 11:58:10
世界杯决赛饮恨后,梅西再迎坏消息!心碎离场,国家队未来充满未知数

世界杯决赛饮恨后,梅西再迎坏消息!心碎离场,国家队未来充满未知数

领创体育君
2026-07-20 08:15:24
沃尔沃新车官宣:7月19日交付,41.8万元

沃尔沃新车官宣:7月19日交付,41.8万元

3C毒物
2026-07-20 00:03:32
以色列议会62票通过解散,内塔尼亚胡总理梦碎,曾遭万斯怒骂

以色列议会62票通过解散,内塔尼亚胡总理梦碎,曾遭万斯怒骂

时光流转追梦人
2026-07-20 08:11:28
手机突然收到陌生验证码?千万别删!反诈中心提醒:90%人都做错

手机突然收到陌生验证码?千万别删!反诈中心提醒:90%人都做错

苗苗情感说
2026-07-14 09:32:49
又美又强无弱点,中国女篮冒出统治级球星,超越王思雨比肩苗立杰

又美又强无弱点,中国女篮冒出统治级球星,超越王思雨比肩苗立杰

深析古今
2026-07-20 01:46:14
2026-07-20 08:48:49
数据不吹牛 incentive-icons
数据不吹牛
趣味+实用数据分析
415文章数 4499关注度
往期回顾 全部

科技要闻

Kimi K3单项登顶 整体落后前沿模型2-3个月

头条要闻

48岁阿根廷教练曾被质疑是"菜鸟" 已带队夺一冠一亚

头条要闻

48岁阿根廷教练曾被质疑是"菜鸟" 已带队夺一冠一亚

体育要闻

西班牙捧起大力神杯 美国总统特朗普颁奖

娱乐要闻

王侃因病逝世 两年前与父亲牛犇同台

财经要闻

“国家队”护盘,稳市机制持续护航A股

汽车要闻

被追尾还能自动加速逃生?华为乾崑智驾ADS 5.0 OTA时间表发布,只有这台车不用等!

态度原创

教育
艺术
旅游
时尚
数码

教育要闻

孩子大了,该让他明白:说话的分寸,就是做人的尺度

艺术要闻

张大千:千万别学郑板桥题字

旅游要闻

三千将士远赴云南,十年镇守边境故土,清平洞写尽中国人家国情怀

看来看去夏天还是穿T恤最合适,不用买太贵,舒适百搭又经典

数码要闻

长鑫存储供应链开启工艺转型 旨在DDR6商用前抢占先机

无障碍浏览 进入关怀版